Sometimes a client needs to hold onto an accessibility node info and
this info may get into a stale state. The clent has to be able to
request a refresh of the info. This change adds a refresh call to
AccessibilityNodeInfo.
bug:6711796
Change-Id: I580a9a5d9fd1f705ea0a2cf4d3ff65543714c9c3
1. The screen magnification feature was implemented entirely as a part of the accessibility
manager. To achieve that the window manager had to implement a bunch of hooks for an
external client to observe its internal state. This was problematic since it dilutes
the window manager interface and allows code that is deeply coupled with the window
manager to reside outside of it. Also the observer callbacks were IPCs which cannot
be called with the window manager's lock held. To avoid that the window manager had
to post messages requesting notification of interested parties which makes the code
consuming the callbacks to run asynchronously of the window manager. This causes timing
issues and adds unnecessary complexity.
Now the magnification logic is split in two halves. The first half that is responsible
to track the magnified portion of the screen and serve as a policy which windows can be
magnified and it is a part of the window manager. This part exposes higher level APIs
allowing interested parties with the right permissions to control the magnification
of a given display. The APIs also allow a client to be registered for callbacks on
interesting changes such as resize of the magnified region, etc. This part servers
as a mediator between magnification controllers and the window manager.
The second half is a controller that is responsible to drive the magnification
state based on touch interactions. It also presents a highlight when magnified to
suggest the magnified potion of the screen. The controller is responsible for auto
zooming out in case the user context changes - rotation, new actitivity. The controller
also auto pans if a dialog appears and it does not interesect the magnified frame.
bug:7410464
2. By design screen magnification and touch exploration work separately and together. If
magnification is enabled the user sees a larger version of the widgets and a sub section
of the screen content. Accessibility services use the introspection APIs to "see" what
is on the screen so they can speak it, navigate to the next item in response to a
gesture, etc. Hence, the information returned to accessibility services has to reflect
what a sighted user would see on the screen. Therefore, if the screen is magnified
we need to adjust the bounds and position of the infos describing views in a magnified
window such that the info bounds are equivalent to what the user sees.
To improve performance we keep accessibility node info caches in the client process.
However, when magnification state changes we have to clear these caches since the
bounds of the cached infos no longer reflect the screen content which just got smaller
or larger.
This patch propagates not only the window scale as before but also the X/Y pan and the
bounds of the magnified portion of the screen to the introspected app. This information
is used to adjust the bounds of the node infos coming from this window such that the
reported bounds are the same as the user sees not as the app thinks they are. Note that
if magnification is enabled we zoom the content and pan it along the X and Y axis. Also
recomputed is the isVisibleToUser property of the reported info since in a magnified
state the user sees a subset of the window content and the views not in the magnified
viewport should be reported as not visible to the user.
bug:7344059
Change-Id: I6f7832c7a6a65c5368b390eb1f1518d0c7afd7d2
* commit '800c8ab68d695f1b6c5332c80a32316cdca69954':
MediaCodec: Allow getting the codec info directly
MediaCodec: Allow getting the chosen component name
Hardware renderer support pending, but this API should not have
been deprecated in the first place.
Change-Id: I062dac6d65dffb5369e65d55ea159594a0971b59
This attribute can be used to enable/disable mipmapping on bitmaps.
See Bitmap.setHasMipMap() for details.
Change-Id: I13cc800a258b6876a94e2a9605dcec4ea4f1ea48
TTS input limit is now publicly available from getMaxSpeechInputLength()
static method.
Bug: 7456118
Change-Id: Ib2afbb7202ad9dc15895f322fbd1480a5f1f7278
This saves the caller from manually iterating through the
MediaCodecList for finding the right codec.
This adds new public API.
Change-Id: I8462f040573427542d86d1b957a5aef53dd55e8e
Currently, when the codec was opened by createDecoder/EncoderByType,
the caller does not know what codec actually was chosen, and
(for encoders) thus cannot know what color formats it supports.
This adds new public API.
Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
* commit 'fc3d4dbd091ad91307bbba63892f2cee42f97f5f':
Keyguard sliding challenge - fix overeager touch interception
Addressing comments in 74bdd21629681528dbe7f3ea363d99c8514e026b.
Showing message when max attempts are hit in face unlock fixes b/7306168
Keyguard tablet/portrait fix for HUGE security views
Cancel camera launch on screen off.
Fix launcher flash during secure camera transition.
Updating isShowing during onResume()
Suppressing FUL after going to backup fixes b/7449820
Addressing comments for change c4842c11932ea4f60fe7ae09b0a59660207e1587
Adding a button for expanding the clock screen challenge.
Accessibility support for the lockscreen - phone.
Stripping dead API related to keyguard widgets
FUL being unsuppressed when screen turns off fixes b/7453702
Show the keyboard less aggressively.
* commit '6ae7e75876bbdf7d11e1c78d784f0eeb346e7215':
Keyguard sliding challenge - fix overeager touch interception
Addressing comments in 74bdd21629681528dbe7f3ea363d99c8514e026b.
Showing message when max attempts are hit in face unlock fixes b/7306168
Keyguard tablet/portrait fix for HUGE security views
Cancel camera launch on screen off.
Fix launcher flash during secure camera transition.
Updating isShowing during onResume()
Suppressing FUL after going to backup fixes b/7449820
Addressing comments for change c4842c11932ea4f60fe7ae09b0a59660207e1587
Adding a button for expanding the clock screen challenge.
Accessibility support for the lockscreen - phone.
Stripping dead API related to keyguard widgets
FUL being unsuppressed when screen turns off fixes b/7453702
Show the keyboard less aggressively.
* commit '39912f7fcd5bfc4943bac1746c3ff2a9f1d93043':
Keyguard sliding challenge - fix overeager touch interception
Addressing comments in 74bdd21629681528dbe7f3ea363d99c8514e026b.
Showing message when max attempts are hit in face unlock fixes b/7306168
Keyguard tablet/portrait fix for HUGE security views
Cancel camera launch on screen off.
Fix launcher flash during secure camera transition.
Updating isShowing during onResume()
Suppressing FUL after going to backup fixes b/7449820
Addressing comments for change c4842c11932ea4f60fe7ae09b0a59660207e1587
Adding a button for expanding the clock screen challenge.
Accessibility support for the lockscreen - phone.
Stripping dead API related to keyguard widgets
FUL being unsuppressed when screen turns off fixes b/7453702
Show the keyboard less aggressively.
Hide all new location APIs related to LocationRequest/Geofence and
undeprecate all deprecated APIs consequently to the LocationRequest and
Geofence introduction. Also introduce LocationRequestUnbundled for
LocationProviders to use.
Change-Id: I5b116c7d342041f45b341c88a4b6813571118018
This new widget replaces DigitalClock. It listens to all the correct
system events and offer the ability to customize the formatting
patterns in 12-hour and 24-hour modes. It also supports fixed
time zones to create world clocks.
One more step towards becoming ClockOS!
Change-Id: I677e5dfca8cd8c8d1f8c49e54d7507f4d1885bf4
This new API makes it possible for an application to ask on
which Display it should show a Presentation based on the currently
selected media route.
Also added a new API on DisplayManager to query displays that
support a certain category of uses.
Improved the documentation of the Presentation class to explain
how to choose an appropriate Display for presentation.
Bug: 7409073
Change-Id: Iab451215e570ae55f3718fc228303143c800fe51
* commit '0182dc39bd969b797614c90e44978b83ac57fd1c':
FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants
* commit '3b53061e6d2753440da04c042d26b8c4e94a5b95':
FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants
* commit '3e297339f8b77d54f520d5471c90c9d04e78400e':
FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants
Add new API to determine whether a display is secure.
Add new API to make a SurfaceView secure.
Clarify documentation.
Bug: 7368436
Change-Id: I7068c34c910e43b4bc72e43fa0dded59a25f0fe2
Throw an InvalidDisplayException to addView if the display being
added to has been removed. Handle this exception in Dialog.show()
by removing the view after it has been added and rethrow the
exception from there.
Add javadoc to ViewManager.addView and Presentation.show explaining
the new exception and how best to handle it.
Bug: 7368565 partially fixed. It remains for the Videos app to
handle Presentation.show throwing the InvalidDisplayException.
Change-Id: Ib4303c9b3f7bf7a0cfa95d19bd60a0c128658c48