History log of /frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3bffcb16cb145456918140044a47027f868565f8 28-Mar-2017 Phil Weaver <pweaver@google.com> Move displaying mag bounds into surface transation

Bug: 30960346
Test: Manually enabled magnification and explored
Change-Id: Ida16979ecf0263b1c1288aa92385af29928f2d9e
(cherry picked from commit 251db070c5bc6f2859ef05e5456cc9079afc8224)
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
74922c63e1dfba074aa9219034e48a161bdfba5b 13-Feb-2017 Casey Burkhardt <caseyburkhardt@google.com> Display magnification via the nav bar Accessibility Button

Adds support for invoking display magnification by first selecting
the Accessibility Button, then touching an area of the screen to
magnify.

Bug: 30960346
Test: Manual
Change-Id: Ifd8a355562f204182e34bd37f71a3637d85cf0e1
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
8ee7285128c3843401d4c4d0412cd66e86ba49e3 10-Mar-2017 Andrii Kulian <akulian@google.com> Move rotation tracking to DisplayContent

This CL moves rotation tracking from WindowManagerService to
DisplayContent. This way displays can be rotated independently and
rotation of the main display won't affect rotation of secondary
ones.

Bug: 34242678
Test: android.server.cts.ActivityManagerDisplayTests
Test: testRotationNotAffectingSecondaryScreen
Change-Id: Ic46aaa523482b31ff5ec77f0c2908ceda1156fc0
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
0edf18f34c4dc81e45580bc0a3b3b9b072caa725 22-Feb-2017 Robert Carr <racarr@google.com> Correct SurfaceControl matrix parameter names.

DsDx is used for the X scale but DtDy is used for the Y scale, it
seems like this is a simple mix up. Correct before documenting
SurfaceControl.

Test: Animations and such work.
Change-Id: Ic52b67596bf576f58346e4db66661b06ea1bdc2f
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
5cd907d3d6ceebf8731ef1f69347cce6f76109e9 26-Jan-2017 Wale Ogunwale <ogunwale@google.com> Alert Windows behavioral changes

- Introduced TYPE_APPLICATION_OVERLAY window type. Can be used by apps
to display windows on top of other app windows, but below critical
system windows.
- Deprecate alert window types TYPE_PHONE, TYPE_SYSTEM_ALERT,
TYPE_SYSTEM_OVERLAY, TYPE_PRIORITY_PHONE, and TYPE_SYSTEM_ERROR.
Apps should now use TYPE_APP_OVERLAY for this.
- Apps targetting O or greater are not allowed to add the old alert
window types.
Apps targetting less than O can still add the old types.
Apps with permission INTERNAL_SYSTEM_WINDOW (system signature apps) can
still add the old types.
- Z-order old alert windows types below TYPE_APPLICATION_OVERLAY if
they are added by an app without the INTERNAL_SYSTEM_WINDOW permission.

Test: android.server.cts.AlertWindowsTests
Bug: 33256752
Change-Id: I12170955a7a333151d3387c169b51c53c32164fc
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
d1880960581d526cbaed0566d522987d9301b293 08-Nov-2016 Wale Ogunwale <ogunwale@google.com> Removed used of DisplayContent.getReadOnlyWindowList()

Changed the call points to use DisplayContent.forAllWindows() to
get windows on the display.

Test: Existing tests pass.
Change-Id: I6f8bf15ba246fac69c4a496ebb1d9e0b9b6a95a2
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
964c68e03a3a5034ab2a3533be450cc9abf9b2cb 28-Oct-2016 Phil Weaver <pweaver@google.com> Send accessibility event on window title change.

Forcing the layout params to be sent to
WindowManagerService, and from there to accessibility
to generate the event.

Bug: 27857482
Test: Adding corresponding CTS.
Change-Id: I24fc97e16b95799259e4c472b6f1052a1dd00a56
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
73294b6cf79910dc688e5b62d673082a3dec773b 27-Oct-2016 Jorim Jaggi <jjaggi@google.com> The big keyguard transition refactor (4/n)

Nuke KeyguardScrim

Test: Kill SystemUI while lockscreen is showing, make sure nothing
is visible when being killed.

Bug: 32057734
Change-Id: I9f8d1e5a0e0f968460d8170627a849623c6a7245
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
f7cab10b796d0f66eb690867ba327b4bb00165e3 26-Oct-2016 Wale Ogunwale <ogunwale@google.com> Introduced ReadOnlyWindowList

7th and Final step in making the modification of a display's
WindowList private to DisplayContent.
ReadOnlyWindowList provides an interface for external classes to
DisplayContent to access the window list without being able to
modify it. This will be important in upcoming CLs where it is
important for us to keep track of when the window list changes.

Bug: 30060889
Test: Manual testing and existing tests pass.

Change-Id: I4de0b258a40fd4b21ef9cc9e3401488f76d25f83
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
c503094830a7ddd8c3c2f30dbdfcbfea9ae6d9f8 07-Oct-2016 Phil Weaver <pweaver@google.com> Make magnification ignore invisible wallpaper. am: 473af05b82 am: 2de5ca2c65
am: 5a48cf3aa1

Change-Id: I72d6ec29c5c1b39c386281b9edaeb12874a49f09
473af05b8216755c2ef086e57f728480db87d9c2 01-Oct-2016 Phil Weaver <pweaver@google.com> Make magnification ignore invisible wallpaper.

Magnification was assuming that all windows for which
isOnScreen() returned true were visible, but that is not
true for at least wallpapers that have been made invisible.
Adding a check for visibility in addition to on screen.

Bug: 7215285
Change-Id: Iadea37c9eec981f1d68c5a42959debb58cbab264
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
921f8e35d82f567b21a2faba6032b6e8f4f6f70c 17-Aug-2016 Chong Zhang <chz@google.com> resolve merge conflicts of 9391bc5 to master

Change-Id: I6de231781233826b399688dc8ead70ba515b1ccb
fea963edeeb60c76465c0d644078def191f41e0f 16-Aug-2016 Chong Zhang <chz@google.com> Add new window type TYPE_DRAWN_APPLICATION

This type behaves like a normal TYPE_APPLICATION, except that WM
will always wait for it to be drawn before starting a transition.

WM always waits for TYPE_BASE_APPLICATION (main window), but for
TYPE_APPLICATION, it only waits if the window relayouts to visible
and gets a surface before the main window is drawn. If main window
itself is ready very fast, transition could start without the other
window.

bug: 30830849
Change-Id: Ife71a9812db7c8eba6ee4ead10ce4f31d9e93b40
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
36ef98cfd9a90b5896266f0a38713ff3466e978f 31-Jul-2016 Phil Weaver <pweaver@google.com> Prevent a11y seeing behind tasks w/modal windows. am: ac9ad70086 am: 7fb5fcc3a6
am: 08a03c0e2d

Change-Id: Iee5ddf5920abba13f6b7532ede99295d9aeaf0c8
ac9ad70086ca80fe865c49ace2159f342bd00b9b 28-Jul-2016 Phil Weaver <pweaver@google.com> Prevent a11y seeing behind tasks w/modal windows.

Bug: 30279147
Change-Id: Iee714031894bec0d5b25e0d0feaf918536e5b124
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
adde52ee32b656bb436f7e92f39f7d0d97cc9306 16-Jul-2016 Wale Ogunwale <ogunwale@google.com> Made WindowState.mChildWindow private scoped

This involved:
- Moving method that operated on mChildWindows and mostly touched
WindowState fields into WindowState class.
- Creating new methods for getting information about child windows
outside WindowState class instead of accessing the child list directly.
- And, tests ;)

Bug: 30060889
Change-Id: I339cecb926b44b5db7ead1970e356304d5429c8f
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
fd138896d5fc0c4ec3e46ad923fa4935ceaabdeb 14-Jul-2016 Svetoslav Ganov <svetoslavganov@google.com> Update windows before sending a window state change event

Change-Id: Ie25b75ccc739dcacbbffd2b3a32fe65086882c64
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
7ed4d37b74850e2ed5dfd50109dc6fa919904c7c 10-Jul-2016 Wale Ogunwale <ogunwale@google.com> Rename WindowState.mAttachedWindow to WindowState.mParentWindow

Helps with code clarity and reduces confusion for upcoming WM
object modeling changes.
Also, along the same lines changes locations that check to see if
WS.mAttachedWindow wasn't null to determine if the window is a child
window to use WS.isChildWindow method instead.

Bug: 30060889
Change-Id: I9b975ab9ff9bf09cdd3c0dcaddd3bf9232e88be8
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
155edc693eecb64d821a95567e719d0de7ee9c85 09-Jun-2016 Phil Weaver <pweaver@google.com> Improve accessibility window title behavior

Un-reverts ag/1057448, but uses a version of Resources#getText
that returns null rather than throw an exception when no title
is available. This is the same call made before, so this change
should be safer.

Bug: 28744278
Change-Id: I8c123f4f6d74f796ab9e8ffcf955aaf881770da1
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
266ed9acc396ff007b75b8356429d703117de2d7 08-Jun-2016 Phil Weaver <pweaver@google.com> Revert "Improve accessibility window title behavior"

Bug: 29127065

This reverts commit 2a7e4442bf9892842e0fc7eba9296e8fcf9f8ea5.

Change-Id: Ibc5527cfedd49c685ffd1b8ae59e87ed99c93d39
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
2a7e4442bf9892842e0fc7eba9296e8fcf9f8ea5 20-May-2016 Phil Weaver <pweaver@google.com> Improve accessibility window title behavior

Suppress the default, unlocalized strings from being read as title.

Bug: 28744278
Change-Id: Iea0f7d8fed3d6428ada725cf3ffa077ba974b74a
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
70439244ba1abc4f32357d2ee8ff38f73158fe37 11-Mar-2016 Phil Weaver <pweaver@google.com> Fix several accessibility magnification issues.

Clarifying region used for magnification as "magnificationRegion",
both in the public API and in the code. There's been significant
confusion about what "magnfifiedRegion" means. Removing
"availableRegion" from everywhere except where it's required, as
that region was identical to magnified/magnification region.

Trying to shut down magnification was a complex situation where
animations in progress and new magnification requests were tricky to
handle correctly. It was not possible to guarantee that the
magnification callbacks were unregistered consistently. There were
at least two situations that led to phone restarts:
1. If a triple tap was detected between unregistering the callbacks
and shutting down the input filter. In this case the magnification
request would go through.
2. If an animation had just started when magnification was turned
off, so the current magnification was 1.0 but the animator was
about to change it. In this case the callbacks would be unregistered,
and then the animator would start changing the magnification.

This change makes registering and unregistering magnification atomic.
It also makes MagnificationController stick around indefinitely once it
is created, registering and unregistering as needed to support
magnification gestures and services that control magnification. Services
that merely query the status of magnification no longer register for
callbacks.

One part of shutting down is turning off the animation and guaranteeing
that it won't try to make further changes. Adding a flag to
SpecAnimationBridge and a lock in that class so we can guarantee that
nothing happens when we aren't registered for magnification callbacks.

Also reconfiguring all accessibility options when a service stops to
make sure that only the features required by the current configuration
are enabled.

Bug: 27497138
Bug: 27821103
Change-Id: If697cbd34b117d82c8eee1ba7d0254089ee4241d
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
9be3c7bdc7d49e9f99861d20fb134799291f20df 08-Apr-2016 Phil Weaver <pweaver@google.com> Eliminate side effects of a11y window title.

ag/898112 added passing the window title to accessibility. To do that,
it also updated copy of the title in WindowManager.LayoutParams. That
was a behavior change, and the change broke cts tests that enforce that
the title in LayoutParams matches its expected format.

This change restores the previous behavior and adds a separate field to
LayoutParams to old an up-to-date title to pass to accessibility.

Bug: 28002185
Change-Id: Ia5b549113600b7c4fcc80b76c3f3a944dddaf483
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
d4a19326085f2a68d568dfa754c29fd0ac49d193 04-Apr-2016 Phil Weaver <pweaver@google.com> Merge "Add accessibility window title and anchor." into nyc-dev
65c067083e663805ed41ca0ae787345d186b0624 15-Mar-2016 Phil Weaver <pweaver@google.com> Stop non-touchable regions affecting magnification

A window's magnifiability only applies to its touchable regions, so a
non-touchable shadow over an IME won't affect the IME's magnifiability.

Bug: 27179277
Change-Id: I86076e001035678c73973d7a98e0dcac6143553e
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
396d549113bc633f719acc643c7dfc5f2a8fae4e 23-Mar-2016 Phil Weaver <pweaver@google.com> Add accessibility window title and anchor.

Plumbing through the title of windows so support multiwindow
accessibility.

Adding ability to determine the anchor of a pop-up window so the pop-up
can be traversed as part of its anchor.

Bug: 27687627
Bug: 8449376

Change-Id: I59e98a29fb90029407a26de5bf3d900fed5dd627
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
59e53a164e1e8d19830f16b6e3a743c7ebe0c1aa 28-Mar-2016 Alan Viverette <alanv@google.com> Various fixes for MagnificationController

- Ensure initial magnified and available regions are set
- Correctly offset magnified bounds by left coordinate
- Cancel ongoing animations before unregistering callbacks

Bug: 22718911
Bug: 27871383
Change-Id: Iaff63be856598d1f8edb2d94158bbd75045c86ec
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
f20ac2c1b86b56e763c6436effdea7f6c46e022b 12-Feb-2016 Allen Hair <allenhair@google.com> Limit modal windows to only hide windows in the same task.

Bug: 26560078
Change-Id: Ic3bd8d06ed0d8d44a8e7f0faaba31a762a9bfef3
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
0bd180d8880b3d1b9677f154c034a2af840b4796 08-Dec-2015 Filip Gruszczynski <gruszczy@google.com> Improve debugging setup for window manager package.

This moves debug flags to a dedicated class and also provides a
mechanism to either have fine grained tags or one common tag for easier
grepping the logcat. This mimicks the approach in activity manager
package.

Change-Id: Ie8c08b9a3d8b182335ee5547ee05d21b5933db6b
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
8f7f3184d55850b1c4d2036319794151f564e9c0 18-Nov-2015 Jason Monk <jmonk@google.com> Allow QS tiles to open dialogs

Add a TYPE_QS_DIALOG window type, that is in the same layer as
apps and dialogs and such. It is guarded by having a token
that is granted by SysUI after a click has occured. If the
app shows a dialog before listening finishes (QS closes) then
the token will stay granted until the tile is removed by the
user, otherwise the token will be removed immediately to avoid
later dialogs.

Also fix a couple tiny TileService issues:
- Stop/Start listening reversed
- Fix javadoc referencing wrong action

Change-Id: Iedcdd5fd9a2af2b33eb7f6f17bb0e6c997879876
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
214fb68767502f5fede643a062c1dc5975d75b27 17-Nov-2015 Alan Viverette <alanv@google.com> APIs for querying and controlling display magnification

Also separates magnification state and touch event handling. Moves
callbacks for window manager changes and display state changes into
the magnification controller.

Bug: 22718911
Change-Id: I3a8ba060a07d8f1f51856855a5f85601766fd45d
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
2a6a2c2de8ce2743679f488f056f22cd1adfd726 14-Oct-2015 Filip Gruszczynski <gruszczy@google.com> Change WindowState.mShownFrame to WindowState.mShownPosition.

We never use this field as a rectangle, we only depend on its left-top
corner. Using a frame is only confusing about the purpose of this field.

Change-Id: I5d6e6321db4fa3203bb7e0f1975ae6ddd1ec09bb
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
f83e824216435e45f36a3587e269888f791b2a01 20-May-2015 Selim Cinek <cinek@google.com> Fixed that touches where incorrectly consumed when fullscreen

The fake window that was added when View.SYSTEM_UI_FULL_SCREEN was
set consumed all touches, even those going to the SystemUI and not
just those of windows below. The input consumer is now correctly
positioned in the window order to only capture the right touches.
Clicks to the volume panel and the heads up now correctly go to the
right place instead of just unhiding the SystemUI bars.

Bug: 21089476
Change-Id: Ib53dfc0b33b70084ca607d0f044db30b6e6c91d6
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
01f280d376218c5a007fc29f70b876375ad24204 19-May-2015 Adam Powell <adamp@google.com> Migrate uses of config_windowIsRound to Configuration.isScreenRound

Move existing code that previously relied on config_windowIsRound to
use the new Configuration.isScreenRound() method. Also move the system
property override for emulators over to the initial setup of a Display
so that the configuration property is consistent with existing
expectations.

Remove config_windowIsRound from symbols.xml. The symbol now only
exists as a default value redirect for overlays already configured to
supply this value.

Change-Id: I24e6564030a6051c3ac7262868983b43e13eee65
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
0a4dc2258fa8216920e1a0b83cbf7d3729386e2f 14-Apr-2015 Wale Ogunwale <ogunwale@google.com> Added TYPE_APPLICATION_ABOVE_SUB_PANEL window type.

TYPE_APPLICATION_ABOVE_SUB_PANEL will be displayed on top of their
attached window and any TYPE_APPLICATION_SUB_PANEL panels.

Bug: 20135562
Change-Id: I711de3c19c01432c44de205bf09934a8b23b53fd
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
4a357cd2e55293402d7172766f7f9419815fc1e8 19-Mar-2015 Alan Viverette <alanv@google.com> Replace usages of deprecated Resources.getColor() and getColorStateList()

Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
032559650e4ac9844f92b0b746735d09a11f82dd 13-Feb-2015 Casey Burkhardt <caseyburkhardt@google.com> am 6f2dd8a9: Merge "Support circular magnification frame on circular devices" into lmp-mr1-modular-dev
automerge: d1a5b5d

* commit 'd1a5b5dc07dc3798ae13a5a9538b5e5bbbeb8058':
Support circular magnification frame on circular devices
d29a1e47d44ac072502342c3b9f55e9870e914ba 12-Feb-2015 Casey Burkhardt <caseyburkhardt@google.com> Support circular magnification frame on circular devices

The magnification viewport expects its boundary to be a rectangular region,
and always draws it as such. This change causes the indicator to draw as a
circle on devices with circular displays. This also refactors the width of
the indicator's frame to use a proper dimension resource and updates the
width to 4dip.

Bug:18242438
Change-Id: I1d86647b6d1ef84f5dd506f4141223ec050a79b5
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
165be0c70d128f0ece876d54e1c7e95ef04c6960 28-Jan-2015 Craig Mautner <cmautner@google.com> Remove TYPE_UNIVERSE_BACKGROUND from system

An experiment that is over and has been occupying space.

Fixes bug 18088522 item #7

Change-Id: Ib0fcaa24243ed9b0581143e1d5114c1fd2b0aa6e
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
3a0d878ab56475276c61d574af7651820a5cea5a 04-Dec-2014 Svetoslav <svetoslavganov@google.com> Ensure all events from a showing window are dispatched.

Accessibility services may opt-in to introspect the interactive
windows on the screen. If window introspection is enabled there
is a case where some events from a showing window are received
before the updated window state from the window manager. Now the
window manager sends over the windows before notifying the app
for the focus change.

bug:18625996

Change-Id: Ic481e01efbe12dc92f090f799feeb236672fc7b3
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
d0c73f49b72a4801fc19d2bda2b9239c34c6fa06 18-Nov-2014 Alan Viverette <alanv@google.com> Don't ignore accessibility overlays during visibility computation

Just don't use then to compute unaccounted space. This is a partial
revert of commit 9538eea5ff6f8e2183ced81b5b8eac60b0e774ea.

Change-Id: Ie2e29c8934da8ef707d20db1333abd4e240cd213
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
9538eea5ff6f8e2183ced81b5b8eac60b0e774ea 13-Nov-2014 Alan Viverette <alanv@google.com> Ignore accessibility overlays during visible window computation

Previously, the conditional for checking the layer type before
accounting for the window bounds was incorrectly inverted, but
we can simplify by just skipping accessibility overlay windows
completely.

BUG: 18358878
BUG: 18359820
BUG: 18359788
Change-Id: I9ba1e43a0fef4fa40693bd8c7e883c2ef45b4c4d
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
3a5c721072c60c7ed9c8a95d0a65d0e3cb4eb9bb 14-Oct-2014 Svetoslav <svetoslavganov@google.com> APIs for an accessibility service to put interaction tracking overlays.

An accessibility service may register to observe the interactive windows
on the primary display. These windows are the one that has input focus and
ones a sighted user can touch. It is sometimes beneficial for an
accessibility service to overlay a window to intercept user interaction
and based on that introspect and perform an action on the windows that
are on the screen. This is problematic as overlaying a full screen window
that is touchable prevents the accessibility service to introspect the
content under this window.

This change adds a special type of window that only an accessibility service
can place which does not affect what an accessibility service can "see" on
the screen. Hence, even putting such a window full screen the service will
be able to interact with the other interactive windows it covers.

Change-Id: I053ccc3a5c6360a98dc40bdb172b54dab35d8b31
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
9a64513c7fccc2a9cf331a384906a7669b29b3f4 08-Oct-2014 Adrian Roos <roosa@google.com> Retire RecentApplicationsDialog

Bug: 5162991
Change-Id: I429da977502f33e2091496f3a075b2c507a88e1f
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
b21df801f43a979290092b0f50011370fa1b6ac0 02-Sep-2014 Svet Ganov <svetoslavganov@google.com> Magnification bounds not always animated on a looper thread.

In display manigfication mode we are showing a frame around the
magnified region. Showing and hiding this frame is animated. In
some cases the code calling into the display magnifier is not
running on a looper thread which leads to a crash when interacting
with the property animator. Now the animation is explicitly handled
in a dedicated handler that runs on the window manager's handler
looper thread.

bug:15506701

Change-Id: I3fada775c9fac8820599dd31ac80720021c70cb3
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
7505e3315cb997165035f3bcc736d9d257b1fe3c 22-Aug-2014 Svetoslav <svetoslavganov@google.com> Fix jank in when drawing magnification bounds

There was an off-by-one error in computing the invalidated
rectangle when drawing the magnified region border.

bug:17199352

Change-Id: Id0a1af092b7124bbdca316534c035ed9af829326
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
6170cca05eb13cfb44c8d13e7a447cd24f27a62c 17-Jun-2014 Svetoslav <svetoslavganov@google.com> Not touchable windows should not hide windows behind

When computing which windows to report for accessibility we were not
reporting windows behind non touchable ones. However, if a window is
not-touchable the touch events go to the window behind it. Hence, a
not-touchable window should not affect the reproted windows for
accessibility.

Change-Id: I213a32b33b0986a73d8bbdf0a3e40e6ca6e4261b
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
f7174e87b6007000777b0124de9cef70d8618788 12-Jun-2014 Svetoslav <svetoslavganov@google.com> Fix backwards compatibility for introspected windows.

1. The APIs for introspecting interactive windows were reporting only
the touchable windows but were missing the focused window. The user
can interact with the latter by typing, hence it should always be
reported. Also this was breaking backwards compatibility as if the
focused window is covered by a modal one, the focused window was not
reporeted and this was putting the active window in a bad state as
the latter is either the focused window or the one the user is touching.

2. Window change events are too frequent as on window transition things
are chanign a lot. Now we are trottling the windows changed events
at the standard recurring accessibility event interval.

3. Fixed a wrong flag comparison and removed some unneded code.

buy:15434666
bug:15432989

Change-Id: I825b33067e8cbf26396a4d38642bde4907b6427a
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
4604abc97d7dd757bb76ff9b7fcf343dc4a15212 11-Jun-2014 Svetoslav <svetoslavganov@google.com> Moving and resizing windows not reported propely for accessibility.

When the position and size of a window changes we have to report that
to the accessibility layer if the window introspection is enabled.

bug:15569915

Change-Id: I3f869e0a582592bfa5f3743d5c2133ee8cb39b34
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
eb94fa7975b1e8742f3b00cec6bd4f9d6b329e3a 04-Jun-2014 Dianne Hackborn <hackbod@google.com> Improvements to low power mode.

Add new public API for monitoring low power mode.

BatteryService now puts device in to low power mode when
battery level is low.

Window manager now watches low power mode to turn off
animations.

Modifying the animator scale now gets propagated to all
processes.

Change-Id: I8fa566994764ddd4e1977631e28381ab9409f8ee
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java
8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda 24-Feb-2014 Svetoslav <svetoslavganov@google.com> Added accessibility APIs for introspecting interactive windows.

1. The old introspection model was allowing querying only the active window
which is the one the user is touching or the focused one if no window is
touched. This was limiting as auto completion drop downs were not inspectable,
there was not way to know when the IME toggles, non-focusable windows were
not inspectable if the user taps them as until a screen-reader starts
introspecting the users finger is up, accessibility focus was limited to
only one window and the user couldn't use gestures to visit the whole UI,
and other things I can't remember right now.

The new APIs allow getting all interactive windows, i.e. ones that a
sighted user can interact with. This prevents an accessibility service
from interacting with content a sighter user cannot. The list of windows
can be obtained from an accessibility service or the host window from an
accessibility node info. Introspecting windows obey the same rules for
introspecting node, i.e. the service has to declare this capability
in its manifest.

When some windows change accessibility services receive a new type
of event. Initially the types of windows is very limited. We provide
the bounds in screen, layer, and some other properties which are
enough for a client to determined the spacial and hierarchical
relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
are composed of two ints, each taking 32 bits. However, the values for
undefined were -1 so composing a 64 long from -1, -1 prevents from getting
back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
clients it disappeared/appeared. Also ViewGroup was sending accessibility
events for changes if the view is included for accessibility but this is
wrong as there may be a service that want all nodes, hence events from them.
The accessibility manager service takes care of delivering events from
not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
service being ready when it is created but it can be fetched from a context
before that. If that happens the local manager was in a broken state forever.
Now it is more robust and starts working properly once the backing service
is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
/frameworks/base/services/core/java/com/android/server/wm/AccessibilityController.java