24bec7ce7adc3c0d693cfadcb4b28f5fc41555ae |
|
04-Feb-2015 |
Jorim Jaggi <jjaggi@google.com> |
Implement nice transitions for light status bar - When the flag changes, apply an animation from the current value - When the flag change is caused by an app transition, synchronize the status bar animation with the app transition animation. PhoneWindowManager calculates the timings based on some heuristics of the app transition animations and supplies these timings to StatusBarService. Bug: 19233606 Change-Id: I4f99afba8f1eebb3524699ed4d7fbafee5463a37
/frameworks/base/core/java/android/view/WindowManagerInternal.java
|
77ba4803a510717032181e7cf0beca9d07f09733 |
|
18-Feb-2015 |
Jorim Jaggi <jjaggi@google.com> |
Add AppTransitionListener Introduces the concept of a listener to be notified about app transition events. The only client at the moment is window manager which notifies activity manager about completed transitions, but this can be used for various clients, including the status bar. Bug: 19233606 Change-Id: Ia6fec5837b6eb4db90f3cb1c999d3f157ba6dd4a
/frameworks/base/core/java/android/view/WindowManagerInternal.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/core/java/android/view/WindowManagerInternal.java
|
e34560b21989eea54a139a0586d156ba573cc2ea |
|
10-Jul-2014 |
Alan Viverette <alanv@google.com> |
Add accessibility action to open power long-press dialog Also fixes an infinite recursion bug in the WindowManagerService implementation of WindowManagerInternal. BUG: 16129909 Change-Id: I4f9d32f4e6c3ad460652c5e5271540fa5032a1f5
/frameworks/base/core/java/android/view/WindowManagerInternal.java
|
13f6ea78b0aa98ffea6ea644770e4320ec9a2242 |
|
23-Jun-2014 |
Craig Mautner <cmautner@google.com> |
Avoid unnecessary timeouts. And fix a couple of other inefficiencies. Fixes bug 15444410. Change-Id: Idad95d4e4d70bc7d2965e1bd6ff3d3135b73dd9c
/frameworks/base/core/java/android/view/WindowManagerInternal.java
|
8a0da0184f6c5c95d94ab6adfee79bace4040abd |
|
01-Jun-2014 |
Craig Mautner <cmautner@google.com> |
Force all windows to redraw before unblanking screen The screen turning on would show windows as they were when the screen turned off. This fix forces all showing windows to redraw first and only then allow the screen to turn on. Fixes bug 15092354. Change-Id: I52c3f47438176a5ac00ba9a4d5205b56a5aa48f9
/frameworks/base/core/java/android/view/WindowManagerInternal.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/core/java/android/view/WindowManagerInternal.java
|
4ccb823a9f62e57f9d221f83a97e82967e79a9e5 |
|
17-Jan-2014 |
Jeff Brown <jeffbrown@google.com> |
Refactor display manager service to new pattern. Transform DisplayManagerService into a SystemService and start cleaning up other local services that it uses from window manager and input manager. Clean up service thread initialization. Remove unnecessary static variables from ActivityManagerService. It's starting to become clear that we really need a better way to manage service dependencies. Boot phases don't quite cut it. Change-Id: If319dbd7cbfbd4812fe55ece969e818d4b20755b
/frameworks/base/core/java/android/view/WindowManagerInternal.java
|