c73cfa0ffba344a83d61e2f4eb9715152a2807b8 |
|
10-Feb-2015 |
Svetoslav <svetoslavganov@google.com> |
Accessibiltiy: missed update to the previous patch. Change-Id: I4c47d38f5e137dcc1c6db0561b3824a26572027d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f33fe1f4860d4cbc49633162cf6441d315550cc9 |
|
07-Feb-2015 |
Svet Ganov <svetoslavganov@google.com> |
Accessibility: Handle a missed case when clicking focused views. The special logic for clicking on views in accessibility mode should not prevent event interception and if a view interceptes the gesture we must clear the special flag and do normal event dispatch. Also once we have a view handling the touch gesture we do not need the special flag as we know what will handle the event. This tightly follows standard event dispatching. bug:19252492 Change-Id: I0c9764c5050ec73f5f7980f3f0340dd9509a725a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ded133c446fa9d0d23e6bde19a66fb2ce3980491 |
|
31-Jan-2015 |
Svetoslav <svetoslavganov@google.com> |
Fix broken activation of the selected view in accessibility mode. We were using an approximation to determine where to send a pair of down and up events to click on the view that has accessibility focus. We were doing reverse computation to figuring out which portion of the view is not covered by interactive views and get a point in this region. However, determining whether a view is interactive is not feasible in general since for example may override onTouchEvent. This results in views not being activated or which is worse wrong views being activated. This change swithes to a new approach to activate views in accessibility mode which is guaranteed to always work except the very rare case of a view that overrides dispatchTouchEvent (which developers shouldn't be doing). The new approach is to flag the down and up events pair sent by the touch explorer as targeting the accessibility focused view. Such events are dispatched such that views predecessors of the accessibility focus do not handle them guaranteeing that these events reach the accessibiliy focused view. Once the accessibiliy focused view gets such an event it clears the flag and the event is dispatched following the normal event dispatch semantics. The new approach is semantically equivalent to requesting the view to perform a click accessiblitiy action but is more generic as it is not affected by views not implementing click action support correctly. bug:18986806 bug:18889611 Change-Id: Id4b7b886c9fd34f7eb11e606636d8e3bab122869
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
69c22e82e9c3e95f4689a57320de3199ffd29262 |
|
13-Jan-2015 |
Adam Powell <adamp@google.com> |
Merge "Add API for nested pre-processing of a11y events; fix ResolverDrawerLayout" into lmp-mr1-dev
|
74bf065e43a3075ffcaf9fcdc1ef423a1e14b761 |
|
12-Jan-2015 |
Wale Ogunwale <ogunwale@google.com> |
Don't allow windows with invalid types to be added. Bug: 18950225 Change-Id: Ia7ead72d036c7628e0a97f8fe9fef2a35525e4df
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b6ab098bad4b126eaaaa3aaa5a512fefc4e0749b |
|
08-Jan-2015 |
Adam Powell <adamp@google.com> |
Add API for nested pre-processing of a11y events; fix ResolverDrawerLayout Add API for handling nested pre-processing of accessibility events similar to nested pre-scroll or pre-fling. This allows custom views to delegate a nested scroll to a parent via the accessibility system. Use this functionality to allow opening the ResolverDrawerLayout via accessibility commands. Bug 18827274 Change-Id: Icd5a502605b78a861bb03e7b11923841a72eb9ab
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
01a5ea35fbba4c5bb1d7790ae1677a2fa752e042 |
|
03-Dec-2014 |
John Reck <jreck@google.com> |
Resume RT-animations after a pauseSurface Bug: 18203577 The issue occurs as a result of performTraversals() both doing a window relayout call *and* early-returning because it's not dirty. To fix this pauseSurface() returns whether or not the RT-side is "dirty" to force ViewRootImpl to do a draw even if mDirty is otherwise empty. Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b13de07f0b26953115f4315bc7417ca87c70594b |
|
20-Nov-2014 |
John Reck <jreck@google.com> |
If the surface is lost, release it Bug: 18403246 Surface#isValid() is used throughout ViewRootImpl to determine Surface validity. However, this will return true until Surface#release() is called, even if the underlying BufferQueue is abandoned. We have a very strong signal from EGL that the Surface is now dead, so use that signal to call Surface#release() so ViewRootImpl's isValid() usage will be valid. Change-Id: Ib355560ef4ca7625c3c784174863d2d55267d93d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c3672cd3f7e2bd87d6de9dada499de82b62fae84 |
|
06-Nov-2014 |
Wale Ogunwale <ogunwale@google.com> |
Cancel or drop key events if activity is stopped. After an activity instance state is saved due to onStop()/onPause(), there is a small window where it can still get key events like the back button since we still allow the ActivityThread to handle pending messages (like memory trim request) before informing the activity manager that we are done. If the activity is stopped, we will now drop non-terminal input events and set the cancel flag on terminal events. Bug: 18151331 Change-Id: I370d7c871530eea4b16fa42428d0248f1a87abb6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
37d7a68de7e353c31a3a4736054cd86f0e002eaf |
|
06-Nov-2014 |
Adrian Roos <roosa@google.com> |
Fix inset hinting when adding window Windows with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS were getting an incorrect content inset hint, because the hinting didn't see the adjusted systemUiVisibility. Also adds hinting for the stable insets. Bug: 17508238 Change-Id: If9647277feb6811b15665b801accd896c51dbd12
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2cd23e6b9d8fcdf5dfd052fb2ed0cd80f1d278ba |
|
05-Nov-2014 |
Alan Viverette <alanv@google.com> |
Fix hasSurfaceInsets check when creating hardware renderer BUG: 17729606 Change-Id: I8c7092428b790e0ff3bbf84b64ba385ef2b2f521
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
93cad8c4d41f2256d0bfaa455686acf8442d97ff |
|
04-Nov-2014 |
Alan Viverette <alanv@google.com> |
Pass surface insets from window attributes rather than params Params only gets set in certain situations, whereas the actual window attributes always contain the correct surface insets. BUG: 18214798 Change-Id: Ib5236ccf3f120b26c5abc8671bf29cb3dc269186
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
808fe6f99fba753e0ec4c5e90de0ff7a2140e8a6 |
|
03-Nov-2014 |
Adrian Roos <roosa@google.com> |
Merge "Fix colored status bar panning issues" into lmp-mr1-dev
|
159da3dba8811017c683fcee26c795be1948b0c4 |
|
30-Oct-2014 |
Craig Mautner <cmautner@google.com> |
Merge "Add enter-animation-done callback for system windows" into lmp-mr1-dev
|
9c79504225f60c72c947220b6aca928f11279e1c |
|
29-Oct-2014 |
Craig Mautner <cmautner@google.com> |
Add enter-animation-done callback for system windows Existing hidden methods allow activities to be notified when their windows have completed animating in. This change adds that capability to system windows using a ViewTreeObserver callback since system windows lack an activity token. The first subsystem to use this is the UserSwitchingDialog which was previously using a 250 msec timeout to dismiss the dialog. That deadline was often missed leaving the user with no dialog on the screen during the transition. Fixes bug 16661752. Change-Id: I70789e0d9c07112f275e76fb82850926305f290d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
66c0adcfd4351518512df2f3e81526d2d67d6d65 |
|
29-Oct-2014 |
Alan Viverette <alanv@google.com> |
Merge "Ensure accessibility focus rect is drawn correctly" into lmp-mr1-dev
|
2b12b58f942e34e8c0cc5095cca71dbaaa029624 |
|
29-Oct-2014 |
Alan Viverette <alanv@google.com> |
Create translucent hardware renderer if surface insets are non-zero BUG: 18160604 Change-Id: Ie4483b9841bd91778659d83b154f69e777fa1dfc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0e7ae4efe8f424fa1ced8f7e5f3d8ae78066592b |
|
01-Oct-2014 |
Adrian Roos <roosa@google.com> |
Fix colored status bar panning issues Bug: 17695293 Change-Id: I6a1267f8dff27e7b78ab312a71648ef16ab9483b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
632af849240f54f91b2b4fde77d3a51c4d045f74 |
|
28-Oct-2014 |
Alan Viverette <alanv@google.com> |
Ensure accessibility focus rect is drawn correctly Reverts previous change that draws it as part of View.draw() and ensures that the display is always redrawn if a view has accessibility focus. Correctly removes focus from views with accessibility focused ancestors. Also reverts the focus indicator to use a solid line since the dotted line looked janky. BUG: 17675993 Change-Id: I25718334cc1ae1c2cd19d3c23af1c18c6a67504c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b3ba1d4e717d6292df4273108f0da61dac4f7b10 |
|
27-Sep-2014 |
Svetoslav <svetoslavganov@google.com> |
Accessibility node provider getting invalid virtual view id. If the virtual child id is not specified we should ask the node provider to create a node info for the hosting view bu passing the special host node id. bug:17664111 Change-Id: I9c2d3195ad813eed7ea4108fe0d7ccb9cc32a1a0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
73840ea3670f1c117843acc6069635c80ba2ffd2 |
|
22-Sep-2014 |
John Reck <jreck@google.com> |
Aggressively trim memory for system_process Bug: 16978006 Don't HWUI-accelerate KeyguardScrim Aggressively trim memory as soon as a ViewRootImpl dies or has its visibility changed. Change-Id: Ie1b7c9d30653456bd2e9f309128174f972999368
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
61375a8bb5e112d4e79ee4240699ffe7e3f4c8e5 |
|
18-Sep-2014 |
John Reck <jreck@google.com> |
Revert "Make starting window hw-accelerated" Bug: 17516789 This change corresponds to a sudden influx of bad surface crashes. Reverting to see if stability returns as this was an optimization CL This reverts commit 29ff1bc57ac2c995c56f15ed6e56e5fb247b2a44. Change-Id: I7835e89017161d94ad05fe46d81bd437c3dae3a7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4f52b3420684e85252a7341d906e47145855b6ec |
|
11-Sep-2014 |
Chet Haase <chet@google.com> |
Make starting window hw-accelerated An earlier fix in L disabled hw acceleration for the starting window after the system process became hw accelerated. This was done to preserve the old behavior of the starting window having some default behavior (in particular, being filled with a default color). However, this ends up being a memory and performance problem on some platforms (memory because some platforms have backing store for software surfaces, performance because it takes far longer to create a screen-size software surface than a hardware surface). The fix is to allow the starting window to inherit the hw acceleration behavior of its process, and to detect when we are drawing the contents of that starting window and to fill it with a default color (black). Issue #17443449 use hardware rendering for app preview window Change-Id: I8be8111d9e38c51fbbc07185acca065815ce26dc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bb8c4834613207cf880e8491b33eb495cc268548 |
|
09-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Merge "Add new wallpaper features for insets and offsets." into lmp-dev
|
067e5f68b9216b233df1c6529db182ff9b2887ab |
|
08-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Add new wallpaper features for insets and offsets. Issue #17394151: WallpaperService / Engines need to get notified of WindowInsets Issue #17394203 Wallpapers need a system API to be shifted in order to support burn in protection Adds a new API on WallpaperManager to set additional offsets to make wallpapers extend beyond the display size. Insets are now reported to wallpapers, to use as they may. This includes information about the above offsets, so they can place their content within the visible area. And to help with this, also expose the stable offsets APIs in WindowInsets which is also very useful information for the wallpaper. Another new API on WallpaperManager to set a raw offset to apply to the wallpaper window, forcing it to move on the screen regardless of what the wallpaper is drawing. Fix wallpapers when used with overscan enabled, so they still extend out across the entire screen. Conveniently, the above new window insets information is very useful for this case as well! And a new wallpaper test app for all this stuff. Change-Id: I287ee36581283dd34607609fcd3170d99d120d8e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7498efdc5e163d6b4a11db941c7d13c169d37284 |
|
04-Sep-2014 |
Svet Ganov <svetoslavganov@google.com> |
Clicking on partially coverd views by other views or windows. In touch exploration mode an accessibility service can move accessibility focus in response to user gestures. In this case when the user double-taps the system is sending down and up events at the center of the acessibility focused view. This works fine until the clicked view's center is covered by another clickable view. In such a scenario the user thinks he is clicking on one view but the click is handled by another. Terrible. This change solves the problem of clicking on the wrong view and also solves the problem of clicking on the wrong window. The key idea is that when the system detects a double tap or a double tap and hold it asks the accessibility focused node (if such) to compute a point at which a click can be performed. In respinse to that the node is asking the source view to compute this. If a view is partially covered by siblings or siblings of predecessors that are clickable, the click point will be properly computed to ensure the click occurs on the desired view. The click point is also bounded in the interactive part of the host window. The current approach has rare edge cases that may produce false positives or false negatives. For example, a portion of the view may be covered by an interactive descendant of a predecessor, which we do not compute (we check only siblings of predecessors). Also a view may be handling raw touch events instead of registering click listeners, which we cannot compute. Despite these limitations this approach will work most of the time and it is a huge improvement over just blindly sending the down and up events in the center of the view. Note that the additional computational complexity is incurred only when the user wants to click on the accessibility focused view which is very a rare event and this is a good tradeoff. bug:15696993 Change-Id: I85927a77d6c24f7550b0d5f9f762722a8230830f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f0c758be0d27910d026bee176eef9434c15fc3cd |
|
04-Sep-2014 |
Svetoslav <svetoslavganov@google.com> |
Update accessibility focused virtual view bounds. We keep track of the accessibility focused virtual view in order to draw the accessibility focus highlight. We were not updating this virtual view when the view tree changes in a way that may affect the virtial view's bounds in the screen. bug:17211255 Change-Id: I69dd949b91ed9c8242521332081d50d75cac6921
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9ae9ed24aa252acbc2e6288068b991dd5291967b |
|
03-Sep-2014 |
Svetoslav <svetoslavganov@google.com> |
Fix AccessibilityNode's isVisibleToUser behavior. The isVisibleToUser property of an AccessibilityNodeInfo specifies whether the user can see the source view. It is used by accessibility services to figure out whether to focus on a view. This property was giving a wrong value if the view is covered by another window such as the keyboard. As a result the user hears one thing but when double taps interacts with the overlaid window which is another thing. bug:15938254 Change-Id: Ib9feb20ea422a24a512c47ed1234961ae0386a7f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4c5a27b5f667ebc7cb2b188655820ad3fddedb52 |
|
28-Aug-2014 |
John Reck <jreck@google.com> |
Merge "Animator stuff" into lmp-dev
|
119907cd2575c56b1ebf66348b52e67aaf6a88d8 |
|
14-Aug-2014 |
John Reck <jreck@google.com> |
Animator stuff Bug: 17228458 Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f14d924cd706438b52ba2bf7a698ea1645fe6399 |
|
26-Aug-2014 |
Filip Gruszczynski <gruszczy@google.com> |
Allowing isRound and outsetBottom properties to be passed to ActivityView. We remove requirement for having display id == 0 or allow circumventing it through a flag. Change-Id: Ia4671614b51894393d47e681cc72718d394230f6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
997aa40645a1ccdd30c88ba6d5b7bb389fcec72c |
|
19-Aug-2014 |
Alan Viverette <alanv@google.com> |
Draw accessibility focus in View rather than ViewRootImpl This ensures that the focus rect position is correct when running in render thread accelerated mode. Also adds a missing call to draw the overlay. BUG: 16796647 BUG: 17063342 Change-Id: I377e5eaea89d3f20c8c7e82c264a0f106021d58b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
99421aed1f57195254b36cf10e23c92219d72270 |
|
13-Aug-2014 |
Alan Viverette <alanv@google.com> |
Merge "Invalidate root render node when accessibility focus moves" into lmp-dev
|
1dd0e0fae2135a0aaf8c9f3686e70d3544597bec |
|
12-Aug-2014 |
John Reck <jreck@google.com> |
Don't use libhwui to draw starting window Bug: 16735410 Change-Id: I763c10b9d34eadcb768ad580d2387b1e825cbd53
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f6cf1a02537959c5953553000cb7151c0554a333 |
|
11-Aug-2014 |
Alan Viverette <alanv@google.com> |
Invalidate root render node when accessibility focus moves BUG: 16796647 Change-Id: Ibfc6ec4aa50c6354ea095a35470dd54e768d911b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
dbed893ba88b76f88ea51d8666653458955cdc67 |
|
07-Aug-2014 |
Alan Viverette <alanv@google.com> |
Preserve surface insets when view layout is updated Also makes canvas save & restore in threaded renderer a little safer. BUG: 16654228 Change-Id: Ie0d49450ed408cffd0b859c08e524b6f904c77ca
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ac89416c77a1fab6921aa31a999ccefc1223be7c |
|
21-Jul-2014 |
Alan Viverette <alanv@google.com> |
Always apply surface insets Change-Id: I9d8ad0c7fcf7a1016e01c2332f45614da5d2cf0c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7bf379c8af399626d5b8b568fe1d4f96f56badcc |
|
16-Jul-2014 |
Dake Gu <dake@google.com> |
ActivityTransition: fix wrong width/height applied to sharedelement. transform screen position/size to position/size in parent of sharedelement. fixed bug of transformMatirxToLocal() and transformMatrixToGlobal() that gets Change-Id: I4c7b12f1ada7004ab7594961df4079be4ca4c909
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6712495297a549b546ba781c6858c18f4cc9484b |
|
17-Jul-2014 |
Chris Craik <ccraik@google.com> |
Merge "Simplify ViewRootImpl's AttachInfo usage" into lmp-dev
|
d36a81f392946bbc84a5a97f911a337b8ed6770b |
|
17-Jul-2014 |
Chris Craik <ccraik@google.com> |
Simplify ViewRootImpl's AttachInfo usage Change-Id: I4230e95ed5a52c8c5fae7d7b8d58827925db13ba
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b72be59a6a5ca5fae3ede2470f1662598098b666 |
|
17-Jul-2014 |
Adam Powell <adamp@google.com> |
Add nested pre-fling for nested scrolling Nested pre-fling allows a nested scrolling parent to consume a fling operation before the child view does. If a parent has been consuming nested pre-scroll events in a particular direction, this is generally a good indication that it should also consume the resulting fling at the end. Bug 15538504 Change-Id: I88e8753a96c9b41815c3be530cafab8345164e64
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
889fc94ffa70633e510e812b9da86723f4eee384 |
|
17-Jul-2014 |
Chris Craik <ccraik@google.com> |
Merge "Add accessibility text contrast setting" into lmp-dev
|
cce47eb580d666ead1f6095d1e3b65233592bbaa |
|
17-Jul-2014 |
Chris Craik <ccraik@google.com> |
Add accessibility text contrast setting b/14624452 Adds a feature which draws all text (in the HW accelerated standard path) in a high contrast mode. Text is drawn at full alpha, and either white or black (depending on its original color) with a starkly contrasted outline beneath it. Change-Id: I943f624b6367de35367cced3b2a8298f2bc62377
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a51cab9288fea0a8c8ce9a4ccdb834a11984b32c |
|
17-Jul-2014 |
Alan Viverette <alanv@google.com> |
Fix software dirty region, don't add insets to software windows BUG: 16324957 Change-Id: Ia99619b7c314fbfce60a5ef8ac16b54680332899
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0a97330b98dd633b58dcfff405d94476c89e867d |
|
16-Jul-2014 |
John Reck <jreck@google.com> |
Fix root RenderNode damage calculation Bug: 15888445 Change-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
49a22e82025ea947d81681a0abb7ef00600eac3b |
|
13-Jul-2014 |
Alan Viverette <alanv@google.com> |
Add window elevation for dialogs, clean up surface insets API BUG: 13211941 Change-Id: I9d605d0b2fb24f9bf8e73fbecd520b6b52ae5751
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
58c42c3596a2b79184c9a6b7beffc6e94cce112c |
|
13-Jul-2014 |
Alan Viverette <alanv@google.com> |
Specify light and shadow properties in theme BUG: 15859361 Change-Id: I65c9aa8c7ad7a709504c879d96158efba040d3ce
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ccb11e183763db5cbaca96abe461adf480ed8e44 |
|
09-Jul-2014 |
Alan Viverette <alanv@google.com> |
Add API for specifying popup window shadows and shadow insets BUG: 14569120 BUG: 13211941 Change-Id: Ia21596b25a0471344d42d59377074f67fce00042
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fa10423fa00f3495e451016acba9b6848eb995c9 |
|
21-Jun-2014 |
Adrian Roos <roosa@google.com> |
Add stable insets for stable system windows Adds a new kind of inset that only accounts for stable system windows like the system or navigation bar. Bug: 15457292 Change-Id: I681b711f6f40a94c25b7acd3a44eb3539486afab
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f47a594f5250b1914c36423ee6b371f0b8db09d0 |
|
01-Jul-2014 |
John Reck <jreck@google.com> |
Fix onTrimMemory for HardwareRenderer Also fixes detachFunctor possibly drawing after return Bug: 15189843 Bug: 15990672 Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
918ad523b2780e0c893f3d2a32d4ec13f2a7e921 |
|
27-Jun-2014 |
John Reck <jreck@google.com> |
More cleanups Change-Id: Id5967944b949a2aec57e4fe9fdcdc04c11b8c35a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9970aee6e8858f2f9efe329aa0ab68b56ed1659e |
|
24-Jun-2014 |
Hui Shu <hush@google.com> |
Remove the return value of invokeFunctor BUG: 15513308 Change-Id: I900800a6c63f15bf68afaf66b34303039038d3c2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3b20251a355c88193c439f928a84ae69483fb488 |
|
23-Jun-2014 |
John Reck <jreck@google.com> |
No-fail invokeFunctor Bug: 15513308 Bug: 15449247 Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8dab261d81e84b0a5cac3fc525d4c4bc0077bacd |
|
22-Jun-2014 |
Michael Kolb <kolby@google.com> |
am c6ffc840: am 270c099f: Merge "Move emulator check & save system properties access" into klp-modular-dev * commit 'c6ffc840c4e34a61b537e1fc3e90b111d4150244': Move emulator check & save system properties access
|
c0fcf109f04e56617680b41d69b7d952ac4bea0b |
|
21-Jun-2014 |
Michael Kolb <kolby@google.com> |
am 71f65485: am db9fed74: Merge "Make WindowInsets.isRound work with emulator" into klp-modular-dev * commit '71f65485bf47c8bfbae2b3a0a9573b311668b4a2': Make WindowInsets.isRound work with emulator
|
c6ffc840c4e34a61b537e1fc3e90b111d4150244 |
|
21-Jun-2014 |
Michael Kolb <kolby@google.com> |
am 270c099f: Merge "Move emulator check & save system properties access" into klp-modular-dev * commit '270c099faf63868dcc21836a84de778337ff3be9': Move emulator check & save system properties access
|
71f65485bf47c8bfbae2b3a0a9573b311668b4a2 |
|
21-Jun-2014 |
Michael Kolb <kolby@google.com> |
am db9fed74: Merge "Make WindowInsets.isRound work with emulator" into klp-modular-dev * commit 'db9fed74c2bbf97157683b47f3cbdcd04c729839': Make WindowInsets.isRound work with emulator
|
437d31390b564bbf31f7034930a33b2a86d1ae26 |
|
20-Jun-2014 |
Michael Kolb <kolby@google.com> |
Make WindowInsets.isRound work with emulator Bug: 15775489 Change-Id: I53a14ccd3be776d46c9cea43c0d5d3f41674dd75
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
22dfdcb7eea428e041b66cb6dc430dc0582e861a |
|
21-Jun-2014 |
Michael Kolb <kolby@google.com> |
Move emulator check & save system properties access Bug: 15775489 Change-Id: I375aee36b212ae044101a65b65c51e6f889fd263
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9d7ee60e5e9fab801a21c8bf174ef1e8175ccdd2 |
|
17-Jun-2014 |
John Reck <jreck@google.com> |
Remove incorrect isEnabled() check Bug: 15683945 invokeFunctor() does not require isEnabled() to be true to execute. Specifically it does not care if HardwareRenderer has a Surface or not, as it will fall back to a pbuffer surface if available. If there is no context at all, it will invoke with kModeProcessNoContext. Change-Id: Ie6abe566b92c8fa33bb7a673fc3b9fa9ce913446
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b8802b1293c05a14399005aeaeb93b82ec2e2f27 |
|
17-Jun-2014 |
John Reck <jreck@google.com> |
Add atlas map pointer validation Bug: 15425820 This just prevents the crash, it's still unclear how bad pointers are getting into the map in the first place Change-Id: I3acffaae09548ec48973035b7fcf5f35606bad60
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
816f71b7e0dc263362e9fc8d251c8d1944bff17c |
|
13-Jun-2014 |
John Reck <jreck@google.com> |
Merge "Move LayerType to RenderNode"
|
25fbb3fa1138675379102a44405852555cefccbd |
|
12-Jun-2014 |
John Reck <jreck@google.com> |
Move LayerType to RenderNode Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
/frameworks/base/core/java/android/view/ViewRootImpl.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/core/java/android/view/ViewRootImpl.java
|
e4267ea4f20740c37c01bfb6aefcf61fddc4566a |
|
04-Jun-2014 |
John Reck <jreck@google.com> |
Even FASTER damage calculations! * Now with more native! * Less matrix math thanks to bulk-property-update support! * Zero JNI on the View.damageInParent() path! * Fully aware of RT-driven animators! * Likely full of new and exciting bugs! * But it also fixes at least 1 existing invalidate bug! Change-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
84a4c887a07c1c2939443f4e0587d7f1ac109e4b |
|
30-May-2014 |
John Reck <jreck@google.com> |
Remove GLRenderer Change-Id: I180286417c1a354fc7eb1eadb1884ac6add0795c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2cfc0e543f69750b4ccc9d5f52b384e525cf9e77 |
|
30-May-2014 |
John Reck <jreck@google.com> |
am 894bb170: Merge "Enable debug stuffs" into lmp-preview-dev * commit '894bb1701ae15b87af1e3bfe865fe191081cc806': Enable debug stuffs
|
fe5e7b7346a54537b980796ceeca66bfdbd05561 |
|
24-May-2014 |
John Reck <jreck@google.com> |
Enable debug stuffs Bug: 14596762 * dumpsys gfxinfo implemented * profile GPU visual_bars implemented Change-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d04d303e5d8521403514cf960a694e566df19536 |
|
23-May-2014 |
John Reck <jreck@google.com> |
resolved conflicts for merge of 1f6c973b to master Change-Id: I0d0a72f1d737fa80ac4c258c1f9fc52ef85724bd
|
a5dda645da738da7b4ae15e28fa7d93d3b04b94f |
|
23-May-2014 |
John Reck <jreck@google.com> |
Bag of scheduling tweaks Bug: 15118640 * Prevent over-stuffing the queue by dropping frames * Prevent double-drawing in one pulse by RT by deferring vsync registration until post-draw so that it catches the next vsync pulse instead of the current one * Bias vsync race condition towards the UI thread * Fix queueDelay to actually work Change-Id: Ibf584258bd93ebcbba058bd976dc8b307f1c6155
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2a89b08eb1d48208f52eeaf12cb8b687abe81e1c |
|
23-May-2014 |
Michael Wright <michaelwr@google.com> |
Merge "Add ability to request unbuffered dispatching."
|
797b95b26bbb7557678af78b9a2a61830158920f |
|
21-May-2014 |
Chris Craik <ccraik@google.com> |
Define light position (using new lighting spec) in Java Also updates the relative shadow strengths. Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d27a69c40d285c8911dac19c22926ec279110e51 |
|
17-May-2014 |
Michael Wright <michaelwr@google.com> |
Merge "Add InputStage debugging logs"
|
9d744c731295e6ba9b0031f3fb63b0df13e591d8 |
|
19-Feb-2014 |
Michael Wright <michaelwr@google.com> |
Add ability to request unbuffered dispatching. While in general input batching has a lot of benefits, some apps would prefer the input system not batch at all. This is typically because they do some of the batching as part of their own input processing, as is the case with Chrome. Bug: 12973909 Change-Id: I2e0c2b4c51bacc06f88245c528aa8849e4c4dab2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
44ac42a6c9c3aa2614ef2369cda2e3de989c1fe0 |
|
16-May-2014 |
John Reck <jreck@google.com> |
Add missing fence() Bug: 14995924 Change-Id: I991fe74f01468b1b7e34aee0455dc419637f5c8d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
06a7925a2e5ac604b57c3b2855010558fd7bc46b |
|
06-May-2014 |
Michael Wright <michaelwr@google.com> |
Add InputStage debugging logs Change-Id: I0cd606b0c43ec9ab34f006b750e77bc312f66439
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ae493d967ff47312f7b6d80fdd67377c73214a5e |
|
08-May-2014 |
John Reck <jreck@google.com> |
Merge "Allow all loopers to be RT-accelerated"
|
030d619aaab044491381e72f222cc9ba8dabcc19 |
|
08-May-2014 |
John Reck <jreck@google.com> |
Allow all loopers to be RT-accelerated Bug: 14445956 Change-Id: I03e92642aa118db5c7fefa1f09c3a5bde6ea671d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ef27453cf71e331e4076df5e5c665b06d5c3e050 |
|
07-May-2014 |
John Reck <jreck@google.com> |
Merge "Cleanup attachFunctor"
|
832b151465ed81c43e59891d5eebe62128b21fbb |
|
07-May-2014 |
John Reck <jreck@google.com> |
Cleanup attachFunctor Bug: 13961296 Change-Id: Id48d11bfcc234afd1fd7e4fdd409a50e7208c81d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
63a06673253914510bbeebd500655008682dade1 |
|
07-May-2014 |
John Reck <jreck@google.com> |
Implement TODO(romainguy) Bug: 14277445 Change-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0a7e8f99970f8adaeaa895343ff0d1863900e9e3 |
|
02-May-2014 |
Alan Viverette <alanv@google.com> |
Fix build, also always draw accessibility focus rect BUG: 13873026 Change-Id: Ie8c0b9d6ef10968f64fb33a89e010b9b15e93f8b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e02bfb6fbdaee62694c589758d6ac5f52addd90c |
|
01-May-2014 |
Michael Wright <michaelwr@google.com> |
Merge "Add unhandledInputEvent API to ViewRoot"
|
b36e4f944fe28ce68182f9ec91e5341866b49084 |
|
01-May-2014 |
Adam Powell <adamp@google.com> |
Add support for hiding action bars on scroll. Also tweak the nested scrolling API around nested flings and fix a bug where recursive nested scrolling would stop prematurely. Change-Id: I561226db878b2493970440a6af3e2332c56a1913
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
899d70568b565280dd33fa8892e25c5511f95769 |
|
24-Apr-2014 |
Michael Wright <michaelwr@google.com> |
Add unhandledInputEvent API to ViewRoot Update WebViewClient to use it instead, and add a new public API, onUnhandledInputEvent. Note that WebViewClients won't receive this call back until WebView is updated to use it. Bug: 14279909 Change-Id: Ied49791b469849f5c4cf4471f2b26c56b03f4961
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
19db0f036aa889ff05220b630262461e333faa85 |
|
29-Apr-2014 |
Jae Seo <jaeseo@google.com> |
Merge "Dispatch input events to the TV input"
|
6a6059a29edf31e65541b3d8927a46f5846fb0a2 |
|
18-Apr-2014 |
Jae Seo <jaeseo@google.com> |
Dispatch input events to the TV input TvInputManagerService now creates an InputChannel pair and passes one end to the app and the other end to the service. Then the TvInputManager in the app creates an InputEventSender around one end of the channel to send events and the service creates an InputEventReceiver around the other end of the channel to receive events. Most of the newly added code here was borrowed heavily from the IME. Change-Id: I0bd83847cba0033ccb6f4b6dad267ebeaf5e9c7c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ae738a7a45d710115f8aedacf218d4bfa0b25698 |
|
28-Apr-2014 |
Bo Liu <boliu@google.com> |
Add invokeFunctor call to ViewRootImpl BUG: 13961296 Change-Id: Ief8eea0b4c79a64ea76d75daaec176f1b8438581
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
10ba27734ee6274a772be8d6b1faa703ee3a3d6b |
|
15-Apr-2014 |
Adam Powell <adamp@google.com> |
Nested scrolling! or, "Excuse me, Egon, you said crossing the streams was bad." Add API for driving a nested scroll from the most deeply nested applicable scrolling view. The deepest scrolling view dispatches high-level scrolling events up to cooperative parent views. Augment ScrollView to support nested scrolling. Next up, more public framework scrolling views. Change-Id: I53b5e207fcdece796e08c8592ddb4496b96f600e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
05e858400adee0f579b1e27e321b48bd55843fbd |
|
23-Apr-2014 |
John Reck <jreck@google.com> |
Add missing try/finallys Change-Id: I32be65f5a46768449f26b69f72f502acd1e72769
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3da2834f0ee77268e0076ad1e24f319635c38b89 |
|
23-Apr-2014 |
Michael Wright <michaelwr@google.com> |
Add ViewRootImpl#unhandledInputEvent API stub. Doesn't actually work yet for non-KeyEvents. Change-Id: I3482ff780a9a7aef8ae27436f91a3619490b369f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
49d8fa473970265a182549cc1673719e5101320e |
|
21-Apr-2014 |
Adam Lesinski <adamlesinski@google.com> |
am a281be67: am 370cda70: Merge "Allow InputEvents to propagate w/o IME" into klp-modular-dev * commit 'a281be67030a834d455a84ce62c173140564211a': Allow InputEvents to propagate w/o IME
|
a281be67030a834d455a84ce62c173140564211a |
|
21-Apr-2014 |
Adam Lesinski <adamlesinski@google.com> |
am 370cda70: Merge "Allow InputEvents to propagate w/o IME" into klp-modular-dev * commit '370cda7074a02139fa5374bbdd94c37be376ca7a': Allow InputEvents to propagate w/o IME
|
c0f6eed40fd2fc0922de34d691d31f0e320ca9b7 |
|
29-Oct-2013 |
Adam Lesinski <adamlesinski@google.com> |
Allow InputEvents to propagate w/o IME If no IME was present, InputEvents such as KeyEvents would simple be dropped instead of going through to the Activity's View hierarchy. Change-Id: I9de25bdbf5d1564b77b25679e19dae18591a8c1c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f4399e7243c35bef3eabfd20582246818a0bbbd3 |
|
18-Apr-2014 |
Michael Kolb <kolby@google.com> |
resolved conflict for merge from d42eeab2 to master Change-Id: I41bd238f0628110c923b79259de4cd11a783340c
|
d42eeab20fea37fbf92b5c1a4f6f194ab9303083 |
|
18-Apr-2014 |
Michael Kolb <kolby@google.com> |
am 4abbd0a6: Merge "Populate isRound from config.xml to WindowInsets" into klp-modular-dev * commit '4abbd0a685cb418eb3cfc1f030d3091ef394a7e3': Populate isRound from config.xml to WindowInsets
|
6642e51ac5d0351f02fc929817603d7371e08e10 |
|
17-Apr-2014 |
Michael Kolb <kolby@google.com> |
Populate isRound from config.xml to WindowInsets Change-Id: I41b3aef1322a7cdccdcbc679eb753e0a1e561fad
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3d678ad462ee237d86efd9d985eb518817761e05 |
|
17-Apr-2014 |
Adam Powell <adamp@google.com> |
am 973ddaac: DO NOT MERGE Add isRound to WindowInsets * commit '973ddaacaef255b8659d35cfe4151dd5b7436138': DO NOT MERGE Add isRound to WindowInsets
|
2accbf904f0dfa42f1a776d2e1ea7b01898929c0 |
|
17-Apr-2014 |
Adam Powell <adamp@google.com> |
Revert the revert of adding isRound to WindowInsets after early merge This reverts commit 01ebfbd0a0a3a89b563ab6c8c346c669eca39a1a. Change-Id: I3d5a3523a1505cc3bfd0172c7282a8eda21ae206
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
01ebfbd0a0a3a89b563ab6c8c346c669eca39a1a |
|
17-Apr-2014 |
Michael Kolb <kolby@google.com> |
Revert "Add isRound to WindowInsets" This reverts commit e5244b5638535964103ca1dfc867442a64243db1. Change-Id: I6371c718e2189968699e980fd0e7ba91c486aca6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
973ddaacaef255b8659d35cfe4151dd5b7436138 |
|
16-Apr-2014 |
Adam Powell <adamp@google.com> |
DO NOT MERGE Add isRound to WindowInsets isRound allows a view to determine whether the window it is contained within obscures the corners of the window content. This allows views aware of this property to adapt their layout accordingly. Switch ViewRootImpl to use dispatchApplyInsets instead of fitSystemWindows. Change-Id: Ic3e3936b73815b2593cb9720af1a309fbd18406e Conflicts: core/java/android/view/ViewRootImpl.java
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e5244b5638535964103ca1dfc867442a64243db1 |
|
16-Apr-2014 |
Adam Powell <adamp@google.com> |
Add isRound to WindowInsets isRound allows a view to determine whether the window it is contained within obscures the corners of the window content. This allows views aware of this property to adapt their layout accordingly. Switch ViewRootImpl to use dispatchApplyInsets instead of fitSystemWindows. Change-Id: Ic3e3936b73815b2593cb9720af1a309fbd18406e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
15b0bef9250e084bfbceb388716d28ed62ca018f |
|
12-Apr-2014 |
Jeff Brown <jeffbrown@google.com> |
am 9e2fde9c: am d912e1f6: Use the display\'s actual state in the view hierarchy. * commit '9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07': Use the display's actual state in the view hierarchy.
|
9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07 |
|
12-Apr-2014 |
Jeff Brown <jeffbrown@google.com> |
am d912e1f6: Use the display\'s actual state in the view hierarchy. * commit 'd912e1f6a111fb33118d116bd72da1a328041bca': Use the display's actual state in the view hierarchy.
|
d912e1f6a111fb33118d116bd72da1a328041bca |
|
12-Apr-2014 |
Jeff Brown <jeffbrown@google.com> |
Use the display's actual state in the view hierarchy. Previously, the view hierarchy would suppress drawing whenever the PowerManager.isScreenOn() method returned false. However, this method really describes the interactive state of the device rather than the actual display state. This is especially a problem when there are multiple displays but it also breaks drawing while in doze mode. This change makes the view hierarchy consider the actual state of the display instead on an individual basis. Bug: 13133142 Change-Id: I69870b6b14a3504607a30562aa48c3452f777c1f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bc0cc0220b830df54c8ed41d0b53daffd7f6c991 |
|
12-Apr-2014 |
John Reck <jreck@google.com> |
Support onHardwarePostDraw in ThreadedRenderer Bug: 13958485 Change-Id: Ie9c7af7cee582850a7f0a3d891aa3685c230cfc7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8e1f918738abf70a4dc86dbb12b386a9deea37f8 |
|
10-Apr-2014 |
John Reck <jreck@google.com> |
Merge "Switch DisplayListData to a staging model"
|
8de65a8e05285df52a1e6f0c1d5616dd233298a7 |
|
10-Apr-2014 |
John Reck <jreck@google.com> |
Switch DisplayListData to a staging model Bug: 13912977 Change-Id: I5b2f664e797be22a58300964f57ceb4fab60528c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f7d9c1dc84671d4e99657ef071d275700d85bb11 |
|
09-Apr-2014 |
John Reck <jreck@google.com> |
Fix ThreadedRenderer.setEnabled() Bug: 13914116 Fixes lifecycle issues around setEnabled where ThreadedRenderer was reporting as being enabled before it had a Surface. This is incorrect. Also fix some EGL lifecycle issues Change-Id: I12ebb279707f9b533a570b61d68735d858b560bf
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
28ad7b52e038ef0cdd89f753d9839444a434b299 |
|
08-Apr-2014 |
John Reck <jreck@google.com> |
Fence on draws that are reported Change-Id: Ib2ec16cbda40f40df1710bdc868869ea8301f17e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
55da62288dcec75c34721a59d71f917dcb8a62b4 |
|
03-Apr-2014 |
Ben Murdoch <benm@android.com> |
am 14424043: am 369a0057: Merge "Update ViewRootImpl for 64bit functor type." * commit '14424043b9c20edf639004e05fe8e9264a2e66f5': Update ViewRootImpl for 64bit functor type.
|
a8b937115ac3bf047c8fc6c750f052fd633c5dd8 |
|
02-Apr-2014 |
John Reck <jreck@google.com> |
Merge "Revert "Force-enable hardware acceleration for apps""
|
dd58e797aa453f468232c6a5949a37e4691f309e |
|
02-Apr-2014 |
John Reck <jreck@google.com> |
Revert "Force-enable hardware acceleration for apps" This reverts commit 2a0901107443685ef2f2a55d0b62ddcc6cf183ba. Change-Id: I47c58b7251411432bd6a3eeb6fe567385b1c084f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cf61c9b71faa053f407430fde043b4672c501340 |
|
02-Apr-2014 |
Ben Murdoch <benm@google.com> |
Update ViewRootImpl for 64bit functor type. Change-Id: Ie9020f0276c58ebf0977e4aef725fbc26aaf67b2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
64a12e177de64ae5d907e3020ea3f37cc96ee325 |
|
29-Mar-2014 |
Chris Craik <ccraik@google.com> |
Update several stale RenderNode variable names Change-Id: I61c8c66f5a79e3a89ae0d3cffbfd351c05bd6a2b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2a0901107443685ef2f2a55d0b62ddcc6cf183ba |
|
27-Mar-2014 |
John Reck <jreck@google.com> |
Force-enable hardware acceleration for apps Change-Id: Ie45581fac2b6b71aeb7b652485915e2518372efc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1b10869f39978a864cfcc4efc73aefc312d8ed79 |
|
19-Mar-2014 |
Michael Wright <michaelwr@google.com> |
Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE Also change MotionEvent.PointerCoords bit packing and unpacking methods to be consistent with BitSets which are now used on the native PointerCoords object. Bug: 11480300 Change-Id: Ib18c99b94ac555104c69eac526860aa501e89e03
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9adca065148f704187866c53cceda8e0050b1f35 |
|
19-Mar-2014 |
Michael Wright <michaelwr@google.com> |
Respect ACTION_CANCEL for joystick fallbacks Also change MotionEvent.PointerCoords bit packing and unpacking methods to be consistent with BitSets which are now used on the native PointerCoords object. Bug: 11480300 Change-Id: Ic6c7ebda5c545d07ea1ed259ca1f1184ccf85f29
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
845535a76d5348847a827d981ef361d0b18e68ad |
|
21-Mar-2014 |
Bo Liu <boliu@google.com> |
Convert a attach/detach functor in ViewRootImpl to x64 Change-Id: I93c1df8abd0ecd1686e392cada099f9864926d33
/frameworks/base/core/java/android/view/ViewRootImpl.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/ViewRootImpl.java
|
f666ad7046c0b1b255835f75aeb7d1391067df93 |
|
15-Mar-2014 |
John Reck <jreck@google.com> |
Rename DisplayList->RenderNode Change-Id: Idcca6f26ba6282594789962f5edb3ed53a290fef
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ecc7ca53852a395157ac1b45ee6aa4fe13ade3d1 |
|
06-Mar-2014 |
Michael Wright <michaelwr@google.com> |
resolved conflicts for merge of fa2e53cc to master Change-Id: Idc54765c28ab7c6c810095aba1ba21d7695e08d5
|
44fd8d24f761f82d21e9b00932648a1b6bf91449 |
|
26-Feb-2014 |
John Reck <jreck@google.com> |
DisplayList overhaul Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f9a901e1018408ddf9e21105695b2bd5814db1fb |
|
28-Feb-2014 |
John Reck <jreck@google.com> |
Avoid running functors after detach Bug: 10861732 Change-Id: Ida55fff716c37c6ab1c98eef02582282de0034f6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bdffc3ad05180d716cc4b808b292e2262f0cd461 |
|
27-Feb-2014 |
Michael Wright <michaelwr@google.com> |
Revert Japanese special case fallback keys. Reverts commits 4567e40eb04589d211af82f2dcb16cb3955c605e and a977707d6e7006d11cfde045f187e777b31b9e04, which added special case fallbacks for game controllers in the Japanese locale. Bug: 12923922 Change-Id: I229126e589e11fb5de86772ef9c59d09723af941
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e56e9df5f12b2714d79415e2c5b3f30d58ca7c12 |
|
22-Feb-2014 |
John Reck <jreck@google.com> |
Add back resize buffer Bug: 12825810 Change-Id: Ic2329c30524010f54778101853b30f8f8d9eeb6c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
40c3ddd3a2462bc41e5fbf4932373ebd83961a6f |
|
20-Feb-2014 |
Michael Wright <michaelwr@google.com> |
Merge "Make deliverInputEvent tracing asynchronous"
|
d2c3adc9c95683d70d1ce798447a86131602b80b |
|
19-Feb-2014 |
Michael Wright <michaelwr@google.com> |
Make deliverInputEvent tracing asynchronous Change-Id: I640ed4003194d6d4b202680e5c8fffc81749d60f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
19b6bcfd83eb7fb92ebd06d2fec89e308311f1d0 |
|
15-Feb-2014 |
John Reck <jreck@google.com> |
Support HardwareLayers in RenderThread Also has a few HardwareLayer lifecycle fixes Change-Id: I6308cb05f8f199eed72189ace768013a46815941
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8a5dbac349ed5bced0d9509aa5bdcf707df40da2 |
|
13-Feb-2014 |
Michael Wright <michaelwr@google.com> |
Remove Japanese button swap Bug: 12923922 Change-Id: I4960d8189e751514a595823d7ed9b273e3ff8eb8
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
04fc583c3dd3144bc6b718fcac4b3e1afdfdb067 |
|
06-Feb-2014 |
John Reck <jreck@google.com> |
Refactor HardwareLayer Defer all the things! Groundwork to allow hardware layers to work in a renderthread world Change-Id: Ib3aa47525f393083621254a743dbaa6352f933bd
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8eea3ea5591e59f55cbb4f6b2b7e9363a285ced3 |
|
04-Feb-2014 |
Alan Viverette <alanv@google.com> |
Add APIs for obtaining themed Drawable from Theme, Context BUG: 12611005 Change-Id: Ic0057be4e4c2d0c61ce02a019b3f7d0625e3a016
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 |
|
04-Jan-2014 |
John Reck <jreck@google.com> |
Native-side proxy Remove RemoteGLRenderer Remove reflection-based control Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
223622a50db319d634616311ff74267cf49679e7 |
|
17-Dec-2013 |
Alan Viverette <alanv@google.com> |
Add reveal drawable, APIs for forwarding Drawable focus and touch Hotspot APIs are hidden pending finalization of how we handle IDs. BUG: 11416827 Change-Id: Iecacb4b8e3690930d2d805ae65a50cf33482a218
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7d2edfc073b4a87f9584e12b0c6e80cffea730f5 |
|
11-Dec-2013 |
John Reck <jreck@google.com> |
Merge "Unbreak display list debug dumping"
|
630491973269da1b260e69d6a3f9490b97705037 |
|
11-Dec-2013 |
John Reck <jreck@google.com> |
Unbreak display list debug dumping Change-Id: I1c6a79f047b29fa60907f6e128cb843a45b88bff
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4a8e5a05bbb344c96bca12bb8d4a768cabbdbce5 |
|
10-Dec-2013 |
Michael Wright <michaelwr@google.com> |
Merge "Generate locale-aware gamepad fallbacks for webview"
|
cec24ae16e9a0a7c3075f1a8d9149bb7fb3813fc |
|
05-Nov-2013 |
John Reck <jreck@google.com> |
RenderThread work Hacky prototype needs a private API to enable Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
916b649d06ed34c16b2ee9047f086dff184c03ee |
|
04-Dec-2013 |
Michael Wright <michaelwr@google.com> |
Generate locale-aware gamepad fallbacks for webview Since WebView's input handling is asynchronous its KeyEvents get re-injected to ViewRootImpl via dispatchUnhandledKey. Make sure these events generate the new synthetic, locale-aware keys before using the kcm fallbacks. Bug: 11193726 Change-Id: I2605f15130ba4bb4ad23c7ad1f3e5edfbc4be99d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fed3f728b7fea15c73d4fda551bd0433dd4f85eb |
|
14-Nov-2013 |
Alan Viverette <alanv@google.com> |
Generalize mapping between local and global View coordinates Change-Id: Ib7f5d51debe2e9773d9ef2fa60a33379b229371a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3083579424785e55ca8f82856a6553ee983c3ffb |
|
07-Nov-2013 |
John Reck <jreck@google.com> |
More refactoring Merge GlRenderer and Gl20Renderer Move GLRenderer to its own file Move native methods from HardwareRenderer to GLRenderer Change-Id: Ib4680b03dd98101b2a428062cc94774ff73baa75
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
79d81e68aa61fe7b00cdcba433f9f58f255cb368 |
|
05-Nov-2013 |
John Reck <jreck@google.com> |
Remove dead code Change-Id: I242eacf68067ffe353802f07d6bfe5bb152fe9d0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
efdb985f2eabde8cf9dab3f51254865d59d305f7 |
|
01-Nov-2013 |
Michael Wright <michaelwr@google.com> |
am 9730fbc0: am cd250cc8: am 17d28ca3: Check view and focus invariants after calling into app * commit '9730fbc0ea71ee0c41c94cf2772cc9884455c4e1': Check view and focus invariants after calling into app
|
17d28ca3d76e943e30bdaafb98596cf35bb45087 |
|
01-Nov-2013 |
Michael Wright <michaelwr@google.com> |
Check view and focus invariants after calling into app When we dispatch input events into the actual application, make sure the input invariants we rely on haven't changed. If they have, we drop the event and log why. Bug: 11399505 Change-Id: Id772e41ca41dc332bb02725ab486e3b10a73c220
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0160bcbe531eebe882999f041348ce0182fc5bab |
|
29-Oct-2013 |
Michael Wright <michaelwr@google.com> |
am 0116f08b: am 961cc671: am 3f836741: Merge "Speculatively schedule input consumption" into klp-dev * commit '0116f08b387d237c334b10bb0266426e1ab3c793': Speculatively schedule input consumption
|
62ce65d6edbc2c34c63b0e2f2fef9cb08e28c783 |
|
25-Oct-2013 |
Michael Wright <michaelwr@google.com> |
Speculatively schedule input consumption With the new tuned vsync offset, vsyncs are likely to occur shortly after the input is received, meaning we will empty the input queue, and thus won't schedule input consumption until more input is received. If an application then speculatively posts draw commands to the main looper faster than 60 hz, it will eventually end up blocking in eglSwapBuffers. Since we're blocking in eglSwapBuffers, we won't even schedule consumption until after the current frame (8-16ms), and it's entirely likely we won't actually get around to consuming input until after the next frame (another 16 ms of latency). This means we can often go 16-32ms without processing any input events, causing very noticeable amounts of jank. Rather than waiting for the next input event to schedule input consumption, speculatively schedule it every frame as long as we've consumed some motion batch during this frame. Bug: 11398045 Change-Id: I25e46308e00e9f9de00a1d8906f6b0e0f2e845b4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b1eb620219de034b28a0130b07ca05140c4ff830 |
|
18-Oct-2013 |
Jeff Brown <jeffbrown@google.com> |
am 83bf4404: am 3e3296e5: am 82f31701: Merge "Log view root, input and looper state in bug reports." into klp-dev * commit '83bf440440309a394f792e3d8a6acb98197d9d7c': Log view root, input and looper state in bug reports.
|
5182c780a8b42acd46a06d693ab63a0dd78c6d70 |
|
16-Oct-2013 |
Jeff Brown <jeffbrown@google.com> |
Log view root, input and looper state in bug reports. Bug: 10948648 Change-Id: I956cce2a0fb516c02f9bbbc021f6238bcb226891
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b45bdac3407a25122e37175ba0b5d8e04dfa0b1d |
|
15-Oct-2013 |
John Spurlock <jspurlock@google.com> |
am 5a87a4e3: am 30408434: am f8033360: Merge "Give IMEs the entire screen to use for measuring purposes." into klp-dev * commit '5a87a4e3554872dced265ee32551656f0a9643ac': Give IMEs the entire screen to use for measuring purposes.
|
f8508272adb93b5377edfeb69e85442c3d9ed6d2 |
|
15-Oct-2013 |
John Spurlock <jspurlock@google.com> |
Give IMEs the entire screen to use for measuring purposes. IMEs recently gained the ability to layout out under the nav bar, but our core measuring logic does not give height=WRAP_CONTENT windows the entire screen height when computing desired window height. Since IMEs can be identified by type, let them use the entire screen height for measuring purposes, to properly handle the cases where space is constrained, making that unaccounted-for nav bar height important. Bug:11215678 Change-Id: I1d0b73454c0c629e7d669b9de70641c7e8c4d333
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9d343c26063b8981294d85e0a42819b628c022d7 |
|
14-Oct-2013 |
Dianne Hackborn <hackbod@google.com> |
am f2896e28: am 9e4403d4: am ef53fcc3: Merge "Fix issue #11199654: Action bar enter animation skips frames when cleared by the system" into klp-dev * commit 'f2896e2897cace31d82d917f73b787a9d87b21cb': Fix issue #11199654: Action bar enter animation skips frames when cleared by the system
|
021d243d6d113b114d5e71931e728f2aacb9ca14 |
|
14-Oct-2013 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #11199654: Action bar enter animation skips frames when cleared by the system We have become too aggressive about not allowing windows to draw while windw animations are running, basically not allowing any drawing in any window when there is any window animation. So if you did a relayout while the status bars were being animated, your window would stop drawing until that status bar animation was complete. This change relaxes those rules in two ways: - A particular window will only be told to stop updating when *it* is currently involved in a window animation. So animations in status bars will not stop app windows from update, and vice versa. - If a window receives input events while it is in the "do not update" state, we will immediately terminate that state and start allowing it to draw. If the user is actually interacting with a window, we don't want to wait to show feedback. Change-Id: I72574eec048aee53115b46a78686cf27f42c42f7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
13431ad822a6479c8512ea4a6ab799e2f5b46d97 |
|
07-Oct-2013 |
John Spurlock <jspurlock@google.com> |
am 4818db0f: am b88ede00: am d5102f19: Merge "Transparent system ui flags -> Translucent WM flags." into klp-dev * commit '4818db0fc5dec465a2cdb76c0faff4750a3a3fff': Transparent system ui flags -> Translucent WM flags.
|
bd95740648372449a4d5c164d7050eee352d4c24 |
|
03-Oct-2013 |
John Spurlock <jspurlock@google.com> |
Transparent system ui flags -> Translucent WM flags. Migrate View.SYSTEM_UI_FLAG_TRANSPARENT_(STATUS/NAVIGATION) to WindowManager.LayoutParams.FLAG_TRANSLUCENT_(STATUS|NAVIGATION). Add associated public attrs for both new window flags: windowTranslucentStatus windowTranslucentNavigation Introduce convenient four new themes that set translucent decor: Theme.Holo.NoActionBar.TranslucentDecor Theme.Holo.Light.NoActionBar.TranslucentDecor Theme.DeviceDefault.NoActionBar.TranslucentDecor Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor Update PhoneWindowManager mechanism to plumb these values back to SystemUI to drive bar mode state. The new translucent flags come from the top fullscreen window, not the focused window, so translucency does not change when opening dialogs. Imply some window-level system-ui visibility if one or both of these new flags are present, specifically: FLAG_TRANSLUCENT_STATUS implies LAYOUT_STABLE, LAYOUT_FULLSCREEN FLAG_TRANSLUCENT_NAVIGATION implies LAYOUT STABLE, LAYOUT_HIDE_NAV Rename all associated variable & resource names to use the term translucent instead of transparent. (Retain the term semi-transparent for the transient bar style). Recents activity allowed to inherit translucent decor state via the new PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR. Compensating changes to use the full screen area more appropriately. Update keyguard to use new WM flags. Update docs and various api artifacts. Sanity-check fixes: - Toasts and alerts given stable layout. - Suppress nu-gradient when in transient (hidey) mode. - New translucent flags use top-fullscreen window, dialogs don't clear. Bug:10674960 Bug:11062108 Bug:10987178 Bug:10786445 Bug:10781433 Change-Id: If667a55bea4cf5e008549524b9899197fab55ebe
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
38dc2ad85e4572d6e56f0a98edd97945312f708c |
|
04-Oct-2013 |
Adam Lesinski <adamlesinski@google.com> |
am b2db2fbc: am 6d90862f: am d65825ab: Merge "Private flags are masked in correct variable" into klp-dev * commit 'b2db2fbce33dbcfa52ccb20267ad4897c558c34f': Private flags are masked in correct variable
|
95c42974f719d1fac90fc0438eac778e9795681f |
|
02-Oct-2013 |
Adam Lesinski <adamlesinski@google.com> |
Private flags are masked in correct variable Newly added private flags were being masked in the public flag variable as opposed to the correct privateFlags variable. bug:11033280 bug:11043194 Change-Id: Idda3a70a083457f3f1b7d4b46d231f4a7e704cf0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
49e43291b2120884320441e9519f5f3c74d40cb2 |
|
02-Oct-2013 |
Adam Lesinski <adamlesinski@google.com> |
am 234c6c8a: am ff7cba54: am 42e9b631: Merge "Make room for new public flags" into klp-dev * commit '234c6c8aafa4abc440d5bf38aac058b96ba1434c': Make room for new public flags
|
d09d5f9e4cb9cd03c47eab0f1e9256dc1e2a7527 |
|
02-Oct-2013 |
Jeff Brown <jeffbrown@google.com> |
am 10478213: am 5e65adaf: Merge "Reset insets when inset computer is removed." into klp-dev * commit '10478213759a486524000c4164e4176437afa2d7': Reset insets when inset computer is removed.
|
6a591f585909415a1da431a2cc76b7732724037d |
|
02-Oct-2013 |
Adam Lesinski <adamlesinski@google.com> |
Make room for new public flags Moved two hidden flags to private bug:11033280 Change-Id: Icca867b073aff643eefdaf84df68de86bb6b05ac
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2e05ec3235150a93a3459cd260be45f02dadbe84 |
|
01-Oct-2013 |
Jeff Brown <jeffbrown@google.com> |
Reset insets when inset computer is removed. When an inset computer is registered with the view tree observer, we report content insets to the window manager. When an inset computer is subsequently unregistered, we must take care to clear these insets. This patch remembers whether the previously computed insets were non-empty so that it can force insets to be reset when needed. Bug: 10840662 Change-Id: I4cce5ba64cc5234b98363b025ac4bb42e64349f1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
04fa5918453695e674c2c7ca094a992616409424 |
|
30-Sep-2013 |
Michael Wright <michaelwr@google.com> |
am edb444b4: Merge "Add missing constructor parameter to KeyEvent" into klp-dev * commit 'edb444b44419def54292cf8325c22697213153fa': Add missing constructor parameter to KeyEvent
|
a977707d6e7006d11cfde045f187e777b31b9e04 |
|
27-Sep-2013 |
Michael Wright <michaelwr@google.com> |
Add missing constructor parameter to KeyEvent When in the SyntheticKeyHandler, a missing constructor paramater caused the wrong contstructor to be called. This would cause the device id, scan code and flags to be incorrect. Bug: 10966229 Change-Id: Ib84ef88d28c0da517b376c5493a851cf8fe0a9f7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8232eb9c19c9d74e9ec605ad0bf436a76a748f33 |
|
27-Sep-2013 |
Alan Viverette <alanv@google.com> |
Preserve but don't draw accessibility focus for unfocused windows BUG: 6472572 Change-Id: Id3d7d76cc59a3d8141d043d6797f176345fd0cbb
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
77e9a28e2faa36f127231b842476d47f9823a83a |
|
13-Sep-2013 |
Alan Viverette <alanv@google.com> |
Add live region politeness to View, AccessibilityNodeInfo Alters the content change API to contain a bit mask of types of changes represented by the event. Live regions send CONTENT_CHANGED events immediately. Removes unused APIs for EXPANDABLE/EXPANDED. BUG: 10527284 Change-Id: I21523e85e47df23706976dc0a8bf615f83072c04
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a86ab640f7bb0bf3cb4eaed80473ca8c5d131903 |
|
30-Aug-2013 |
Igor Murashkin <iam@google.com> |
Surface: Change OutOfResourcesException to be a runtime exception - Deprecates SurfaceTexture.OutOfResourcesException, it wasn't used - Make all JNI code throw only Surface.OutOfResourcesException - Get rid of redundant SurfaceControl.OutOfResourcesException Bug: 10566539 Change-Id: I58126260771b9ccff6a69c672ce7719b9f98138d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
edaf6af16a5c33557a9c4ed00f9bebdac0dd83aa |
|
07-Sep-2013 |
Michael Wright <michaelwr@google.com> |
Merge "Remove tap to click from touch nav devices" into klp-dev
|
7b4f60deb2819496733c0c85c57c6236900fe0c2 |
|
07-Sep-2013 |
Michael Wright <michaelwr@google.com> |
Merge "Special case game controller fallback keys for Japan" into klp-dev
|
f66645671f9c3d8e621296e11fd65941c22f057f |
|
04-Sep-2013 |
Romain Guy <romainguy@google.com> |
Don't draw with invalid display lists Bug #10301674 Change-Id: I900322dcb9b53f0eb82741c94d4ab1eaf939259e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
88d7f7992553dde4d140325b306ac9d8f43b9387 |
|
28-Aug-2013 |
Michael Wright <michaelwr@google.com> |
Remove tap to click from touch nav devices Bug: 10508608 Change-Id: I842a181e847af41b8401dd9dd7aed3f6af556a39
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4567e40eb04589d211af82f2dcb16cb3955c605e |
|
17-Aug-2013 |
Michael Wright <michaelwr@google.com> |
Special case game controller fallback keys for Japan Bug: 10306633 Change-Id: I647fc5286678ddd85599a00e68e2fd70c2c3db49
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
007751276c210c39bd405ae9fa69854e67e80951 |
|
20-Aug-2013 |
Craig Mautner <cmautner@google.com> |
Merge "Notify ViewRootImpl when it's safe to modify Canvas." into klp-dev
|
bc57cd1b248bf23e443581f9fe44167c94699ce8 |
|
20-Aug-2013 |
Craig Mautner <cmautner@google.com> |
Notify ViewRootImpl when it's safe to modify Canvas. When Activity.convert{To|From}Translucent() is called the ViewRootImpl is now notified when it is safe to convert the Canvas from translucent to opaque and back to translucent. This will make it possible to save resources when compositing opaque layers. Fixes bug 10349536. Change-Id: I7282aee1d54601fb00611d20be204bf164d873f6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
46bfc4811094e5b1e3196246e457d4c6b58332ec |
|
17-Aug-2013 |
Romain Guy <romainguy@google.com> |
Fix hardware layers lifecycle Bug #10075732 Hardware layers could survive across EGL terminate events. Change-Id: Ie8565d55cb29fe6625fa1584d695edfecd37ab5e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
973f3b4ebf79c8ce9233e2320d13c2b92d420f93 |
|
14-Aug-2013 |
Alan Viverette <alanv@google.com> |
Prevent refocus after entering touch mode BUG: 10210009 Change-Id: I9a5d7016728cc7d1fb1c759708b6df41c81865bb
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
30f420fd6a74ffa28b351b4aba74d44f5ea48dda |
|
02-Aug-2013 |
keunyoung <keunyoung@google.com> |
add local focus mode and input event injection API to Window - This enables keyboard navigation for window without focus. - FLAG_LOCAL_FOCUS_MODE puts window into local focus mode. - Application needs to put window in local focus mode, control focus, and inject events to make dpad navigation work. - Window in local focus mode does not interact with window manager or ime regarding focus related events. - Also renamed ViewRootImpl.dispatchKey to dispatchInputEvent to allow both key and touch events injection. Change-Id: I8e8561f29e0dade3797fb7ae3ee7690e6b7f8895
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ed7821a60ca80197384b2a4678b6c4ea307457e6 |
|
25-Jul-2013 |
Alan Viverette <alanv@google.com> |
Use clearFocus() when entering touch mode Calling unFocus() leaves the view hierarchy in an inconsistent state. This is okay in ViewGroup, where the state is manually updated, but causes issues in ViewRootImpl. BUG: 9983358 Change-Id: Id63e62962d895e6bd4f816f202dcf77254ceab4e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
25b0c3096131e532e57f5aac48769430dca42c75 |
|
10-Jul-2013 |
Michael Wright <michaelwr@google.com> |
Debounce touch navigation taps and button presses Bug: 8990644 Change-Id: Ib4ef2e2ab699a109c12614c1d64e4b7e63b514b0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8d820ecffdc853aab88cc85bb45bfe72dd2ad893 |
|
16-Jul-2013 |
Svetoslav <svetoslavganov@google.com> |
Fixing bugs discovered by the CTS tests. 1. Delayed accessibility events sent when a view subtree changes may be be delivered after accessibility is disabled leading to a crash. It is possible that accessibility was disabled while we were waiting for the timeout before sending the event. Added a check before dispatching. 2. When refreshing a cached node the accessibility node info cache was not using the correct bypass cache argument value and as result was not getting the latest node but its cached value. We really want to get the latest state to update the cache. 3. The debugging cache integrity verification logic was incorrectly removing nodes from the cache while doing its work. 4. Removed the comments for some debug logging. bug:9857067 Change-Id: I20ee1a6ffa65ad35457b51d3f2dc0bc5d8d784e6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4f09d517c5e61d4dfd34b89a7949897c86853881 |
|
01-Jul-2013 |
Craig Mautner <cmautner@google.com> |
Remove debug logging. Bug has been fixed. Change-Id: Ifda11ac6e83012498855e0c7254c99491b128f04
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f1f5054f7aed6c06657955e43a680ed54c463986 |
|
28-Jun-2013 |
Craig Mautner <cmautner@google.com> |
More debug for 9404689. Changing focus to PhoneWindow. Change-Id: I75c2ce6b1a20729daf8d2b7f83b2a871e1a7e642
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e7c58b6d7d761b93e785b0a399e5b00fdb82f4ce |
|
13-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Add debug for specific bug. To be removed once the bug is fixed. Change-Id: Ie273d4503bb0b534af0e9efe8f45c573766e9a74
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
07f36c738e65b8cc2484107b4f8e3386d45d065d |
|
24-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Merge "Add activity token to display system."
|
48d0d1886731ff19ed3fb47a5997be5df0d1bba8 |
|
11-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Add activity token to display system. First step in adding activity specific information to displays. Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that holds an activity token in addition to the CompatibilityInfo. Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
27e0bf627883e7042384d34cf37fbedf276ff553 |
|
21-Jun-2013 |
Romain Guy <romainguy@google.com> |
Safely dispose of the resize buffer We just ensure there is a valid EGL context before we destroy the associated layer.
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9dafebb8172d767d640c526d717eaef6a52167f3 |
|
19-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Correctly update the source of recurring subtree change accessibility events. Change-Id: I0b0fd9224a5208b274e5c889a27417ef13579849
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e89f48bfb1ed3a2e9241052b665a41fd2a8898cb |
|
18-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Crash in ViewRootImpl when accessibility is on. We fire view subtree mutation events every X amount of time. It was possible that the runnable that fires an event to be scheduled more than once while this should not happen. As a result there was a crash since we did not expect to have a second run and nullified a reference. bug:9422804 Change-Id: I914e163b026cd217e1536ab0ed3a6b11113c2c73
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8f303ad97007a9b38d6d927353c1fba812879ae5 |
|
14-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Complete doDie() before executing addView(). If WindowManager.addView() is called soon after WindowManager.removeView() then the MSG_DIE in the ViewRootImpl mHandler queue may not have had time to execute. This will cause WindowManagerGlobal to throw an exception since the DecorView is being added before it has been removed. This fix detects that situation by saving all Views that are queued up for ViewRootImpl.doDie(). If addView() is called for one of these Views then doDie() is called immediately and not called when MSG_DIE eventually makes its way through the queue. This change also makes doDie() non-reentrant by only allowing it to carry out its functions the first time it is called. This keeps dispatchDetachedWindows() from causing destruction by recursively calling back into doDie(). This is usually caused by calling dismissDialog() from within dispatchDetachedWindow(). Fixes bug 9404689. Fixes bug 9406261. Change-Id: Id4fc8054e273215d82366428fef51b9ba98385fe
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4969fecf074c3e38dc560aaa283868ea728be946 |
|
14-Jun-2013 |
Romain Guy <romainguy@google.com> |
Merge "Fix possible NPE when a ViewRoot doesn't have a view"
|
70d4c5a0fe7f3411254df99b8e84b8e633d1fd05 |
|
14-Jun-2013 |
Romain Guy <romainguy@google.com> |
Fix possible NPE when a ViewRoot doesn't have a view Change-Id: I8f76a657fa44fc5c7e0bec3e609eaf49e269910f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f76c17f0cb97bfe0b8751012ba70027b6edc07fd |
|
13-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Merge "Add debug for specific bug."
|
9e105e0a9a2fa5ca38073ed4fba0ec7fae2d5c39 |
|
13-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Add debug for specific bug. To be removed once the bug is fixed. Change-Id: I83bd5b9fd722826c59b1178303fc4e7feb8eefd2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
405436021da156fbe3c5d4de48bdefa564cf7fc0 |
|
13-Jun-2013 |
Romain Guy <romainguy@google.com> |
Restore buildLayer()'s old behavior; it's synchronous again Bug #9193833 Change-Id: I4ee07e65c0a8967f0b55da030ecaad6dfc46136f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6b1d5a4ff220378407e19b7733e727be88b41376 |
|
10-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Merge "Notification for changed subtree in accessibility mode not fired properly."
|
00dbe81fea7be57ee2ff8a97844faf1bc15a427f |
|
10-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Notification for changed subtree in accessibility mode not fired properly. We fire notifications that the a view subtree changed for accessibility. In some cases the notifications were fired if accessibility is not enabled. This is now fixed. Also the runnable for making the recurring subtree change was not dequeued if it was pending but we received a request which we decided to run immediately. bug:9337912 Change-Id: I27401b3d11f81c653e8761a704ee530263b08c3a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f38fd8784487c72983b061fb41b2aef656ccf265 |
|
10-Jun-2013 |
Romain Guy <romainguy@google.com> |
am 7a6e1297: am 8d8fc469: Merge "Don\'t orphan footers with transient state Bug #8725945" into jb-mr2-dev * commit '7a6e129759672f0c1b0ce462d389c0f469e7348f': Don't orphan footers with transient state Bug #8725945
|
b7e0f7942b97c1f88f4aa2338cbf3623fdfdad97 |
|
08-Jun-2013 |
Romain Guy <romainguy@google.com> |
Don't orphan footers with transient state Bug #8725945 Selecting text in an EditText causes the View to have transient state. This would in turn cause the View to be removed from its ListView parent. When removed, the EditText would lose its AttachInfo, causing all sorts of problems. Headers and footers must not be removed, only detached. This is the part of the fix in AbsListView. Fixing AbsListView triggered a second bug: when a View is removed from the Window manager, it would keep its parent assigned, thus making it impossible to add it again to the window manager. When a ViewRootImpl goes through doDie(), it must set its content view's parent to null to properly cleanup. Change-Id: I0489daa74f8f7fcf85526f0928f8925ec30d4f42
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
494cb689d09a82025b9d892241e62aa149ce3239 |
|
07-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Merge "Optimizing AccessibilityNodeInfo caching."
|
05eb730ca42eec3a40f916062af7442218135303 |
|
04-Jun-2013 |
Craig Mautner <cmautner@google.com> |
Delay removal of windows from WindowManager When relaunching activities the window manager clears out all windows by calling a ViewRootImpl.die() in a deferred fashion. Then it immediately deletes the ViewRootImpl and its view from its list of windows. When the die() is eventually executed it calls dispatchDetachedFromWindow() which tries to remove the previously removed windows causing an Exception to be thrown. This change waits to remove the windows until after die() has been completed. Fixes bug 8253030. Change-Id: I5b41be1c6b776e32128c064267653db98bd95292
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6254f4806dd3db53b7380e77fbb183065685573e |
|
05-Jun-2013 |
Svetoslav <svetoslavganov@google.com> |
Optimizing AccessibilityNodeInfo caching. 1. Before we were firing an accessibility event from the common predecessor of views with accessibility related state changes every X amount of time. These events designate that the tree rooted at the source is invalid and should not be cached. However, some of the state changes do not affect the view tree structure and we can just refresh the node instead of evicting and recaching nodes infos for views that did not change. Hence, we need a way to distinguish between a subtree changed over a node changed. Adding a new event type will not work since if say two siblings have local changes and their predecessor fires a window state change event, the client will drop the subtree rooted at the parent including the two views with changes. Subsequent, more specialized events emitted from the two changed siblings will be useless since the parent which did not changed is already evicted from the cache. Conversely, if the specialized events are fired from the two siblings with local changes and they are refreshed in the cache the subsequent window state change event from the common predecessor will force the refreshed nodes to be evicted. Hence, to enable distinction between node being changed and a subtree baing changed while not changing existing behavior, we will fire only window content change event with an additional argument specifying what changed - node or a subtree for now. Also if the changes are local to a view we fire the window content changed event from the view. So, the two siblings will fire such an event independently and the client will know that these are local changes and can just refresh the node. If the changes are structural, then we fire the window state change event from the common predecessor. 2. Added the input type of a text view as one of the properties reported by an AccessibilityNodeInfo. It is nice to prompt the user what input is expected. 3. Added a bundle for optional information to AccessiiblityNodeInfo. For example, it will be used for putting web specific properties that do not map cleanly to Android specific ones in WebView. 4. AccessibilityInteractionController was not taking into account whether the current accessibility focused node is shown before returing it. Hence, a disconnected node would be returned and caching it puts our cahche in an inconsistent state. Change-Id: I8ed19cfb4a70bdd7597c3f105487f1651cffd9e0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
608094041177193dcce7a91e8dc96a2556d29bfd |
|
23-May-2013 |
Romain Guy <romainguy@google.com> |
Merge "Add PerfHUD ES profiling capabilities"
|
e9bc11f7121dbe373b0cbe5779ee6a12d824492c |
|
23-May-2013 |
Romain Guy <romainguy@google.com> |
Add PerfHUD ES profiling capabilities The eglGetSystemTimeNV extension can be used to enable profiling in PerfHUD ES. When the delta of two calls to eglGetSystemTimeNV equals 0, we now cancels display lists updates. This allows the tool to redraw the same frame several times in a row to run its analysis. For better results profiling should only be attempted after setting viewroot.profile_rendering to true using adb shell setprop. Change-Id: I02e3c237418004cff8d6cb0b9a37126efae44c90
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0c63d7c239b9288065a11543a0f2cdeb8a0c293f |
|
22-May-2013 |
Romain Guy <romainguy@google.com> |
am 469cc57c: am 2f35d244: Merge "Avoid extraneous EGL surface allocations Bug #8667873" into jb-mr2-dev * commit '469cc57ca77687420246dd679e94eb242fcec41d': Avoid extraneous EGL surface allocations Bug #8667873
|
370ab062a0a18723531258896b352d5f5dd55ae7 |
|
21-May-2013 |
Romain Guy <romainguy@google.com> |
Avoid extraneous EGL surface allocations Bug #8667873 windowShouldResize means we need to layout the window, it doesn't mean the dimensions of the surface have changed. We should only check the width and the height. With this fix we can avoid a surface allocation every time the window shade is opened or closed. Change-Id: I8afe97b820a865723f2aab7a5aa4ddc8eaaec6e1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
82f92ee5bddbb03f4efe348288150d133ab52e87 |
|
09-May-2013 |
Michael Jurka <mikejurka@google.com> |
am 7741b63c: am 6dee0a0f: Merge "Fix bug where thumbnails flashed more often in Recents" into jb-mr2-dev * commit '7741b63c5a8e14b5123c4b735dc768cf55fa2ed5': Fix bug where thumbnails flashed more often in Recents
|
5e6fbf269425ea182b8a46e6a33848e1645197f6 |
|
09-May-2013 |
Alan Viverette <alanv@google.com> |
am fa4c935e: am 239a0c0e: Ensure ViewRootImpl.setAccessibilityFocus() doesn\'t crash when reentrant. * commit 'fa4c935edcfa09bb53a3aac411a285842a00ddee': Ensure ViewRootImpl.setAccessibilityFocus() doesn't crash when reentrant.
|
f42d9010f1c7b47ca9d5e395c767eecf4d284daa |
|
08-May-2013 |
Michael Jurka <mikejurka@google.com> |
Fix bug where thumbnails flashed more often in Recents Bug: 8867698 Change-Id: I2773601d83507dbb55c3a1d0b723e3853e22d352
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
239a0c0e6a6fc36025fdb1c662e1c7acaec144bb |
|
08-May-2013 |
Alan Viverette <alanv@google.com> |
Ensure ViewRootImpl.setAccessibilityFocus() doesn't crash when reentrant. Internal state must be cleared before calling any methods on the focus host, since the method may be called again from the host and attempt to recycle the same AccessibilityNodeInfo twice. BUG: 8856860 Change-Id: I0410989fd6f3ce3ce29de8edebdfbf3847188843
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 |
|
18-Apr-2013 |
Romain Guy <romainguy@google.com> |
Pack preloaded framework assets in a texture atlas When the Android runtime starts, the system preloads a series of assets in the Zygote process. These assets are shared across all processes. Unfortunately, each one of these assets is later uploaded in its own OpenGL texture, once per process. This wastes memory and generates unnecessary OpenGL state changes. This CL introduces an asset server that provides an atlas to all processes. Note: bitmaps used by skia shaders are *not* sampled from the atlas. It's an uncommon use case and would require extra texture transforms in the GL shaders. WHAT IS THE ASSETS ATLAS The "assets atlas" is a single, shareable graphic buffer that contains all the system's preloaded bitmap drawables (this includes 9-patches.) The atlas is made of two distinct objects: the graphic buffer that contains the actual pixels and the map which indicates where each preloaded bitmap can be found in the atlas (essentially a pair of x and y coordinates.) HOW IS THE ASSETS ATLAS GENERATED Because we need to support a wide variety of devices and because it is easy to change the list of preloaded drawables, the atlas is generated at runtime, during the startup phase of the system process. There are several steps that lead to the atlas generation: 1. If the device is booting for the first time, or if the device was updated, we need to find the best atlas configuration. To do so, the atlas service tries a number of width, height and algorithm variations that allows us to pack as many assets as possible while using as little memory as possible. Once a best configuration is found, it gets written to disk in /data/system/framework_atlas 2. Given a best configuration (algorithm variant, dimensions and number of bitmaps that can be packed in the atlas), the atlas service packs all the preloaded bitmaps into a single graphic buffer object. 3. The packing is done using Skia in a temporary native bitmap. The Skia bitmap is then copied into the graphic buffer using OpenGL ES to benefit from texture swizzling. HOW PROCESSES USE THE ATLAS Whenever a process' hardware renderer initializes its EGL context, it queries the atlas service for the graphic buffer and the map. It is important to remember that both the context and the map will be valid for the lifetime of the hardware renderer (if the system process goes down, all apps get killed as well.) Every time the hardware renderer needs to render a bitmap, it first checks whether the bitmap can be found in the assets atlas. When the bitmap is part of the atlas, texture coordinates are remapped appropriately before rendering. Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
058feb4e1d18bc1fcedac019d2364ebfd9a4c383 |
|
23-Apr-2013 |
Michael Wright <michaelwr@google.com> |
am 58500051: am 5fe6e4c4: Merge "Rewrite input handling for native applications" into jb-mr2-dev * commit '585000515faacc02736f920425ae6c323223ee58': Rewrite input handling for native applications
|
a44dd26a75e24cc021802288fb81f4761e47be6b |
|
11-Apr-2013 |
Michael Wright <michaelwr@google.com> |
Rewrite input handling for native applications Bug: 8473020 Change-Id: Ic4353d8924ab877bec21aff8c2dba9fe725bf906
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cc6dda77501d0e8dd5ea267f51c02fd120476d28 |
|
13-Apr-2013 |
Mathias Agopian <mathias@google.com> |
am 4c87edfe: am 1763d6f9: Merge "always trigger a re-draw when updating the transparent region hint" into jb-mr2-dev * commit '4c87edfe4d2dce71b7b723f25078cd4bd5d48456': always trigger a re-draw when updating the transparent region hint
|
1763d6f957163faf6d3b629c36f4e8e90e0e31bd |
|
13-Apr-2013 |
Mathias Agopian <mathias@google.com> |
Merge "always trigger a re-draw when updating the transparent region hint" into jb-mr2-dev
|
54e3d38490b60cd776ad3b988d923241498816e2 |
|
13-Apr-2013 |
Mathias Agopian <mathias@google.com> |
always trigger a re-draw when updating the transparent region hint since SF now relies on receiving a frame for latching the transparent region hint, we make sure we will indeed redraw something. Bug: 8581533 Change-Id: Ia12ddf5654a7deeac7628b799bfde4b8c16c992b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ffe0c56c29fb3e981f954cc822dddd84d9e3bbb8 |
|
12-Apr-2013 |
Craig Mautner <cmautner@google.com> |
am 429664a5: am d5e7b8bf: Merge "Clear test rectangle if previous focus is null." into jb-mr2-dev * commit '429664a52ab0d024757650a246297ae8224e60dc': Clear test rectangle if previous focus is null.
|
d5e7b8bfb4381baa36feb241bc65d4681f664592 |
|
12-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Merge "Clear test rectangle if previous focus is null." into jb-mr2-dev
|
26a84dfdd09011d6a93a3758f794e4585bf10c3d |
|
12-Apr-2013 |
Craig Mautner <cmautner@google.com> |
Clear test rectangle if previous focus is null. A bug in FolderEditText or DynamicLayout (b/8600683) was causing the 'rectangle' parameter passed to scrollToRectOrFocus() to be roughly 1000 feet to the right of the screen. This bug is normally masked because the focus found in mLastScrolledFocus never matches the new focus and consequently the misleading 'rectangle' is nulled. However, on the first time in to scrollToRectOrFocus when returning to Launcher from another app, mLastScrolledFocus is null and the code skips over the place where 'rectangle' is nulled. Without this clearing it was determined that 'rectangle' was outside the viewable area and scrolling not required. This is bug 8547155. This change causes even null values of mLastScrollFocus to be compared to the new focus thus masking the bug in all situations. Bug 8600683 will be fixed in a separate CL. Fixes bug 8547155. Change-Id: Ic6cb22c42b0e93a9793dd2babc25727c2ba29155
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0f3e023b637fb6cd60ff6b3add527cee29463a27 |
|
11-Apr-2013 |
Michael Wright <michaelwr@google.com> |
am af543eb0: am 8881455a: Merge "Send joystick key repeat messages to correct handler" into jb-mr2-dev * commit 'af543eb050546e2197bd54db7cf257e053add4c2': Send joystick key repeat messages to correct handler
|
b9618523add13ca3835bbdaf83b8c2313ae277a2 |
|
11-Apr-2013 |
Michael Wright <michaelwr@google.com> |
Send joystick key repeat messages to correct handler Change-Id: I7f8dbe21c9088553ad2c5efe70585f516ab78141
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
54977db25a46edb0fb0467a41498e6aad8380acc |
|
10-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
am 55198db2: am 4dac901f: Rewrite touch navigation dpad synthesis. * commit '55198db2dbb55d4f9ac18db81cc05c553b6c6d23': Rewrite touch navigation dpad synthesis.
|
4dac901f011e7c15882e260441225633a6435e49 |
|
10-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Rewrite touch navigation dpad synthesis. The new implementation more accurately tracks the velocity of flings and takes care to avoid obvious discontinuities. The main goal is for a fling to appear to be a linear extension of the movement already in progress. The minimum fling velocity is set to ensure that flings appear to be fairly smooth despite being discretized. Use sequences of repeated key events instead of individual down/up events to represent continuous motions in one direction which can be helpful for stopping flings at boundaries such as when flinging the cursor position within a text view. Compute the movement thresholds based on the physical size of the touch pad, if known. If not known, we assume a nominal size. Support stopping flings with a tap just like we do for normal touch events elsewhere in the framework. Moved the detection of ASSIST swipes into the InputReader where it belongs. These swipes must be detected globally to ensure consistent behavior across the all applications. Added a custom protocol in EventHub to enable input device drivers to override the timestamp of the following events in a packet. This change enables input device drivers that have a better idea of when an input event was actually generated to pass this information to the input system. Particularly useful with uinput. Bug: 8583760 Change-Id: I8ef4e827804786d549cfaa00793a2b9dd0fda465
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
82c0edaad3ff9da2e28cd17520168e603fe394d5 |
|
10-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
am f1cee03b: am 678a1252: Split up the event synthesis code by source. * commit 'f1cee03bf0e5d3144947609a23665d950e385635': Split up the event synthesis code by source.
|
678a1252b4f3cdc18d20b411c05a4320d1d9b719 |
|
10-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Split up the event synthesis code by source. The goal is to better encapsulate this code to make it easier to maintain and to facilitate some upcoming changes. Some of the variables have been renamed but the logic is unchanged. Bug: 8583760 Change-Id: I45501f7dabebcb938e42c386291d615d088a4c8c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8140b05f1e4dfce773ce340b157fccda769b41d2 |
|
09-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
am 9acc8c9c: am 97b968b6: Merge "Fix trackball interpretation of precision." into jb-mr2-dev * commit '9acc8c9c53a4d3adcf3e3f220ea5e4529c3e60a4': Fix trackball interpretation of precision.
|
b437a79b050e8928ce7187899b7754f049008085 |
|
09-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
resolved conflicts for merge of 21dffd5d to master Change-Id: I37c48dee471c9d43f19c1fe4a01f70db53e2441f
|
97b968b6b3baf40e8cfd5ff147f81cd81398638a |
|
09-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix trackball interpretation of precision." into jb-mr2-dev
|
3a2854bcee08e3af3ca1b042c1fef6ca68f8c70a |
|
09-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Merge "Queues, queues, queues and input." into jb-mr2-dev
|
c574b68cbb3d6cf20ef7e73fef9c145de93df3de |
|
09-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Fix trackball interpretation of precision. The trackball to dpad synthesis was using the MotionEvent's precision field to determine a threshold for movement but the calculations involved did not actually make sense for any value of precision less than 2.0. This worked fine before since the InputReader hardcodes the trackball's precision to 6. Injected trackball events may have a different precision which can result in the thresholds being set inappropriately. For example, it was not possible to move focus by one unit at a time when the precision was set to 1.0. The old code was probably using precision as a way to set a threshold based on the trackball moving by some minimum number of physical ticks, in this case 2. But the code will work just as well if we set an absolute threshold based on distance traveled given that the input system is already expected to normalize the trackball movements before delivering them to the application. So stop using precision. Bug: 8473020 Change-Id: I3c6f7fb1b507f8cf5608b47550e7345fea3352fa
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f9e989d5f09e72f5c9a59d713521f37d3fdd93dd |
|
05-Apr-2013 |
Jeff Brown <jeffbrown@google.com> |
Queues, queues, queues and input. Redesigned how ViewRootImpl delivers input events to views, the IME and to native activities to fix several issues. The prior change to make IME input event delegation use InputChannels failed to take into account that InputMethodManager is a singleton attached to the main looper whereas UI may be attached to any looper. Consequently interactions with the InputChannel might occur on the wrong thread. Fixed this problem by checking the current thread and posting input events or callbacks to the correct looper when necessary. NativeActivity has also been broken for a while because the default event handling logic for joysticks and touch navigation was unable to dispatch events back into the native activity. In particular, this meant that DPad synthesis from touch navigation would not work in any native activity. The plan is to fix this problem by passing all events through ViewRootImpl as usual then forwarding them to native activity as needed. This should greatly simplify IME pre-dispatch and system key handling and make everything more robust overall. Fixed issues related to when input events are synthesized. In particular, added a more robust mechanism to ensure that synthetic events are canceled appropriately when we discover that events are no longer being resynthesized (because the application or IME is handling or dropping them). The new design is structured as a pipeline with a chain of responsibility consisting of InputStage objects. Each InputStage is responsible for some part of handling each input event such as dispatching to the view hierarchy or to the IME. As a stage processes an input event, it has the option of finishing the event, forwarding the event to the next stage or handling the event asynchronously. Some queueing logic takes care to ensure that events are forwarded downstream in the correct order even if they are handled out of order by a given stage. Cleaned up the InputMethodManager singleton initialization logic to make it clearer that it must be attached to the main looper. We don't actually need to pass this looper around. Deleted the LatencyTimer class since no one uses it and we have better ways of measuring latency these days using systrace. Added a hidden helper to Looper to determine whether the current thread is the indicated Looper thread. Note: NativeActivity's IME dispatch is broken by this patch. This will be fixed later in another patch. Bug: 8473020 Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
49084108f20e3f3737cb6fa1c1635a6ba348f159 |
|
05-Apr-2013 |
Romain Guy <romainguy@google.com> |
am 9ff408c1: am faec826b: Merge "Reduce the size of dirty invalidates" into jb-mr2-dev * commit '9ff408c17be8cccc9820d46b207673be22bfbe84': Reduce the size of dirty invalidates
|
faec826bd6051e41e1299cd14d580a4f50f6fe97 |
|
05-Apr-2013 |
Romain Guy <romainguy@google.com> |
Merge "Reduce the size of dirty invalidates" into jb-mr2-dev
|
e55945e219dbf4664683a757c5a9d462c98f2e19 |
|
05-Apr-2013 |
Romain Guy <romainguy@google.com> |
Reduce the size of dirty invalidates Remove remnants from times long gone. We don't need to redraw the union of the previous frame's dirty region and the new dirty region. Change-Id: I9fb96f99a6a72c2233f9ca563cf6432a42b2b65b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e4d9a01bfc7451afff1ed399a5801c7aa2af2831 |
|
29-Mar-2013 |
Dan Morrill <morrildl@google.com> |
Phase 1 of refactoring SystemServer. SystemServer is currently a monolithic class that brings up key system services. This change is the first phase of refactoring it to be more configurable. Specifically, it adds a set of on/off switches used to control startup of individual services. Future plans include finer grained controls and a more explicit and consistent startup sequence for these services. Change-Id: I7299f5ce7d7b74a34eb56dffb788366fbc058532
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c99d3c1fd618c1f64103b4f39dd95330309be5a3 |
|
30-Mar-2013 |
Chet Haase <chet@google.com> |
Stop jank from window animations overlapping activity animations Relaunching a running activity will sometimes cause animations in that activity to run, causing jank due to too much happening (window animations on that same window running at the same time). An earlier fix pauses application rendering while window animations are running, but only the first time the activity comes up. If the window is animated after that (such as is the case with re-launching it while it is running in the background), rendering, and therefore animations, happen as usual, causing the jank. The fix is to simply broaden the scope of when application rendering is paused to include anytime the window is animating. Issue #8472972 Make app animations play nice with window animations Change-Id: I1dd8da039fcb4d1faf6c0811bae97ef2847deb84
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bf02096088ffff97738e9f9f01054a730d2f219f |
|
29-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Finish any event in the current input queue When the pipelining optimization was added we never updated handleImeFinishedEvent to look through the whole queue of items, so it was only looking at the head. Bug: 8498214 Change-Id: I79c62392a93b47e3e1eab3f4fe54a5c999dfb566
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ca3d655d20c13c71972a4475cec3b98efa7dbdd0 |
|
27-Mar-2013 |
Jeff Brown <jeffbrown@google.com> |
Merge "Use input transport for communications between app and IME." into jb-mr2-dev
|
c28867a1d67121ce5963de135e3ae2b1dbd9a33d |
|
26-Mar-2013 |
Jeff Brown <jeffbrown@google.com> |
Use input transport for communications between app and IME. The input method manager service now supplies an input channel for communication while creating an IME session on behalf of the application. This change significanly reduces the overhead of IME event dispatch by using a standard input channel to send input events rather than using binder. This results in fewer thread context switches and fewer object allocations. What's more, the IME may perform additional batching of the motion events that it receives which may help it catch up if it is getting behind while processing them. Bug: 7984576 Bug: 8473020 Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
40f8f0d1366e8ba47a17376e51c9fc7291ffdc16 |
|
26-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Deliver key repeats for artificial dpad events Bug: 8425219 Change-Id: Ib41b06ed40d43f2e30ce2a647871a76cea80177b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
53d13667e39f12644d03278c33298351ac68ec26 |
|
21-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Fix log tags in trackball debugging Change-Id: I02a623c96aff8b6ffbe11161feea39ad26ba0e83
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1a89c5324badd10dac142a5a0c40a203503db65f |
|
23-Mar-2013 |
Dianne Hackborn <hackbod@google.com> |
Merge "New media button API." into jb-mr2-dev
|
961cae92540763226648813d111c5b5c3b0f1597 |
|
20-Mar-2013 |
Dianne Hackborn <hackbod@google.com> |
New media button API. This allows sending media buttons to any PendingIntent, so they can be captured with a registered receiver. Also add some new ViewTreeObserver APIs; this is all for a new support library API to watch media buttons while an app has input focus. Change-Id: I3c51cef59460662b008c9a2cc87d6a6383c21855
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c8a7e54fefbb70341427fe5b384447f30e1816f2 |
|
21-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Add pipelining optimization to IME dispatching Rather than wait for the IME to return before sending it the next input event, send all available input events as soon as we receive them. Bug: 7984576 Change-Id: Ie0b1086efc4f9e1ececac22afd997829304bf180
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
95ae9429ee3555f4a1f396da423413ba496bdf33 |
|
14-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Add tracing for pending queue size Change-Id: Ib31c2245feca31d0276ef1ebf6e6d237d0297671
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b38258f357a7857ce5d53caad0af9c38053ab071 |
|
15-Mar-2013 |
Chet Haase <chet@google.com> |
Merge "Fix erroneous requestLayout-during-layout issues" into jb-mr2-dev
|
107a48236ad73cf4627069edbeaa45a189e0d8ac |
|
13-Mar-2013 |
Chet Haase <chet@google.com> |
Fix erroneous requestLayout-during-layout issues In general, calling requestLayout() during layout is a Bad Idea. However, ListView does this during the normal course of its layout, as it removes and adds views during layout. However, it handles this properly, ensuring that the views in its hierarchy are all measured and laid out properly by the time its layout process is done. A previous fix to the request-during-layout issue attempted to distinguish the correct from incorrect behavior by checking whether views had been properly laid out since the requestLayout() call, and making sure the views were visible in the hierarchy (parented, attached, and !GONE), since otherwise the views would not be laid out, the flags wouldn't be cleared, and requests are superfluous anyway. However, this logic only checked whether the requesting views were GONE, whereas the check should include the entire parent hierarchy of the views (since a view with a GONE parent is still not visible to the user). This fix adds that additional check and cleans up other parts of the previous code, such as not bothering to post() requests that occur during the second layout pass unless those requests are also valid (coming from visible views). Issue #8370042 Path seems to be in an infinite layout loop Change-Id: I7aaf701229adfeee349a9a7c9ec14585735ba9f6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e7a9ae8ba0fb7fc61960e3facd0c5534e9ffce1e |
|
09-Mar-2013 |
Michael Wright <michaelwr@google.com> |
Add touch navigation input source Bug: 8276741 Change-Id: I674b9804bf9ae76d694ae7073b54a7d43474a43c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c4aad01cbbb69c916ef323693e1fd0560b0eccba |
|
23-Feb-2013 |
Dianne Hackborn <hackbod@google.com> |
Formalize overscan metrics. The window manager now maintains and reports a new formal "overscan insets" for each window, much like the existing content and visible insets. This is used to correctly position the various UI elements in the various combination of layout options. In particular, this allows us to have an activity that is using fitSystemWindows to have the content of its UI extend out to the visible content part of the screen while still positioning its fixed UI elements inside the standard content rect (and the entire window extending all the way into the overscan area to fill the screen as desired). Okay, maybe that is not written so clearly. Well, it made my head hurt too, so suffer! The key thing is that windows now need to know about three rectangles: the overall rectangle of the window, the rectangle inside of the overscan area, and the rectangle inside of the content area. The FLAG_LAYOUT_IN_OVERSCAN option controls whether the second rectangle is pushed out to fill the entire overscan area. Also did some improvements to debug dumping in the window manager. Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
52036b19a5f82bc4d75cfcbff99c65df8d25a99b |
|
15-Feb-2013 |
Romain Guy <romainguy@google.com> |
Expose display list APIs The exposed APIs are slightly simpler than the full APIs used internally. Only APIs useful to applications are exposed. Change-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9dd4c5c6867f8b6de19096d2d68365dccb744c19 |
|
09-Feb-2013 |
Fabrice Di Meglio <fdimeglio@google.com> |
Fix bug #7381967 Add RTL APIs to ViewParent - add RTL apis to ViewParent - remove awful and performance bottleneck casts in View during LayoutDirection, TextDirection and TextAlignment resolutions. Change-Id: I92a56b16382e13c28c1dad35f6f205620eb01bfe
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
39938752b368ae282b821a43efbc568c925ecc34 |
|
09-Feb-2013 |
Jeff Brown <jeffbrown@google.com> |
Fix build break due to merge. Change-Id: I08c39690ee9de825ff51afc7d102ee622af6ba13
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e624e0c70409773df6c3eb274852f9dd7961f025 |
|
09-Feb-2013 |
Jeff Brown <jeffbrown@android.com> |
am 110fe9b3: am fe1f3a1b: Merge "Fix ViewRootImpl to find missing focus using D-pad." # By Ki-Hwan Lee # Via Android Git Automerger (1) and others * commit '110fe9b303be527c30a8af95b6fb7afac12968b5': Fix ViewRootImpl to find missing focus using D-pad.
|
110fe9b303be527c30a8af95b6fb7afac12968b5 |
|
09-Feb-2013 |
Jeff Brown <jeffbrown@android.com> |
am fe1f3a1b: Merge "Fix ViewRootImpl to find missing focus using D-pad." # By Ki-Hwan Lee # Via Gerrit Code Review (1) and Ki-Hwan Lee (1) * commit 'fe1f3a1beff9f73f6a04bcc35239038a21bc38ff': Fix ViewRootImpl to find missing focus using D-pad.
|
ccac8c95577aeb2c327c090678011733fa24fba4 |
|
07-Feb-2013 |
Chris Craik <ccraik@google.com> |
Merge "Correctly resume profileRendering"
|
ae4f3204ec2c9251e0e408816e74502079cd1a6c |
|
07-Feb-2013 |
Chris Craik <ccraik@google.com> |
Correctly resume profileRendering Ensure profileRendering reschedules a previously created profiler callback if disabled and reenabled Change-Id: I181ac5043966b99bb8d21e69ce4fdd7494102acb
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c2293025a25e04b26bf53713d71f85fd9ca5e8e9 |
|
07-Feb-2013 |
Dianne Hackborn <hackbod@google.com> |
App ops: track system windows, monitoring changes. Change-Id: I273e82bdad66ada3bf0f7ec9176bc304b9ee1ee8
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4ef158baa3382909c436cbc31e123ef981387e4e |
|
08-Jan-2013 |
Ki-Hwan Lee <kihwanl@google.com> |
Fix ViewRootImpl to find missing focus using D-pad. By using D-pad, no-focus in non touch mode is rare but legal in a case like below. 1. The first request to get focus for a new activity is handled in the first performTraversals() call when activity is not ready for a complete view hierarchy. So there might be no focusable yet. 2. If the activity has some menus, ActionMenuView can be attached to the view hierarchy in the PhoneWindow.preparePanel() soon. So there can be focusables but still not focused. Fixed ViewRootImpl.deliverKeyEventPostIme() to handle this case to resurrect a focus if there are focusables. How to reproduce: (1) Open "API Demos" application -> Views -> Search View (2) Select "Action Bar" item using the D-pad (3) Try to focus the Search View, using the D-pad. Change-Id: Ic379774f0307f168f0ed775d0f6a9078ac5c9713
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ef35927abcd089652f87a985dd6dde7afde58b92 |
|
01-Feb-2013 |
Romain Guy <romainguy@google.com> |
Tag HardwareRenderers with a name to help debugging The name of the renderer is the same as the window it belongs to. Change-Id: Ie9adc0a1978afa026923ea41f5540eda6ba65a92
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d0fd54648ca6249f56cf469c57181b5a7bbb71d0 |
|
29-Jan-2013 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Adding UI test automation APIs."
|
3696779bca4e5bc1b60c056db6f892e72e51a20f |
|
28-Jan-2013 |
Romain Guy <romainguy@google.com> |
Reinitialize hardware renderer after eglTerminate() Bug #8066455 ViewRootImpl was properly detecting that the renderer was not ready to draw but would simply schedule another frame, thus sending the systemui into an inifite redraw loop. This change reinitializes the renderer if needed (if the renderer is requested but not enabled.) This CL also fixes an issue caused by the default wallpaper. Since it never calls eglTerminate(), managed contexts are never reclaimed. Change-Id: Idb8caa672be8ee35f6e6a7e942d9abd8aa100967
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
80943d8daa6ab31ab5c486d57aea406aa0730d58 |
|
02-Jan-2013 |
Svetoslav Ganov <svetoslavganov@google.com> |
Adding UI test automation APIs. This change adds APIs support for implementing UI tests. Such tests do not rely on internal application structure and can span across application boundaries. UI automation APIs are encapsulated in the UiAutomation object that is provided by an Instrumentation object. It is initialized by the system and can be used for both introspecting the screen and performing interactions simulating a user. UI test are normal instrumentation tests and are executed on the device. UiAutomation uses the accessibility APIs to introspect the screen and a special delegate object to perform privileged operations such as injecting input events. Since instrumentation tests are invoked by a shell command, the shell program launching the tests creates a delegate object and passes it as an argument to started instrumentation. This delegate allows the APK that runs the tests to access some privileged operations protected by a signature level permissions which are explicitly granted to the shell user. The UiAutomation object also supports running tests in the legacy way where the tests are run as a Java shell program. This enables existing UiAutomator tests to keep working while the new ones should be implemented using the new APIs. The UiAutomation object exposes lower level APIs which allow simulation of arbitrary user interactions and writing complete UI test cases. Clients, such as UiAutomator, are encouraged to implement higher- level APIs which minimize development effort and can be used as a helper library by the test developer. The benefit of this change is decoupling UiAutomator from the system since the former was calling hidden APIs which required that it is bundled in the system image. This prevented UiAutomator from being evolved separately from the system. Also UiAutomator was creating additional API surface in the system image. Another benefit of the new design is that now test cases have access to a context and can use public platform APIs in addition to the UiAutomator ones. Further, third-parties can develop their own higher level test APIs on top of the lower level ones exposes by UiAutomation. bug:8028258 Also this change adds the fully qualified resource name of the view's id in the emitted AccessibilityNodeInfo if a special flag is set while configuring the accessibility service. Also added is API for looking up node infos by this id. The id resource name is relatively more stable compared to the generaed id number which may change from one build to another. This API facilitate reuing the already defined ids for UI automation. bug:7678973 Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ebf7c74361baefb826591bd90cdacd9244a2eb59 |
|
18-Jan-2013 |
Dake Gu <dake@google.com> |
am 85a06152: am fe88f1be: Merge "Fix bug of SimulatedTrackball" into jb-mr1-aah-dev * commit '85a06152ce9b7d3a198639eb1918a9c2a3fd34d4': Fix bug of SimulatedTrackball
|
f8739b992f53fdd2e4be73ee10716df32434100a |
|
17-Jan-2013 |
Dake Gu <dake@google.com> |
Fix bug of SimulatedTrackball Simulated trackball should not generate KeyEvent if dispatchGenericMotionEvent returns true b/8022205 Change-Id: I1857e25407c508c98ef4db85fe146b1e25a0803e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9afb2e1a95b92d5dfb0612bbb606a09aa528ee5d |
|
14-Jan-2013 |
Jeff Brown <jeffbrown@google.com> |
Optimize focused input event dispatch in view root. DO NOT MERGE The efficiency of key, trackball and generic motion event dispatch is greatly influenced by the IME dispatch cycle. This change simplifies the dispatch of focused input events and avoids causing event processing to be requeued on the handler and delayed unnecessarily. Bug: 7984576 Change-Id: Id82624a3f32c05efe6ee5c322bd55bf2ab21525d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
22a94cb03ad39c5256608e4954fe4e85179d9ed6 |
|
15-Jan-2013 |
Jeff Brown <jeffbrown@google.com> |
Merge "Optimize focused input event dispatch in view root."
|
29c0ed2c130521ce1b648dd517a0d25457004de3 |
|
14-Jan-2013 |
Jeff Brown <jeffbrown@google.com> |
Optimize focused input event dispatch in view root. The efficiency of key, trackball and generic motion event dispatch is greatly influenced by the IME dispatch cycle. This change simplifies the dispatch of focused input events and avoids causing event processing to be requeued on the handler and delayed unnecessarily. Bug: 7984576 Change-Id: Id82624a3f32c05efe6ee5c322bd55bf2ab21525d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
149567f9d59a07a9d7793ea455ff4c2586c3ae53 |
|
09-Jan-2013 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing a memory leak in ViewRootImpl and a focus change callback issue. 1. ViewRootImpl was keeping reference to the old focused view so it can call back the global on focus change listener when another view gets focus. The stashed reference, however was not cleared which caused a memory leak if the last focused view was removed from the view tree. In general keeping additional state for the last focus in ViewRootImpl is not a good idea since this add complexity due to additional book keeping work that is required. The view tree already keeps track of where the focus is and it should be the only place that holds this data. Since focus does not change that frequently it is fine to look up the focus since this operation is O(m) where m is the depth of the view tree. This change removes the duplicate book keeping from ViewRootImpl and the focus is looked up as needed. 2. ViewRootImpl was calling the global focus change callbacks when focus is gained, lost, or transferred to another view. This was done in *ChildFocus methods. In the case of a child losing focus, i.e. in clearChildFocus, there was a check whether focus searh yields a view to take focus and if so it did not call back the global focus listener assuming the the found view will take focus (the view tree gives focus to the first focusable when a view looses focus). This is not a correct assumption since some views override methods called as a result of View.requestFocus that determine what the next focused view should be. For example, HorizontalScrollView overrides onRequestFocusInDescendants and changes the direction of the search. In fact focus search does not take into accound ViewGroup descendant focusability. Hence, the view found by calling the focus search from the root is not necessarily the one that will get focus after calling requestFocus. Actually, it is possible that the focus search will find a view but no view will take focus. Now the View class is responsible for calling the global focus listeners which avoids the above problem. Also this saves book keeping in ViewRootImpl. bug:7962363 Change-Id: Ic95a18b364e997021f3f6bb46943559aac07d95a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e422737fda48f73cdd74800c9a9b9d15d0186b6d |
|
19-Dec-2012 |
Justin Koh <justinkoh@google.com> |
am a90c92a1: am 86903699: Merge "Start RecognitionActivity with an upswipe gesture." into jb-mr1-aah-dev * commit 'a90c92a1c97830de5e1766bb64ff421a2a50ed56': Start RecognitionActivity with an upswipe gesture.
|
cc699b4fe396b3f93d45211d0df6f02baa325b2f |
|
13-Dec-2012 |
Chet Haase <chet@google.com> |
Fix for requestLayout-during-layout inefficiencies An earlier fix made it possible to call requestLayout() during layout (which is not recommended in most cases outside of a ListView) without ending up with blank content and internal layout flags in a confused state. However, that fix incorrectly detected a problem in some cases (such as ListView practices of adding views during layout) which were actually okay; as long as you make sure to measure and layout your children properly before returning from layout(), then it's not a problem. We were improperly spamming the log with supposed problems, and causing more overhead in correct cases by running a full request/measure/layout pass after the first layout pass, all of which is unnecessary in cases where the containers know what they're doing. This new fix changes the logic to only cause the second layout pass (and third, posted to the next frame, if things are really done incorrectly) if the layout-request flags are still set on the requesting views after the full layout pass is complete. This situation causes the blank screens we've seen in buggy apps, and is exactly what we should avoid. However, correct cases (e.g., ListView) will not have these problems because they run measure/layout correctly after the request calls, which clears these flags. The upshot is that buggy cases will be detected and compensated for (by clearing the flags and then running a second request/measure/layout pass, as in the original fix) and non-buggy cases will be noop'd, going back to their previous, working logic flow. The bug below is one of the buggy apps to demonstrate this problem. I noticed that the original problem (blank screen) is no longer reproducible. I suspect that logic was added to the app to force a refresh after it is attached. You can still detect the problem (and the fix) by seeing that prior to the fix (say, on mr1.1) there is a delay of about a second between the end of the progress bar updates and the showing of content on a screen that used to just remain blank. With the fix (both the previous version and this one), the content is updated immediately, because we now handle the buggy request- during-layout situation in the same frame as it occurs. Issue #6914123 News and Weather app sometimes loads to a blank screen Change-Id: I4c34817cc3dd44ba422ff50de4321624c0824d83
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
05cb363bf3e714d0a5fb1bc97dfed639c9c9f950 |
|
12-Dec-2012 |
Ben Pietrzak <bpietrzak@google.com> |
Start RecognitionActivity with an upswipe gesture. Change-Id: I7dd91bef3eb551bb7617307cc9a4777226b5ded7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ee0ff18c36ff27977a868c4a6ea695a21723f52b |
|
04-Dec-2012 |
Romain Guy <romainguy@google.com> |
Merge "Optimize onAttachedTo/onDetachedFromWindow"
|
fbb93fa2f3abf8b50ea945a319c0a190f2aae213 |
|
04-Dec-2012 |
Romain Guy <romainguy@google.com> |
Optimize onAttachedTo/onDetachedFromWindow Apps detaching/attaching large subtrees would waste a few milliseconds dealing with dirty display lists. This change removes the need to do ArrayList.remove() on every detachedFromWindow(). Change-Id: Icee72516c40d48ff0fd9d6f3128589f99bf61428
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2c5f782094c5668a9615e2f9f41063386ae52b28 |
|
04-Dec-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Refactoring of the screen magnification feature."
|
152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891 |
|
13-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Refactoring of the screen magnification feature. 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
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3efa7b597c9d95d47c6d31b73da05117d6d5d244 |
|
03-Dec-2012 |
Chet Haase <chet@google.com> |
Fix requestLayout-during-layout problems An earlier fix to allow requestLayout() to be called during layout didn't handle some of the requests properly, leaving some nodes stranded with layout requests that didn't propagate all the way up the hierarchy. The fix is to do, on the second layout pass, exactly what we do in a normal layout pass: run measure, then layout. Issue #7657033 Checkboxes not being updated immediately in Settings Change-Id: I90be3992d3441e8f43629d26c8386c81a7c31482
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
5bb3c730f5ebd2a0db1b02a8981c6fdbea6c1a2e |
|
30-Nov-2012 |
Romain Guy <romainguy@google.com> |
Apply dev. settings at runtime Bug #7434649 Change-Id: I16f00eaa8a5eefd9f9849e196cf2cb1659215390
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d075031944171139c1235bbc96c9533eaeeceb08 |
|
29-Nov-2012 |
Romain Guy <romainguy@google.com> |
Improve profiling by using Choreographer This will avoid jank and lead to better measurements. Change-Id: Id18587a0a0b7d45adb3a65dfc427800565cc5d0b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
abae2a1b891772d36d8f781adfcc8969e551691f |
|
28-Nov-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Simplification of the poolable management utils. Before to implement a pool of objects, the pooled class had to implement an interface which was leaking the pool management APIs. This requires hiding APIs - inconvenient at best. Further, each client had to implement the chaining of pooled instances which means adding a couple of member variables which are manipulated by the implemented interface methods. As a consequence the client is aware of how pooling is implemented which is error prone and breaks encapsulation. Now the pool objects are responsible for managing pooling state via reusable wrapper objects and the clients are oblivious of how pooling is done. Creating a thin cached wrapper for each pooled object has minimal performance impact while making the code more maintainable. Actually implementing of the old version of the APIs was taking as much code as implementing the pooling yourself. Also clients had to implement a poolable manager whose responsibility was to create new instances and provide callbacks when an instance is added to or removed from the pool. Now, the clinet class should create a static member for the pool and expose obtain/aquire and release/recycle methods in which it should create a new instance if the pool did not return one and clear the state of the host when it is returned to the pool. Updated the JavaDoc with a best practice. The pooling was composed of several interfaces and classes scattered over a few files, now all this is in a single small file. Update all usages of the pooling APIs in the framework. Also one had to write a poolable manager which Change-Id: Ib8dc286040eb3d7cb7d9668ba76fead05cb97647
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d5a835259d1dd79893f043ce4813e3d24b6e54d5 |
|
22-Nov-2012 |
Chet Haase <chet@google.com> |
Fix layout-in-layout logic Fix to allow requestLayout() during layout needs to disable the "currently doing layout" flag while it processes the requests that came in during layout to allow these initial requests to go through unhindered. Change-Id: Ied5ff1589224792f153cc10f65e004f14724523d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b104b202bdf7998018b21dcad96059eded9f7ef9 |
|
02-Nov-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am cb5c66b9: am 5e27e55a: am 28e8f76c: Merge "Cannot click on partially visible views in touch exploration." into jb-mr1-dev * commit 'cb5c66b9c1602b750bb481641253604ba3d59ac6': Cannot click on partially visible views in touch exploration.
|
5e27e55aecea63c6cf0477ab75f4c39b7b68c9cd |
|
02-Nov-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am 28e8f76c: Merge "Cannot click on partially visible views in touch exploration." into jb-mr1-dev * commit '28e8f76c50b26efd657bc0740fee25ac18520f9e': Cannot click on partially visible views in touch exploration.
|
a94c3194ffa896632f025b983ca57095cd4ba277 |
|
01-Nov-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Cannot click on partially visible views in touch exploration. 1. In touch exploration mode the system clicks in the center of the accessibility focus rectangle. However, if this rectangle is only partially shown on the window or on the screen the system may not be able to perform the click, if the accessibility focus center is not on the screen, or click on the wrong window, if the access focus center is outside of the window. This change clips the rectangle to the window bounds which and the display bounds. This will ensure no clicks are sent to the wrong window and no clicks are sent outside of the screen. bug:7453839 Change-Id: I79f98971e7ebcbb391c37284467dc76076172c5f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
990c1b7f3e8f3f63f3362c8eae263ddbb7050f95 |
|
24-Oct-2012 |
Craig Mautner <cmautner@google.com> |
am a170dcb7: am 9e96c69e: am 6757572b: Merge "Add throwing InvalidDisplayException from addView." into jb-mr1-dev * commit 'a170dcb7b6908d0ea4dd7c2717d2d2b1da59262c': Add throwing InvalidDisplayException from addView.
|
9e96c69e3e9ebdb820acd347b4691c32a5d76be4 |
|
24-Oct-2012 |
Craig Mautner <cmautner@google.com> |
am 6757572b: Merge "Add throwing InvalidDisplayException from addView." into jb-mr1-dev * commit '6757572b39d3802c4d7b69467b5ebf69a96c208b': Add throwing InvalidDisplayException from addView.
|
6757572b39d3802c4d7b69467b5ebf69a96c208b |
|
24-Oct-2012 |
Craig Mautner <cmautner@google.com> |
Merge "Add throwing InvalidDisplayException from addView." into jb-mr1-dev
|
16a5ad8345f2518947bbd47f072a02fd97dd1c67 |
|
24-Oct-2012 |
Chet Haase <chet@google.com> |
am 4a82a0fc: am f5fa64f2: am fbba753f: Merge "Handle offscreen animations correctly" into jb-mr1-dev * commit '4a82a0fc09f4743b59b5de483329fb76e60aab07': Handle offscreen animations correctly
|
5d7cc93625b0cbad545082dab39a391e96047832 |
|
24-Oct-2012 |
Romain Guy <romainguy@google.com> |
am be815669: am 9389d447: am b75ade9c: Merge "Use existing display list to render the resize buffer Bug #7400903" into jb-mr1-dev * commit 'be815669d1c41a95f79222aaa7caa4462bddfb2d': Use existing display list to render the resize buffer Bug #7400903
|
f5fa64f24b0ee6aa53ac2803590e8729122c445b |
|
24-Oct-2012 |
Chet Haase <chet@google.com> |
am fbba753f: Merge "Handle offscreen animations correctly" into jb-mr1-dev * commit 'fbba753f62f13a12d9287c67921d1ea60e92768d': Handle offscreen animations correctly
|
fbba753f62f13a12d9287c67921d1ea60e92768d |
|
24-Oct-2012 |
Chet Haase <chet@google.com> |
Merge "Handle offscreen animations correctly" into jb-mr1-dev
|
9389d447c175b4ef9fb85cd296f53cf24be4fd7d |
|
24-Oct-2012 |
Romain Guy <romainguy@google.com> |
am b75ade9c: Merge "Use existing display list to render the resize buffer Bug #7400903" into jb-mr1-dev * commit 'b75ade9cce02dffb967ff4719381254585074c58': Use existing display list to render the resize buffer Bug #7400903
|
6018aeec27914f138f36b00d8f00136a87562fd3 |
|
23-Oct-2012 |
Craig Mautner <cmautner@google.com> |
Add throwing InvalidDisplayException from addView. 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
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3561d062ff01f3455c984e4cfcd101a64a2e902f |
|
23-Oct-2012 |
Chet Haase <chet@google.com> |
Handle offscreen animations correctly A bug in software rendering caused animations on views that are offscreen to not get drawn, therefore the animation doesn't continue (since old-style animations depend on the logic in the drawing code to keep running). Fix is to special case the isAnimating case in ViewRoot to go ahead and schedule a traversal even if the dirty rect does not intersect with the visible region. Issue #7396035 Animations starting offscreen don't draw run/end/draw properly (sw rendering only) Change-Id: Iae25b3a424ddc5a16ba431ecd68cf42d5500db3f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3a2d6aaf8e71a89f82517369acc03d46ffe9bb22 |
|
23-Oct-2012 |
Romain Guy <romainguy@google.com> |
Use existing display list to render the resize buffer Bug #7400903 Change-Id: Ia2e534e47b4f67c280e2de7ce99cae0202751c42
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
573f1429a028e8fea8b7339b28e139b501a79d4d |
|
23-Oct-2012 |
Romain Guy <romainguy@google.com> |
am 2635e743: am d04fe3c1: am 04c8d402: Merge "Properly draw the window background on window resize Bug #7385090" into jb-mr1-dev * commit '2635e7431a74b89c338ea9d56715f94b9c328cc1': Properly draw the window background on window resize Bug #7385090
|
d04fe3c1aeaf4ce63f6a6f3def61a8cc5faff705 |
|
23-Oct-2012 |
Romain Guy <romainguy@google.com> |
am 04c8d402: Merge "Properly draw the window background on window resize Bug #7385090" into jb-mr1-dev * commit '04c8d402fa824c548dc5de82c56e63eb5df02371': Properly draw the window background on window resize Bug #7385090
|
41308e2936c768103d0e9c82500e97938d6797f1 |
|
23-Oct-2012 |
Romain Guy <romainguy@google.com> |
Properly draw the window background on window resize Bug #7385090 This change gets rid of two silly asumptions: - That a layer needs to be cleared with opaque black (it shouldn't, it's already cleared to transparent and the view will cover it up with its own background) - The the clip should be dirty at the beginning of a frame only when the render target is opaque Change-Id: I415b6d3cab196057fb0281419a53fef601a44e28
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
da391700c964077306ff43fd4296f31536942e9d |
|
19-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
resolved conflicts for merge of e549a602 to master Change-Id: I37dc0e48321d4baea49d77b6ef22bca19dcb0d9b
|
af26ac3130c0e956e28443d6e42212b02d4da611 |
|
19-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
am 398a6713: Merge "Fix bug #7367429 Popup window should get its direction from it Anchor View if it can" into jb-mr1-dev * commit '398a6713c355cf59af071e944268aec7c0096b5a': Fix bug #7367429 Popup window should get its direction from it Anchor View if it can
|
398a6713c355cf59af071e944268aec7c0096b5a |
|
19-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Merge "Fix bug #7367429 Popup window should get its direction from it Anchor View if it can" into jb-mr1-dev
|
b003e28c1d65d06fcb5690ff2955d007d8f7a626 |
|
18-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Fix bug #7367429 Popup window should get its direction from it Anchor View if it can - set the popup layout direction depending on the anchor view's layout direction (if not defined before) - make first pass of ViewRootImpl.performTraversals() and configuration update not override any layout direction that could have been set before Change-Id: I8e86ca805f0caf52c058d06aa7861df56fb862e6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8ebb55429496887590aad0bf99d35f745ed5577d |
|
18-Oct-2012 |
Chet Haase <chet@google.com> |
am b7379d3e: am 68716710: am 6f3e7bbf: Merge "Fix for previous commit on non-interesecting invalidations" into jb-mr1-dev * commit 'b7379d3e4808fc1b4af4f4a6286e4432aa2b7036': Fix for previous commit on non-interesecting invalidations
|
6871671063262759c906e6a24829d37a91d3b278 |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
am 6f3e7bbf: Merge "Fix for previous commit on non-interesecting invalidations" into jb-mr1-dev * commit '6f3e7bbf14d43553dfca6a59bbbb1c6ee19a70fc': Fix for previous commit on non-interesecting invalidations
|
9911d18f0ebc9a68e41838471de507a04ea8fd9d |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
Fix for previous commit on non-interesecting invalidations An error in the logic meant that some valid invalidations weren't getting through, causing Launcher (for one) to get stuck sometimes. Change-Id: I180622623b19770cd61034a5bd7991a5e2fd0a64
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6d166b7c5f86581cbccd52bc55bd45d724968a1e |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
am a1954051: am e31cc171: am d95316e2: Merge "Skip drawing offscreen objects" into jb-mr1-dev * commit 'a195405199f8d70ffce3de015bfe49316992faa4': Skip drawing offscreen objects
|
e31cc17159f5a6eada40ffda20cb0b0560a0bc5c |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
am d95316e2: Merge "Skip drawing offscreen objects" into jb-mr1-dev * commit 'd95316e2c78c7e6cfacac9cced66f7ace36d6497': Skip drawing offscreen objects
|
d95316e2c78c7e6cfacac9cced66f7ace36d6497 |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
Merge "Skip drawing offscreen objects" into jb-mr1-dev
|
b78ee0ef60e5323b15b4ffdc97be4d889e272b79 |
|
17-Oct-2012 |
Chet Haase <chet@google.com> |
Skip drawing offscreen objects Previous logic in ViewRoot would schedule and perform a draw when it was requested by offscreen objects. The problem was that the logic checking for an interesection between the offscreen invalidation rectangle and the onscreen display rectangle was flawed. The fix was to use the return value from Rect.intersect() to do the right thing and skip drawing. Issue #7366568 Offscreen invalidates can cause useless work for framework Change-Id: Ie4e277c695dacee39848a8a223f0c4ee34d9bb4d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7cfd0a2809ee39d4a6c484384615f873a133979d |
|
17-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
am 86a8b251: am d8989364: am e9a33c60: Merge "Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware" into jb-mr1-dev * commit '86a8b25114fbc033c474a214699ad77a9140af5e': Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware
|
d89893642f81f854455da601e4735d226cf95214 |
|
17-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
am e9a33c60: Merge "Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware" into jb-mr1-dev * commit 'e9a33c6098f51c687665adbed799860df2569ad0': Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware
|
e9a33c6098f51c687665adbed799860df2569ad0 |
|
17-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Merge "Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware" into jb-mr1-dev
|
cf12897cf553bfd07734dad3de071915fd21d4eb |
|
17-Oct-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Fix bug #7363252 Popup and Dialog UI widgets should be RTL aware - set the Configuration's layout direction in ViewRootImpl instead of PhoneWindow$DecorView - then remove unecessary API on ListPopupWindow for passing the layout direction Change-Id: Ia2c6e4aa8cb82aed9b088bc3b8004ea0a1ded1f3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1c80844464fbe977c5303cd56af9abb81a2bc218 |
|
16-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am 7d5de594: am d46503d5: am 40b7ea44: Merge "Accessibility focus drawing does not take into account view\'s transformation matrix." into jb-mr1-dev * commit '7d5de5941d24aadf57d883198f79cf39da324635': Accessibility focus drawing does not take into account view's transformation matrix.
|
d46503d5088b46f3e45a94b81efa406856559ca8 |
|
16-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am 40b7ea44: Merge "Accessibility focus drawing does not take into account view\'s transformation matrix." into jb-mr1-dev * commit '40b7ea443612213e9c973393658f07c176c3269e': Accessibility focus drawing does not take into account view's transformation matrix.
|
78bd9835eb99fd829026a05dc543c6708367ca5b |
|
16-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility focus drawing does not take into account view's transformation matrix. 1. We are using the view drawing bounds but did not take into account the transformation matrix. This leads to showing ugly artifacts on the launcher's hotseat which is pretty much the first thing we see. 2. Updated the documentation of View.getDrawingRect to be more explicit that the results does not have the transformation matrix applied. bug:7354033 Change-Id: Ief2e0ea8da05471d71e215ce4497d94ff6e92d1a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9c377bd2d6c8315c6917ed58b2b7a5f6fb8b8a4c |
|
06-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am 481a0aac: am 88ae2e2a: am d9c99124: Merge "Incorrect temporary detach of accessibility focused view may lead to a crash." into jb-mr1-dev * commit '481a0aac1f28233854ead339f0c9697eb1286653': Incorrect temporary detach of accessibility focused view may lead to a crash.
|
88ae2e2abeda94f3ec1d87ffad35e7e5d716a94f |
|
06-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am d9c99124: Merge "Incorrect temporary detach of accessibility focused view may lead to a crash." into jb-mr1-dev * commit 'd9c99124d4870361c7c1e28fb78adf245eb1305a': Incorrect temporary detach of accessibility focused view may lead to a crash.
|
c8860602726d771c69a3fefedfa03419d1c03b1c |
|
06-Oct-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Incorrect temporary detach of accessibility focused view may lead to a crash. 1. If an app naither reattaches nor removes detached view that has accessibility focus, an exception in the drawing of accessibility focus occurs since we are trying to compute the focused rect by offseting the bounds of the focused view in coords of the root but the focused one is not attached. bug:7297191 Change-Id: Ib69d52e474b8ea365754f5311f5e809bd757dd1a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
82fa5ffbbc4a0b9842c809d0d4fdbec622819f38 |
|
04-Oct-2012 |
Romain Guy <romainguy@google.com> |
am bf8d8e73: am 5971d03f: am f7ee2a03: Merge "Fix rendering artifacts on tiled renderers Bug #7275145" into jb-mr1-dev * commit 'bf8d8e73e4123f529845e88de6d74b62853b9786': Fix rendering artifacts on tiled renderers Bug #7275145
|
5971d03f233c52d697e55ee83d8e514adac21527 |
|
04-Oct-2012 |
Romain Guy <romainguy@google.com> |
am f7ee2a03: Merge "Fix rendering artifacts on tiled renderers Bug #7275145" into jb-mr1-dev * commit 'f7ee2a03c1f930db4b20c04225f496ada97e646b': Fix rendering artifacts on tiled renderers Bug #7275145
|
dfab363807b3b44be4032e410f016e0a0d018426 |
|
03-Oct-2012 |
Romain Guy <romainguy@google.com> |
Fix rendering artifacts on tiled renderers Bug #7275145 This change fixes ViewRoot and adds extra debug information. It does not solve the problem entirely. Another CL will. Change-Id: I7e604ba38aad7f421769783dcbd998d6905ab2d9
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e3eb2c7754b2eea24e9c1f6551cf15fc533b3262 |
|
29-Sep-2012 |
Jean-Baptiste Queru <jbq@google.com> |
am 3c45765a: Merge from jb-mr1-aah-dev * commit '3c45765a2a15c685aa28b74f626c6c10c909c133': (21 commits) Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Send Trackball clicks instead of Enter Key for taps Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Fix auto-merger error in I74c0644c6938d28c20c42d88d995ffb56a71d703 Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Import translations. DO NOT MERGE Converts hover touch events to trackball events Import translations. DO NOT MERGE Import translations. DO NOT MERGE ...
|
06e7a030c029294a4c03c87652cfc161f8f29b3a |
|
28-Sep-2012 |
Chet Haase <chet@google.com> |
am d3451ae8: am 4af11461: Merge "Force redraw of new/resized windows" into jb-mr1-dev * commit 'd3451ae8e07fefad529d6abf4f48ca83e177b4fb': Force redraw of new/resized windows
|
22904334a0866c15dde8287d3f103e39cb76df5a |
|
28-Sep-2012 |
Chet Haase <chet@google.com> |
am 4af11461: Merge "Force redraw of new/resized windows" into jb-mr1-dev * commit '4af1146145550dee904bcaa744abfa582c8756b7': Force redraw of new/resized windows
|
391fef0f5d99c13df3d86a5798614c0695046732 |
|
28-Sep-2012 |
Chet Haase <chet@google.com> |
Force redraw of new/resized windows Our use of the GL flag EGL_SWAP_BEHAVIOR_PRESERVED_BIT caused a problem with windows that are resized, where some of the contents were not being updated when the window was first placed/resized. The fix is to force the window to redraw completely when it is first resized. Issue #7246918 Label selection view disappears Change-Id: I3562141569502af581a3d63b1290c598abb57ade
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2c9141206ceaee137ef02dd1a145ae7ca1a48283 |
|
26-Sep-2012 |
Ben Pietrzak <bpietrzak@google.com> |
Send Trackball clicks instead of Enter Key for taps Change-Id: Ib1e77a1bdad81db18f84bb33402e9144517a0f4c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
749bbe97ee775fb997df0270f0f9fc7470efb4f6 |
|
24-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
am 55fd212f: am c0e1f268: Merge "Fix issue #7184877: Calendar Locksceen Widget crashes and forces phone to reboot" into jb-mr1-dev * commit '55fd212f914a28d0a64202a09f0127fa0a1b4175': Fix issue #7184877: Calendar Locksceen Widget crashes and forces phone to reboot
|
a611a53292049e070f39f5d98092a06415f4e6ec |
|
24-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
am c0e1f268: Merge "Fix issue #7184877: Calendar Locksceen Widget crashes and forces phone to reboot" into jb-mr1-dev * commit 'c0e1f268451550368d1d3d3558f8ce2459ed5713': Fix issue #7184877: Calendar Locksceen Widget crashes and forces phone to reboot
|
3b84206bba19ae2bc9decef6a88f97951c2a205c |
|
23-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #7184877: Calendar Locksceen Widget crashes and forces phone to reboot Don't kill the system uid if we are running out of RAM. Change-Id: Ie1818a3241fc80d4dfa19f8e8bdad22d164d7baa
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
18c166bcd68a141d932717b8d3abd863093d7c50 |
|
22-Sep-2012 |
Romain Guy <romainguy@google.com> |
am 3f7c246f: Merge "Update layers in a single batch at the beginning of a frame Bug #7186819" into jb-mr1-dev * commit '3f7c246f3ea85af9fb98cba37387bb55658d4614': Update layers in a single batch at the beginning of a frame Bug #7186819
|
7fdf367d7ad63c90c13ddf553d05f58030454191 |
|
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
am 0b697061: am 3f7c246f: Merge "Update layers in a single batch at the beginning of a frame Bug #7186819" into jb-mr1-dev * commit '0b69706103dc6ddf765fa2e86265a6428f6728bb': Update layers in a single batch at the beginning of a frame Bug #7186819
|
11cb642756093a4af901b1525375b1eb2b5c3e2b |
|
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
Update layers in a single batch at the beginning of a frame Bug #7186819 Change-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b4641b5cd45331102c831635dd1856c35e1ba6e0 |
|
21-Sep-2012 |
Justin Koh <justinkoh@google.com> |
Merge "Converts hover touch events to trackball events" into jb-mr1-aah-dev
|
971405797f1131d69cb77ac449e66ac4a6276100 |
|
13-Sep-2012 |
Chet Haase <chet@google.com> |
Handle requestLayout() calls during layout Calling requestLayout() during a layout pass is inadvisable, but happens often enough in applications (especially when it occurs in very indirect means that the application may not easily be able to control) that we need to handle the situation without breaking. In particular, applications that have run across this problem have had artifacts which are difficult to debug (like things just not showing up on the screen) and also difficult to fix. One of the side-effects of the problem is that it leaves the view hiearchy in an unpredictable state where some views have requested layout and are waiting to be layed out while the root view has not received those requests, so it is never calling layout on those views. The fix is to try to do the 'right' thing, while avoiding getting into an inifinite loop (which could result from calling layout, which calls requestLayout(), which causes another layout, which ...). The solution is two-tier: we handle all requests that happen during layout by delaying them until after the current layout is done. We then process those requests and call layout again. If we receive more requests during that second layout, we post them to the next frame, to allow us to finish the current one. Issue #7155974 handle requestLayout() during layout more robustly Change-Id: I9d13c405be28a19c86add22210e69817ddddaf8b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
dc4b5037a33956b3b04a45a24ef272e81eeb5438 |
|
10-Sep-2012 |
Ben Pietrzak <bpietrzak@google.com> |
Converts hover touch events to trackball events Change-Id: Ibb843fcc0c525250a775d3b3567f8ca964f525c0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
603f6de35f21d74ae242d52d501f4f5c25ff4f4c |
|
15-Sep-2012 |
Chet Haase <chet@google.com> |
Fix occasional crash bug with layers Launcher occasionally crashes with a stack trace indicating that the memory of a Layer object is corrupt. It is possible for us to delete a Layer structure and then, briefly, use it to draw a DisplayList again before that DisplayList gets recreated (without the layer that got deleted). When this happens, if the memory got corrupted, it's possible to crash. The fix is to add Layer to the other objects which we currently refcount (bitmaps, shaders, etc.). Then instead of deleting a Layer, we decrement the refcount. We increment when creating it, then increment it again when it's referenced from a DisplayList. Then we decrement the refcount instead of deleting it, and decrement when we clear a DisplayList that refers to it. Then when the refcount reaches 0, we delete it. Issue #6994632 Native crash in launcher when trying to launch all apps screen Change-Id: I0627be8d49bb2f9ba8d158a84b764bb4e7df934c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f84208faf8e9ab7bbf81224006662fc3219c6ad4 |
|
14-Sep-2012 |
Romain Guy <romainguy@google.com> |
Prevent crash when invalidating all Views Bug #7165793 A ViewRootImpl's root view can be null. Check for this condition to prevent an NPE invalidateWorld(). Other messages perform a similar check to properly handle the case where mView == null. Change-Id: I5bcfc41c48a469d38b21be74df2f6c715b0f9352
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
dcd8c81bf4beb719888b6be1b9418303c9075938 |
|
13-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Merge "Propagate systemUiVisibility changes to window manager" into jb-mr1-dev
|
7eac0f557cd87486d0f10b7c72e25aeb195a4351 |
|
13-Sep-2012 |
Craig Mautner <cmautner@google.com> |
Propagate systemUiVisibility changes to window manager The mAttachInfo.mSystemUiVisibility value was changing in View.dispatchAttachedToWindow but mAttachInfo.mRecomputeGlobalAttributes was not being set. Consequently ViewRootImpl.collectViewAttributes was returning without updating the subtreeSystemUiVisibility. This is fixed by calling needGlobalAttributesUpdate in dispatchAttachedToWindow. WIthin ViewRootImpl.collectViewAttributes the assignment to subtreeSystemUiVisibility was only being made if mAttachInfo.mSystemUiVisibility was changed within collectViewAttributes. But mAttachInfo.mSystemUiVisibility was changing outside of collectViewAttributes in dispatchAttachedToWindow. Consequently subtreeSystemUiVisibility was never updated. By looking for a mismatch between subtreeSystemUiVisibility and mSystemUiVisibility subtreeSystemUiVisibility gets assigned whenever it is out of sync. Fixes bug 7091817. Change-Id: I1e97a7dec14dc9594876175ae26370fb9030a8a6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8d5e6f8d4a2bd39c6656cbac4f963d2527d707bf |
|
11-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Maybe fix issue #7146119: exception in FragmentManager Seems like we should never be dispatching input events to windows that currently don't have focus. Change-Id: I524796df69f3fdda4147cb37e7b85b79bad88762
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b38070caa5143ab9fd1883e0c7c879533a480bc7 |
|
24-Aug-2012 |
Victoria Lease <violets@google.com> |
IME support for trackball and generic motion events Trackball and generic motion events now pass through the IME in case it would like to handle them before passing them on to the view hierarchy. While I was at it, I also... ...fixed the documentation on InputMethodService.onKeyUp() ...added documentation to InputMethodService.onTrackballEvent() ...added trackball and generic motion events to the "input" command ...fixed input consistency verification involving ACTION_OUTSIDE Bug: 7050005 Change-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1cf70bbf96930662cab0e699d70b62865766ff52 |
|
06-Aug-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Screen magnification - feature - framework. This change is the initial check in of the screen magnification feature. This feature enables magnification of the screen via global gestures (assuming it has been enabled from settings) to allow a low vision user to efficiently use an Android device. Interaction model: 1. Triple tap toggles permanent screen magnification which is magnifying the area around the location of the triple tap. One can think of the location of the triple tap as the center of the magnified viewport. For example, a triple tap when not magnified would magnify the screen and leave it in a magnified state. A triple tapping when magnified would clear magnification and leave the screen in a not magnified state. 2. Triple tap and hold would magnify the screen if not magnified and enable viewport dragging mode until the finger goes up. One can think of this mode as a way to move the magnified viewport since the area around the moving finger will be magnified to fit the screen. For example, if the screen was not magnified and the user triple taps and holds the screen would magnify and the viewport will follow the user's finger. When the finger goes up the screen will clear zoom out. If the same user interaction is performed when the screen is magnified, the viewport movement will be the same but when the finger goes up the screen will stay magnified. In other words, the initial magnified state is sticky. 3. Pinching with any number of additional fingers when viewport dragging is enabled, i.e. the user triple tapped and holds, would adjust the magnification scale which will become the current default magnification scale. The next time the user magnifies the same magnification scale would be used. 4. When in a permanent magnified state the user can use two or more fingers to pan the viewport. Note that in this mode the content is panned as opposed to the viewport dragging mode in which the viewport is moved. 5. When in a permanent magnified state the user can use three or more fingers to change the magnification scale which will become the current default magnification scale. The next time the user magnifies the same magnification scale would be used. 6. The magnification scale will be persisted in settings and in the cloud. Note: Since two fingers are used to pan the content in a permanently magnified state no other two finger gestures in touch exploration or applications will work unless the uses zooms out to normal state where all gestures works as expected. This is an intentional tradeoff to allow efficient panning since in a permanently magnified state this would be the dominant action to be performed. Design: 1. The window manager exposes APIs for setting accessibility transformation which is a scale and offsets for X and Y axis. The window manager queries the window policy for which windows will not be magnified. For example, the IME windows and the navigation bar are not magnified including windows that are attached to them. 2. The accessibility features such a screen magnification and touch exploration are now impemented as a sequence of transformations on the event stream. The accessibility manager service may request each of these features or both. The behavior of the features is not changed based on the fact that another one is enabled. 3. The screen magnifier keeps a viewport of the content that is magnified which is surrounded by a glow in a magnified state. Interactions outside of the viewport are delegated directly to the application without interpretation. For example, a triple tap on the letter 'a' of the IME would type three letters instead of toggling magnified state. The viewport is updated on screen rotation and on window transitions. For example, when the IME pops up the viewport shrinks. 4. The glow around the viewport is implemented as a special type of window that does not take input focus, cannot be touched, is laid out in the screen coordiates with width and height matching these of the screen. When the magnified region changes the root view of the window draws the hightlight but the size of the window does not change - unless a rotation happens. All changes in the viewport size or showing or hiding it are animated. 5. The viewport is encapsulated in a class that knows how to show, hide, and resize the viewport - potentially animating that. This class uses the new animation framework for animations. 6. The magnification is handled by a magnification controller that keeps track of the current trnasformation to be applied to the screen content and the desired such. If these two are not the same it is responsibility of the magnification controller to reconcile them by potentially animating the transition from one to the other. 7. A dipslay content observer wathces for winodw transitions, screen rotations, and when a rectange on the screen has been reqeusted. This class is responsible for handling interesting state changes such as changing the viewport bounds on IME pop up or screen rotation, panning the content to make a requested rectangle visible on the screen, etc. 8. To implement viewport updates the window manger was updated with APIs to watch for window transitions and when a rectangle has been requested on the screen. These APIs are protected by a signature level permission. Also a parcelable and poolable window info class has been added with APIs for getting the window info given the window token. This enables getting some useful information about a window. There APIs are also signature protected. bug:6795382 Change-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
df2390adc3879b7040425e75e4acc64729612b9c |
|
30-Aug-2012 |
Craig Mautner <cmautner@google.com> |
Don't die(immediate) if from performTraversals. The Drive application was calling PopupWindow.dismiss from within onMeasure. This caused dispatchDetachedFromWindow to be called from within performTraversals. Since dispatchDetachedFromWindow destroys much of what performTraversals uses this was a disaster waiting to happen. This fix adds a check for seeing if die(immediate=true) is being called from within performTraversals. If it is then die doesn't execute doDie immediately, but instead treats it as a call to die(immediate=false). Fixes bug 6836841. Change-Id: I833289e12c19fd33c17a715b2ed2adcf8388573a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
98365d7663cbd82979a5700faf0050220b01084d |
|
20-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Refactor for multi-display support. Split WindowManagerImpl into two parts, the WindowManager interface implementation remains where it is but the global communications with the window manager are now handled by the WindowManagerGlobal class. This change greatly simplifies the challenge of having separate WindowManager instances for each Context. Removed WindowManagerImpl.getDefault(). This represents the bulk of this change. Most of the usages of this method were either to perform global functions (now handled by WindowManagerGlobal) or to obtain the default display (now handled by DisplayManager). Explicitly associate each new window with a display and make the Display object available to the View hierarchy. Add stubs for some new display manager API features. Start to split apart the concepts of display id and layer stack. since they operate at different layers of abstraction. While it's true that each logical display uniquely corresponds to a surface flinger layer stack, it is not necessarily the case that they must use the same ids. Added Display.getLayerStack() and started using it in places where it was relatively easy to do. Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4702a856973a553deb82f71b1d3b6c3db5dbf4ba |
|
18-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
More view hierarchy, fragment debugging. Add a View.toString() method. Rename all of the View private flags to have a PFLAG prefix to avoid going insane trying to figure out which constant goes with which flag. Activity.dump() now includes a summary of the activity's view hierarchy, using the View.toString() method. All exceptions thrown by FragmentManager now perform a dump of the owning activity state, where appropriate. Change-Id: I6482e397e10cb5a0612ab02ce6ed5131823437a6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c89b14bba0f6cc2c91629080617f7ed215f697f3 |
|
08-Aug-2012 |
Romain Guy <romainguy@google.com> |
It seems that apparently useless public APIs are actually useful Bug #6953651 Change-Id: Ic47ce504e63262711f5d3edc76f7d2b9c12471ad
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
17112ad8a21a77620eb1ff14dcf8bdd6b7859712 |
|
07-Aug-2012 |
Romain Guy <romainguy@google.com> |
Cleanup of libhwui Change-Id: Ib7f5771548462c00027a8ad57badfb68c50644f9
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 |
|
07-Aug-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Window position not reported if the window is not moved. 1.If a window is shown but never moved the window window is never notified for its current location. Therefore, accessibility nodes do not contain correct bounds in screen coordinates. bug:6926295 Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
908aecc3a63c5520d5b11da14a9383f885b7d126 |
|
01-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
Start moving away from DisplayMetrics.DENSITY_DEVICE. This puts in most of the infrastructure needed to allow us to switch between different densities at run time. The main remaining uses of the global are to initialize the Bitmap object (not sure what to do about that since it doesn't have anything passed in the constructor to get this information from), and being able to load drawables if we need a different density than what was preloaded by zygote. Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6881a10557acf3b0270de54799d6f19437acf584 |
|
27-Jul-2012 |
Craig Mautner <cmautner@google.com> |
Small step towards supporting multiple displays Change-Id: I353449c2b464394988c7e0203656b5851a0c9127
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a8b9defade5b937d4ad64f9aff4bca792298f43c |
|
23-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Stop using raw display size except in window manager. We don't actually need the raw size in these places. The logical size is good enough. Starting to move dependencies on surface flinger and window manager out of the Display class. Change-Id: I2065bee8e5bf7f42c5a452dd1e8479e40ebb0d37
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
63cf0752226383cfc8fa35a3233413301b49fab7 |
|
25-Jul-2012 |
Romain Guy <romainguy@google.com> |
Merge "Make HardwareRenderer able to target generic Surface objects"
|
786fc93d71b833ab6b02b0c7ea5e30f25cceeedf |
|
25-Jul-2012 |
Romain Guy <romainguy@google.com> |
Make HardwareRenderer able to target generic Surface objects Change-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
23e7c35ab5d43242d35b1019ce1a50bfb495cd27 |
|
20-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove dead code in window manager. The 'nest' parameter is always false so we can get rid of support for redundantly added views. Change-Id: I30c6a856797bdc72c4e1aa4cb26b930a33ce9a16
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c9c9a48e7bafae63cb35a9aa69255e80aba83988 |
|
16-Jul-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Removing a workaround for incorrect window position on window move. 1. The window manager was not notifying a window when the latter has been moved. This was causing incorrect coordinates of the nodes reported to accessibility services. To workaround that we have carried the correct window location when making a call from the accessibility layer into a window. Now the window manager notifies the window when it is moved and the workaround is no longer needed. This change takes it out. 2. The left and right in the attach info were not updated properly after a report that the window has moved. 3. The accessibility manager service was calling directly methods on the window manager service without going through the interface of the latter. This leads to unnecessary coupling and in the long rung increases system complexity and reduces maintability. bug:6623031 Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fbf885b652272013f44da71e9f77923333bf62eb |
|
10-Jul-2012 |
Craig Mautner <cmautner@google.com> |
Merge "Notify client side of window movement."
|
05e91ed5a7ea17f021e1811166942a7d758e1cce |
|
03-Jul-2012 |
Chet Haase <chet@google.com> |
Force invalidates on non-visible views to traverse the hierarchy An optimization prunes invalidates on views which are not inside their parent's bounds. This works in most cases, but it is possible to run a situation where a view has been invalidated (and is thus waiting to be redrawn), but the pruning logic ensures that that draw call will not happen. Further, when/if the view comes into the bounds of its parent again, it may still not be redrawn, because now future invalidates on the view are noop'd because it is already in an invalidated state (and thus will not propagate invalidates up the hierarchy). The fix is to remove the optitmization. This will cause some overhead sending the invalidation request up to the view root, but this overhead is minimal (and only extra for cases of out-of-bounds views), and the more expensive part of rendering these views will still not be done since the view root will avoid re-drawing the hierarchy when the dirty rectangle is empty. Issue #6773607 Layered views animating from offscreen sometimes remain invisible Change-Id: Ia2c1a2b9d3e7f267253cb325ccceff1e7fdbe8bd
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
27e2da7c171afa39358bbead18fbe3e6b8ea6637 |
|
03-Jul-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Remove the accessibility focus search code. 1. In JellyBean we have added some APIs to search for next accessibility focus in various directions and set accessibility focus from hover. However, we have decided that there is not clean answer for how this should behave and the APIs were hidden. Now the accessibility service is responsible for that. The unused code is now taken out. 2. This patch also takes out the hidden attribute accessibiligyFocusable since we moved the responsibility for implementing focus search strategy to accessibility services and we did not need that for Jellybean which is a good sign that this is not needed. I general this is one less thing for an app developer to worry about. We can add this if needed later. bug:6773816 Change-Id: I0c858d72c93a2b7ff1f8f35a08d33ec4b9eb85fd
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
5702d4dfb5b81491f873a3617f8d8fc8dc5279e6 |
|
30-Jun-2012 |
Craig Mautner <cmautner@google.com> |
Notify client side of window movement. Add a one way method to notify Views that the window has moved on the screen. Fixes issues arising from the IME popping up and translating the window that uses it. Accessibility was left unaware of these movements and was drawing the box around the wrong widgets. Similarly PopupWindow used getLocationOnScreen to determine how much screen real estate was above and below the anchor point to determine where to put an anchored window. Fixes bug 6623031. Change-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c32b2091d6441e7709342ca62f0976fc4a0367e4 |
|
18-Jun-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
am 45c4a8df: am ec7c7ebf: Merge "API for finding accessibility focus in virtual tree not needed." into jb-dev * commit '45c4a8df9487f53af37ded1f5a1ebe500e89b493': API for finding accessibility focus in virtual tree not needed.
|
45a02e0809c14a52aa24658666df0d41ce661857 |
|
18-Jun-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
API for finding accessibility focus in virtual tree not needed. 1. The function for finding where the accessibility focus in a virtual node tree presented by an AccessibilityNodeProvider is not needed API since the framework already keeps track of the accessibility focused virtual node in order to draw the focus rectangle. This API adds unnecessary complexity to developers of AccessibilityNodeProviders. bug:6675330 Change-Id: I84774686b06a995073a39e45b8ef22f2cd04b773
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
04ddf3c0508f3d50e6ab82cecc0adc92f52b7803 |
|
14-Jun-2012 |
Jeff Brown <jeffbrown@google.com> |
Allow applications to recover from IME related ANRs. Timeout after 2.5 seconds. Because communication with an IME occurs asynchronously using oneway binder calls, it's possible for an input event that was delegated to the IME to be dropped on the floor. When this happens, the app (not the IME!) will get blamed for the problem and will ANR forever. Even if an event is not dropped on the floor, we should eventually time out event dispatch to the IME if it's being too slow. This patch implements a timeout on all events delegated to the IME. When the timeout expires, the event is marked as having not been handled by the IME and the application gets a crack at it. We also write a message to the log when this occurs. Ensure that we do not invoke the event finished callback while holding the InputMethodManager's lock to avoid potential deadlocks. Fixed a minor bug where the InputMethodManager would not remember the id of the current input method. This caused the log messages and dumpsys state to print "null" as the current input method id. Bug: 6662465 Change-Id: Ibb3ddeb087ee6998996b0b845134e16a18aa3057
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
54ab347fdde0e4d14d923cca80e5bcc7b879fc52 |
|
14-Jun-2012 |
Romain Guy <romainguy@google.com> |
Don't create a giant layer for all notifications Bug #6642475 When expanding the status bar, create one layer per notification instead of a single giant layer for the pile of notifications. This prevents layer creation failure when the total height of the notifications is larger than the maximum allowed texture size in OpenGL ES 2.0. This change only enables layers on notifications that will be visible once the notification area is fully expanded. Change-Id: I3c791a66cf5ac0973f3a65cfcd84b95209d580f3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
9d0908919a65a4f3158a8fc50aaf320dfed36278 |
|
12-Jun-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #6634325: View.setKeepScreenOn and... ...MediaPlayer.setScreenOnWhilePlaying seem broken We need to correctly clear the keep screen on flag when the view hierarchy request is gone... and to do that, we need to keep the actual state of the flag requested by the app. Also when the app changes its state, we need to compute the proper value based on both the app request and any requests in the view hierarchy. Bug: 6634325 Change-Id: I060e9a34a10faffbaa77c06098cf21298bb4969f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
527ee91b60426b5a344e9905c7f9a14d6d26219e |
|
11-Jun-2012 |
Romain Guy <romainguy@google.com> |
Prevent crash in WebView when disabling the hw renderer Bug #6596807 A crash would occur in the following situation: - WebView registers a functor with the hardware renderer - The hardware renderer gets disabled - WebView attemps to unregister its functor Unregistering the functor fails because the hardware renderer is now disabled. When the renderer becomes enabled again, the functor is invoked, which leads to a native crash. This change simply allows functors to always be unregistered, even when the renderer is disabled. A disabled renderer only means that it will not be used for rendering; as such, unregistering a functor is a valid operation and should be allowed. Change-Id: I0ff897a0cca7e048c609033215cd0f7f5c940bcc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
86783474fdec98a22bc22e224462767eab13e273 |
|
07-Jun-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Cannot interact with dialogs when IME is up and on not touch explored popups. 1. If the last touch explored location is within the active window we used to click on exact location if it is within the accessibility focus otherwise in the accessibility focus center. If the last touch explored location is not within the active window we used to just click there. This breaks in the case were one has touch explored at a given place in the current window and now a dialog opens *not* covering the touch explored location. If one uses swipes to move accessibility focus i.e. to traverse the dialog without touching it one cannot activate anything because the touch explorer is using the last touch explored location that is outside of the active window e.g the dialog. The solution is to clear the last touch explored location when a window opens or accessibility focus moves. If the last touch explored location is null we are clicking in the accessibility focus location. bug:6620911 2. There is a bug in the window manager that does not notify a window that its location has changed (bug:6623031). This breaks accessibility interaction with dialogs that have input because when the IME is up the dialog is moved but not notified. Now the accessibility layer gets incorrect location for the accessibility focus and the window bounds. The soluion is when the accessibility manager service calls into the remove thress to obtain some accessibility node infos it passes the window left and top which it gets from the window manager. These values are used to update the attach info window left and top so all accessibility node infos emitted from that window had correct bounds in screen coordinates. bug:6620796 Change-Id: I18914f2095c55cfc826acf5277bd94b776bda0c8
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
932b7f6765968bd526c03512f3805fbc3924dc29 |
|
06-Jun-2012 |
Chris Craik <ccraik@google.com> |
Revert "Add more temporary logging for investigating detachFunctor" bug:6608646 This reverts commit 8857b2f76abad1e4ec742dfd85d0c997880be376 Change-Id: I1563b5974c52b84201ae448298f804eb0dcc235d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8857b2f76abad1e4ec742dfd85d0c997880be376 |
|
05-Jun-2012 |
Chris Craik <ccraik@google.com> |
Add more temporary logging for investigating detachFunctor bug:6596807 Change-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
41ee465734d0006797a8fd36e88976c1e85d161c |
|
01-Jun-2012 |
Chris Craik <ccraik@google.com> |
Force webview invalidates on unsuccessful functor attach Functor attach should always be successful, but adding a fallback just in case. Also invalidates the WebView on initial content arriving. bug:6511995 Change-Id: Ibca16505afec9f693ea4a7cc4966cd6d7353725c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
38c2ece5ce4c59f30e5832779bf1d86d68b1c442 |
|
24-May-2012 |
Romain Guy <romainguy@google.com> |
Clear bitmap references from display lists as early as possible Bug #6555840 Apps like Google+ with large bitmaps displayed in listivews could run into memory issues because of these references. Change-Id: I39486bda13ce00c5a3b6481139ad54547506a8b4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f40628645df750991ced8dde803dd57225fca04f |
|
22-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Accessibility focus and input focus do not sync - part 2" into jb-dev
|
525ae2075cf96d3a2ac67cd3a662069fd579f42d |
|
22-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility focus and input focus do not sync - part 2 1. This patch has somecode that syncs input and accessibility focus or tries to put accessibility focus on the top most container that was missed by the previous patch. Change-Id: I08f21670b1c6e9f363d5714b1976fb52d84baae4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e2d7f182ff2db26723089206c7d01f6695bd3dfc |
|
21-May-2012 |
Romain Guy <romainguy@google.com> |
Remove DEBUG_LATENCY flag This flag was replaced with the more versatile and powerful systrace. Change-Id: I2267698f86fe9ba9e1102856795ca641001fecd5
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
13b907353f18215b52b5ceda24bbf520d91d72a1 |
|
21-May-2012 |
Romain Guy <romainguy@google.com> |
Remove unused, obsolete debug code All these features have either been abandonned and left un-maintained for years or can be replaced by systrace. Change-Id: I42e4579a8078744047e5fe08a7a15254970b09bc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
dddcd22b7ea56b1d3e31f2bbc35c80cb047de879 |
|
19-May-2012 |
Romain Guy <romainguy@google.com> |
Don't crash on Surface.unlockAndPost() but log & try again Bug #6482593 Change-Id: Ib477b58e2b7a6cb19a87d05f2aa0448e04d82f7c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
648337b3a8024b22a77977024cdf171f83999d56 |
|
17-May-2012 |
Adam Powell <adamp@google.com> |
Merge "Fix a bug where late-invalidating views with animations would be held for too long by ViewRootImpl" into jb-dev
|
3e3c4ee0475ad7096201a5f00f2e9be22fb891dd |
|
17-May-2012 |
Adam Powell <adamp@google.com> |
Fix a bug where late-invalidating views with animations would be held for too long by ViewRootImpl Change-Id: I1e32bf2683b50f8834f215a753f881b5d4b8dbc9
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c8d2668bc4506aa9e771931534c6379cf687d41e |
|
17-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Add systrace method tags for measure and layout. Change-Id: I739f6384b390d1b34b09b622ca0f752de1dd7304
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
413baf8a03db180607efaca0bb60c15a153c4322 |
|
16-May-2012 |
Romain Guy <romainguy@google.com> |
Don't draw onto a hw surface using the software renderer Bug #6485955 If an invalidate gets scheduled right before the EGL surface is destroyed, the next draw pass is done in software. This causes the software renderer to connect to the surface forever which prevents the hardware renderer from coming back when the screen is turned back on. The fix here is to ignore the draw request when hw acceleration is requested but not yet available. Proper software fallback will still happen when an error is encountered with hardware rendering (in which case hw acceleration will not be marked as requested anymore.) Change-Id: I1edc4a51c8dd38240aa2345092a18a081a756fc1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
78cb7cf7d1d82834c4405650a17e387370004570 |
|
15-May-2012 |
Chris Wren <cwren@android.com> |
Allow animations to run past cancelled draws, if the view is visible. Bug: 6475482 Change-Id: Iecb3a04744282135efa0049f1b70a46dc4a6bb23
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
791fd31a68c59395952005886ba799169f80a29a |
|
15-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility focus traversal in virtual nodes. 1. Finished the implementation of support for maintaining accessibility focus in view with virtual descendants. 2. Finished the NumberPicker implementation of virtual subtree such that all requred attributes are reported and ensuring that it support accessibility focus in its virtual descentants. 3. Fixed a bug where if a predecessor of the view that is accessiiblity focused is removed the accessibliity focus host in ViewRootImpl is not cleared leading to a crash when trying to draw the accessibility focus highlight.: bug:6472646 bug:6433864 Change-Id: I3645642b87b4a26025c0b2ba9dfaad92d11a48f1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8ce2d78aa89e89e9a5607d8809bf6d248508a531 |
|
15-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Improving accessibility focus traversal." into jb-dev
|
e5dfa47d84668376b84074c04570fb961870adeb |
|
09-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Improving accessibility focus traversal. 1. Now the views considered during the accessibility focus search are the ones that would get accessibility focus when thovered over. This way the user will get the same items i.e. feedback if he touch explores the screen and uses focus traversal. This is imperative for a good user experience. 2. Updated which focusables are considered when searching for access focus in ViewGroup. Generally accessibility focus ignores focus before/after descendants. 3. Implemented focus search strategy in AbsListView that will traverse the items of the current list (and the stuff withing one item before moving to the next) before continuing the search if forward and backward accessibility focus direction. 4. View focus search stops at root namespace. This is not the right way to prevent some stuff that is not supposed to get a focus in a container for a specific state. Actually the addFocusables for that container has to be overriden. Further this approach leads to focus getting stuck. The accessibility focus ignores root names space since we want to traverse the entire screen. 5. Fixed an bug in AccessibilityInteractionController which was not starting to search from the root of a virtual node tree. 6. Fixed a couple of bugs in FocusFinder where it was possible to get index out of bounds exception if the focusables list is empty. bug:5932640 Change-Id: Ic3bdd11767a7d40fbb21f35dcd79a4746af784d4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
85afd1b6f871d471fdff1980134676a5f1690525 |
|
13-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Implement new window cropping. The window manager now performs the crop internally, evaluating it every animation from, to be able to update it along with the surface position. Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
78b8ef3f3ad8ab935f677d8d672db0d97bff8119 |
|
07-May-2012 |
Jamie Gennis <jgennis@google.com> |
Surface: replace active rect with window crop This change replaces the setActiveRectCrop method on Surface, which was called from app processes, with the setWindowCrop method that is to be called from the window manager. Bug: 6299171 Change-Id: Ica51efcd8c488a526e7013b83d80df4856694519
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cf67578c7f99492273a8f8446dd18ddc5af2ae76 |
|
11-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #6475693: OnSystemUiVisibilityChangeListener reporting... ...incorrect visibility when the ActionBar overflow menu is opened Don't report layout flags in system UI visibility callback. Update docs to reflect this. Change-Id: Icfa411b5537de037cafbcac04991101e8b9138c4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a482d36635cbfbbfb4aee9fc79d55514bf6b7464 |
|
10-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fixed typo in findAccessibilityFocus API." into jb-dev
|
57aab755441a28c2e5c78c35a57b940afc2799e0 |
|
10-May-2012 |
alanv <alanv@google.com> |
Fixed typo in findAccessibilityFocus API. Change-Id: I3ca1448792a1b712f781c1bfa73823ca08ea3d39
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
571d4cbeec4adad050b8e188770e7e7dedc558f1 |
|
10-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Fix bugs in fallback key handling." into jb-dev
|
a53de0629f3b94472c0f160f5bbe1090b020feab |
|
09-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Add callback hack to find out when to load system properties. Use this to reload the trace and layout bounds properties. This is ONLY for debugging. Change-Id: I1c4bdb52c823520c352c5bac45fa9ee31160793c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fd23e3ed976b22b9a92ddb2cb3a46f9d2a0ce23f |
|
09-May-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix bugs in fallback key handling. If a fallback key is generated using a key plus a modifier, then it's possible we might get a different fallback key generated if the modifier has changed. PhoneWindowManager needs to remember which fallback is last generated for a given key code so that it can apply the same fallback action. When generating cancellation events, it's important to have preserved the policyFlags of the original event. Otherwise we may not dispatch the cancellation properly. For example, some actions are not performed if the POLICY_FLAG_TRUSTED is not specified. Remember the metaState associated with a key event so we can include it when canceled. Tell the policy when a fallback is being cancelled so that it can clean up its state. After a SEARCH shortcut is invoked, clear the flag indicating that a shortcut is pending. This is to prevent SEARCH from getting stuck down in the case where we might forget to send the up. (Shouldn't happen anymore after the prior fixes.) Bug: 5616255 Change-Id: I68f0a9679c7af464eaf31c099f2aa50b53fecf1f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2a0f228a30c85a124f92a5a7c1b10a81cf69af6d |
|
08-May-2012 |
Romain Guy <romainguy@google.com> |
Invalidate display lists immediately when views are removed/added quickly The deferred invalidation of display list could cause problems with view like TextureView who destroy resources when detached from the window but only recreate them later at draw time. This would cause temporary flashes or other visual glitches on screen. Change-Id: I018488ba09743df21c6434ea610813014fb80a85
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ec4d9040f603b57b1706299f51838b6cc68b8f99 |
|
06-May-2012 |
Romain Guy <romainguy@google.com> |
Merge "Attempt to recover from apps destroying their window at draw time Bug #6436642" into jb-dev
|
1f59e5c19bf72f88eed6f8de08b0a879d999f61c |
|
06-May-2012 |
Romain Guy <romainguy@google.com> |
Attempt to recover from apps destroying their window at draw time Bug #6436642 Change-Id: I906b9c68225683f97b9c97c153a1132cf9ac6509
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
139e5aa1da51b27231ab36344cf2d0dafab23f1e |
|
06-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #6404215: New ActionBar auto-hide can conflict with application The action bar now maintains separate states for the things that can impact its visibility (calls from the app, action mode, system UI) so that the changes in these won't incorrectly mix together. Also added a hack to force the status bar to be shown when showing the action bar for an action mode, when the UI is in a state where the action bar would be shown with a gap above where the status bar is. Change-Id: Ib0950a7f585c5d2c9e77d11b237ba6e150f15ebd
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3556c9a8068497d0de8964fd3be719c68eae1f00 |
|
05-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Implement cropping of windows based on system UI elements. Start calling Surface.setActiveRect(). Change-Id: I94197059c971c6ab7820e615ea8f285482b86c75
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3fe38c0e73e520c6c38454a41a4cffa16faaf67d |
|
04-May-2012 |
Craig Mautner <cmautner@google.com> |
Retain current visibility when copying layoutparam The LayoutParams members, systemUiVisibility and subtreeSystemUiVisibility are derived values rather than app-generated values. When copying LayoutParams members make sure these values are not overwritten. Overwriting them was causing the STATUS_BAR_DISABLE_XXX flags to be overwritten exposing elements that should have remained hidden. Fixes bug b6374541. Change-Id: Iaae4b4167e1b148bbdba4d05f473844f7fa3bf8d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fb68fdb9c6e915e38ec5c7f4b0d526b613e4ea8b |
|
01-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Accessibility should not change input focus behavior." into jb-dev
|
cf8a3b82241a320f568f8448184df6da5bbcf152 |
|
01-May-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility should not change input focus behavior. 1. Removed a change in the input focus behavior I forgot to take out when submitted the main accessibility focus patch. Ugh.. bug:6320098 Change-Id: Id7942e8aac64ba4bf6df7e19f733fa70b368d1bb
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1e945c4fda0242e8ae02ccb7a2262556f41b42cc |
|
30-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Merge "Add system insets to windows." into jb-dev
|
2f87014ea2f177e715032b07004d05e2549a63a8 |
|
30-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Enabling accessibility focus only if explore by touch is on." into jb-dev
|
18dcf2f1cd3f84cbdffd8394e16475a13d6243df |
|
30-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Fixing crash when drawing accessibility focus indicator." into jb-dev
|
07b726c86b1d0b22e51b08cb4234f8212864d9f9 |
|
30-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Enabling accessibility focus only if explore by touch is on. 1. Now we will enable the accessibility focus only if Explore by Touch is enabled. Enabling this feature allows a blind user to touch the screen and set the accessibility focus at this location as well as get spoken feedback. Also an accessibility service can move the accessibility as a result of user gestures detected only if Explore by Touch is enabled. Since we will handle some gestures by default if not accessibility service does so to provide reasonable built-in navigation of the UI by "objects" we need the accessibility focus functionality. bug:6383361 Change-Id: I13ce6072a90f5838c7656379788144c99a772bf0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
5c58de3a523a384c47b0b1e0f5dd9728a74cd9f7 |
|
29-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Add system insets to windows. This will be used to determine which parts of a window a completely hidden by system UI elements (status bar, nav bar, system bar) so that they can be clipped out from rendering. Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1d74df226619101d905d872c8e609d315409695e |
|
29-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing crash when drawing accessibility focus indicator. 1. Added a lacking null check for the accessibility node info returned by an accessibility node provider. If the provider implementation is not correct this may happen. 2. Added clearing of the current accessibility focused node when the window focus changes. Now it is cleared in every case and if it happens that accessibility is enabled when the window gets focus, the accessibility focus will be properly set. bug:6381296 Change-Id: Ieea1b07762745e6d932fc4ed4febfe77760b25b7
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
79c6346100b555a8a3d51b3b1c34dbbe99305b9a |
|
28-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
Merge "When a window is first shown only draw once while animating." into jb-dev
|
771526c88f5cc4b56a41cb12aa06a28d377a07d5 |
|
28-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Resample touch events on frame boundaries. Bug: 6375101 Change-Id: I8774e366306bb2b6b4e42b913525bf25b0380ec3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
12d3a94397c33fdb773a1eaaaa13cab80bf0c571 |
|
27-Apr-2012 |
Dianne Hackborn <hackbod@google.com> |
When a window is first shown only draw once while animating. On some hardware allocating a new graphics buffer is quite expensive, which blocks updates to the UI. This can cause glitches when performing window animations. To reduce these glitches, the view hierarchy will now only allow itself to be drawn once if its window is being shown while the window manager is animating, not resuming draws until it is told that the animation is done. Change-Id: Ie15192f6fddbd0931b022a72c76ddd55ca266d84
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
330314c6fb7c178c0f0da65d6aa8c9e7d3004568 |
|
27-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Simplify the consume before traversal heuristic. Calling doConsumeBatchedInput() from doTraversals() can result in redundant attempts to consume batched input. Instead of making this call directly, just schedule consume batched input at the same time as traversals are scheduled. This should have the same overall effect. Bug: 6375101 Change-Id: Ie5799e6a68fedbd1978cca6d03852d9a7f1b1f64
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
97d5c418730946a0332f601cd140ed0b12ea19c1 |
|
27-Apr-2012 |
Jeff Brown <jeffbrown@google.com> |
Remove unused pipelining optimization. Bug: 6375101 Change-Id: I5fcbbabfafae9e1661adac7b2becc748e42c4b66
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47 |
|
24-Apr-2012 |
Romain Guy <romainguy@google.com> |
Prevent WebView from crashing when detached from the window Bug #6365056 WebView enqueues a functor in the hardware renderer to handle animations and this functor is called at a later time by the hardware renderer. However, the functor was not removed from the queue when WebView was removed from the window. This could cause the hardware renderer to attempt to execute an invalid functor and lead to a crash. Change-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
72de2062485f711c9a2291c204fd2c0fb6c4e20f |
|
21-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Adding support for traversing the content of a node info at granularity."
|
aa780c110922148a6a4ba06734bb2b0bb8c98f93 |
|
20-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Adding support for traversing the content of a node info at granularity. 1. A view that creates an accessibility node info may add to the info a list of granularity labels. These are granularities by which the source view can iterate over its content. For example a text view may support character, word link while a web view may additionally support buttons, tables, etc. There are actions on accessibility node info to go to the next/previous at a given granularity which is passesed as an argument. 2. Added Bundle argument to the APIs for performing accessibility actions. This is generic and extensible. bug:5932640 Change-Id: I328cbbb4cddfdee082ab2a8b7ff1bd7477d8d6f9
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d6b1098e1f46530528dfea415655468ec994bbb6 |
|
20-Apr-2012 |
John Reck <jreck@google.com> |
Support fallback action if unhandled key event Bug: 6023055 Change-Id: Ib802c4b9d1b606f9ea7a5081e30c50b5bd78e30c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b78c284bd535f48207750e5a406474ea22381edd |
|
19-Apr-2012 |
Chet Haase <chet@google.com> |
Always execute actions on the runQueue A View that is not attached will place posted actions on the ViewRoot's runQueue. Previously, this runQueue was only ever executed during a layout (during performTraversals()). This works in most situations (a View that is added to or removed from the hierarchy will force a layout in general), but not in all cases. For example, a new View being added to a ListView will not cause a layout, so any actions posted to that View prior to its being attached will not be run until some indeterminate time later when a layout happens to run. The fix is to execute the (typically empty) runQueue on every traversal. Issue #6366678 View.post() ignored when called on an unattached ListView item Change-Id: I94e6fdd9da6bb57fd83b547f8d742cd0ddfecbd6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f01d3dd710e8b86b3e2846af62835158fd4e0db1 |
|
18-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Adding some more gestures and actions for accessibility."
|
005b83b0c62d3d0538f0d566b08bd457015ec661 |
|
17-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Adding some more gestures and actions for accessibility. 1. Added more gesture for accessibility. After a meeting with the access-eng team we have decided that the current set of gestures may be smaller than needed considering that we will use four gestures for home, back, recents, and notifications. 2. Adding actions for going back, home, opening the recents, and opening the notifications. 3. Added preliminary mapping from some of the new gestures to the new actions. 4. Fixed a bug in the accessibility interaction controller which was trying to create a handled on the main looper thread which may be null if the queried UI is in the system process. Now the context looper of the root view is used. 5. Fixed a bug of using an incorrect constant. 6. Added a missing locking in a couple of places. 7. Fixed view comparison for accessibilityt since it was not anisymmetric. bug:5932640 bug:5605641 Change-Id: Icc983bf4eafefa42b65920b3782ed8a25518e94f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
09dd116cd39613a3736dbbf028544e1655002430 |
|
17-Apr-2012 |
John Reck <jreck@google.com> |
Fix a bug with enterTouchMode removing focus Bug: 6347083 Fix an issue where enterTouchMode would remove focus from the view that already has focus and is focusableInTouchMode. This causes issues with WebView, as it updates internal state when losing and gaining focus. Change-Id: I5c1f72cc08baf3445e2be9e0496606a53fb9929e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4213804541a8b05cd0587b138a2fd9a3b7fd9350 |
|
20-Mar-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility focus - framework Usefulness: Keep track of the current user location in the screen when traversing the it. Enabling structural and directional navigation over all elements on the screen. This enables blind users that know the application layout to efficiently locate desired elements as opposed to try touch exploring the region where the the element should be - very tedious. Rationale: There are two ways to implement accessibility focus One is to let accessibility services keep track of it since they have access to the screen content, and another to let the view hierarchy keep track of it. While the first approach would require almost no work on our part it poses several challenges which make it a sub-optimal choice. Having the accessibility focus in the accessibility service would require that service to scrape the window content every time it changes to sync the view tree state and the accessibility focus location. Pretty much the service will have to keep an off screen model of the screen content. This could be quite challenging to get right and would incur performance cost for the multiple IPCs to repeatedly fetch the screen content. Further, keeping virtual accessibility focus (i.e. in the service) would require sync of the input and accessibility focus. This could be challenging to implement right as well. Also, having an unlimited number of accessibility services we cannot guarantee that they will have a proper implementation, if any, to allow users to perform structural navigation of the screen content. Assuming two accessibility services implement structural navigation via accessibility focus, there is not guarantee that they will behave similarly by default, i.e. provide some standard way to navigate the screen content. Also feedback from experienced accessibility researchers, specifically T.V Raman, provides evidence that having virtual accessibility focus creates many issues and it is very hard to get right. Therefore, keeping accessibility focus in the system will avoid keeping an off-screen model in accessibility services, it will always be in sync with the state of the view hierarchy and the input focus. Also this will allow having a default behavior for traversing the screen via this accessibility focus that is consistent in all accessibility services. We provide accessibility services with APIs to override this behavior but all of them will perform screen traversal in a consistent way by default. Behavior: If accessibility is enabled the accessibility focus is the leading one and the input follows it. Putting accessibility focus on a view moves the input focus there. Clearing the accessibility focus of a view, clears the input focus of this view. If accessibility focus is on a view that cannot take input focus, then no other view should have input focus. In accessibility mode we initially give accessibility focus to the topmost view and no view has input focus. This ensures consistent behavior accross all apps. Note that accessibility focus can move hierarchically in the view tree and having it at the root is better than putting it where the input focus would be - at the first input focusable which could be at an arbitrary depth in the view tree. By default not all views are reported for accessibility, only the important ones. A view may be explicitly labeled as important or not for accessibility, or the system determines which one is such - default. Important views for accessibility are all views that are not dumb layout managers used only to arrange their chidren. Since the same content arrangement can be obtained via different combintation of layout managers, such managers cannot be used to reliably determine the application structure. For example, a user should see a list as a list view with several list items and each list item as a text view and a button as opposed to seeing all the layout managers used to arrange the list item's content. By default only important for accessibility views are regared for accessibility purposes. View not regarded for accessibility neither fire accessibility events, nor are reported being on the screen. An accessibility service may request the system to regard all views. If the target SDK of an accessibility services is less than JellyBean, then all views are regarded for accessibility. Note that an accessibility service that requires all view to be ragarded for accessibility may put accessibility focus on any view. Hence, it may implement any navigational paradigm if desired. Especially considering the fact that the system is detecting some standard gestures and delegates their processing to an accessibility service. The default implementation of an accessibility services performs the defualt navigation. bug:5932640 bug:5605641 Change-Id: Ieac461d480579d706a847b9325720cb254736ebe
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
067b091d46c3c2d11a33d25e81c8348fb609b7ab |
|
13-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility query APIs report invisible views. 1. The accessibility querying APIs failed to check whether all predecessors of a view are visible before reporting it. bug:6291855 Change-Id: I364a6f08e8d02c7105c00c9fdff0fec033829554
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
aa6f3de253db6c0702de0cc40028750c1fcfb22c |
|
10-Apr-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Some view not shown on the screen are reported for accessibility. 1. Some applications are keeping around visible views off screen to improve responsiveness by drawing them in layers, etc. While such a view is not visible on the screen the accessibility layer was reporting it since it was visible. Now the check is improved to verify whether the view is attached, is in visible window, is visible, and has a rectangle that is not clipped by its predecessors. 2. AccessibilityNodeInfo bounds in screen were not properly set since only the top left point was offset appropriately to take into account any predecessor's transformation matrix and the not transformed width and height were used. Now the bounds are properly offset. bug:6291855 Change-Id: I244d1d9af81391676c1c9e0fe86cf4574ff37225
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
edbca1285e4757900e43d31087451d1953555d7d |
|
05-Apr-2012 |
Romain Guy <romainguy@google.com> |
Make sure we clean up after ourselves Because of the mAdded=false statement a few lines above, a large section of doDie() was not executed. Things would eventually get cleaned up but it seems better to do it at the right time. Change-Id: I1a2f3a8e05057dd7cd7205b6d3f9c145d6c0241d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
25eba5c5029bd91ff7e396b2cca0e4ce024124ed |
|
05-Apr-2012 |
Romain Guy <romainguy@google.com> |
Add a new OnDrawListener to ViewRoot This can be used by app to efficiently listen for draw passes. This listener is guaranteed to not generate any garbage unlike OnPreDrawListener. Change-Id: Ida40d11a3f8a5d2617bafe722906ee5c9af48602
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3a3a6cfd8ec12208ca75c0d0d871d19d76c34194 |
|
26-Mar-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new feature to let apps layout over status bar / system bar. The main change is a few new flags you can supply to View.setSystemUiVisibility(). One is a new visibility mode, SYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as the global FLAG_FULLSCREEN option for windows, but driven as part of the system UI state. There are also three new flags for telling the framework that you would like to have your application's UI ignore screen decorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going behind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN for ignoring full screen decorations (that is the status bar). In combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE to have the framework report consistent insets to your application. When using NO_NAVIGATION, when the user taps the screen we now also automatically clear ONLY_CONTENT, so that we atomically show both UI elements. This should make it easy for apps like video players that want to move between fully full-screen and regular modes. The ActionBar has also been extended when in overlay mode so that it will adjust the system window insets to also account for its space, and allow it to be hidden using the new SYSTEM_UI_FLAG_FULLSCREEN. Change-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fa8b27c858438554fd94c014de959d8ec6b208bb |
|
30-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve responsiveness by always consuming batched events. Change-Id: I2eb88f8fde97ce0cd820f39da4ebe8698a7db95c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a08f3e866a46c990e786defa95013ee0313b0887 |
|
30-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Enable vsync traversals by default."
|
ebb2d8d708c5c58c79ae88ac2bd10450a856f702 |
|
24-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Enable vsync traversals by default. Improved how the various callbacks are managed and sequenced to reduce code duplication. Added a heuristic to avoid postponing traversals until the next vsync frame if we did not actually do any drawing during the previous frame. This helps in the very common case where drawing occurs in response to input. Change-Id: I277d9eeaf50408f8745a3cfd181db1d140770658
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a998dff5d49a423aaf7097aa8f96bf5bdc681d25 |
|
24-Mar-2012 |
Romain Guy <romainguy@google.com> |
Destroy the hardware renderer when ViewRootImpl's die is post-poned Bug #6109035 ViewRootImpl.die() can be invoked in such a way that doDie() will be executed later. On memory limited device, an eglTerminate() may happen before doDie() is executed which leads to unstable behaviors. This change makes sure the renderer is destroyed as soon as possible. Change-Id: I3322410cdd744b464951e2055aeade6069d1d673
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
006f0e41abca961bade88908d7ef56ae63c429fb |
|
21-Mar-2012 |
Craig Mautner <cmautner@google.com> |
Override not drawing to screen when screen is off. A new test had been added to performDraw to provide an early return if the screen was off. Drawing should have proceeded however if mReportNextDraw is set. Otherwise views that turn on the screen (such as the alarm) are not shown. Fixes bug 6168158. Change-Id: If9013d9dbd39d60ee1de8aeb3e0c1facbc5a7db5
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7b2f8b8fb7064a1d3b6d942b978c30c24c9d7299 |
|
20-Mar-2012 |
Romain Guy <romainguy@google.com> |
Pre-scale bitmaps on the native heap Change-Id: I9819b532b89a997ab775b31ffee46445f1d16e20
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
51e4d4db296c252641161b39e98f49acebc46062 |
|
16-Mar-2012 |
Romain Guy <romainguy@google.com> |
Better implementation to clear display lists Change-Id: I58f9af4bae70a8117db1455a50c0c5daf19b2f4a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
481c1570dc5cdf58265b53f657801709dd05d1df |
|
09-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Add Java wrappers for new atrace functionality. Instrument a few parts of the input dispatcher and the view hierarchy. Change-Id: I49285c9fb3502253baa1ffed60f521b8c24fccaf
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
df813c03b16ed32c25a8c8fee82a7a98088ac940 |
|
09-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Merge "Use the Choreographer for Drawable animations."
|
bb9908b828a8cfd5965553be66faa6af89973697 |
|
08-Mar-2012 |
Romain Guy <romainguy@google.com> |
Dispatch screen state change events to Views Bug #6120957 Using this new callback, views can interrupt and resume their animations or other periodic tasks based on the current state of the display. Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
250069bf6bf3d7e2ef85c49e0cd100e80c3c8b7d |
|
08-Mar-2012 |
Romain Guy <romainguy@google.com> |
Merge "Ignore draw requests when the display is off"
|
7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c |
|
06-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Use the Choreographer for Drawable animations. Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
5bebea436e631aa77aeb0f39a34c9e830c9638f5 |
|
06-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Rename remove callback methods. Change-Id: Ib9ef32fedbe0db2ea5efd250693915d626d7d8ae
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6cb7b46c56449e84434b11eb12f9b8977fcd0398 |
|
05-Mar-2012 |
Jeff Brown <jeffbrown@google.com> |
Change widgets to post invalidate to the animation timer. Change-Id: I8377e924529fb9d8afd8a834003a17de616e8e87
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
7e4e561bc717a6eea4e0d06ec4173ad27420425f |
|
05-Mar-2012 |
Romain Guy <romainguy@google.com> |
Ignore draw requests when the display is off When WindowManagerService's events are enabled/disabled, the state of the display is dispatched to the known windows. This allows ViewRootImpl to ignore draw requests until the screen is turned back on. This can potentially lead to significant battery savings. For instance, a launcher widget showing a repeating animation will cause the CPU and the GPU to wake up regularly without this change. (Change submitted by Intel and merged manually) Change-Id: I7f93b0e60c3e6de1705f619e80860c36b1cdb978
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
00d0c14a0fe8e6dff8dd3e230ee4b61dd275f860 |
|
24-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Regression: Cannot query the content of certain windows. 1. A bad merge on my part caused ViewRootImpl not to register for accessibility state change. bug:6064348 Change-Id: Idf7b8b444e9021e9d9ec3749164cfe448c8268ab
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
42d840b91d161fe98ebe3305f011b3b0f6d4561c |
|
24-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Fixing issues with the AccessibilityNodeInfo cache."
|
57c7fd5a43237afc5e8ef31a076e862c0c16c328 |
|
24-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing issues with the AccessibilityNodeInfo cache. 1. Before there were two caches one in the app process that kept track only the ids of infos that were given to a querying client and one in the querying client that holds the infos. This design requires precise sync between the caches. Doing that is somehow complicated since the app has cache for each window and it has to intercept all accessibility events from that window to manage the cache. Each app has to have a cache for each querying client. This approach would guarantee that no infos are fetched twice but due to its stateful nature and the two caches is tricky to implement and adds unnecessary complexity. Now there is only one cache in the client and the apps are stateless. The client is passing flags to the app that are a clue what nodes to prefetch. This approach may occasionally fetch a node twice but it is considerably simpler and stateless from the app perspective - there is only one cache. Fetching a node more than once does not cause much overhead compared to the IPC. Change-Id: Ia02f6fe4f82cff9a9c2e21f4a36747de0f414c6f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cfef12374c15b11b3c2a1041582be9728152e15d |
|
23-Feb-2012 |
Romain Guy <romainguy@google.com> |
Perform early intersect to avoid unnecessary draws Change-Id: I48d61c4488e622f93733d8e53a50c93e6a20166d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
0d04e245534cf777dfaf16dce3c51553837c14ff |
|
21-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Improving accessibility APIs used for UI automation. 1. UiTestAutomationBridge was accessing the root node in the active window by tracking the accessibility event stream and keeping the last active window changing event. Now the bridge is stateless and the root node is fetched by passing special window and view id with the request to the system. 2. AccessibilityNodeInfos that are cached were not finished, i.e. not sealed, causing exception when trying to access their children or rpedecessors. 3. AccessibilityManagerService was not properly restoring its state after the UI automation bridge disconnects from it. I particular the devices was still in explore by touch mode event if no services are enabled and the sutomation bridge is disconnected. 4. ViewRootImpl for the focused window now fires accessibility events when accessibility is enabled to allow accessibility services to determine the current user location. 5. Several missing null checks in ViewRootImpl are fixed since there were scenraios in which a NPE can occur. 6. Update the internal window content querying tests. 7. ViewRootImpl was firing one extra focus event. bug:6009813 bug:6026952 Change-Id: Ib2e058d64538ecc268f9ef7a8f36ead047868a05
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
539ee8716b4f81260bab2e9f3dc5d88d81c99985 |
|
04-Feb-2012 |
Adam Powell <adamp@google.com> |
Add transient state tracking to Views Transient state is temporary bookkeeping that Views need to perform that the app should not need to be aware of. Examples include text selection regions and animation state. Transient state is a problem for AdapterViews like ListView that do view recycling. Unless the app takes responsibility for tracking and restoring transient state as if it were a part of the adapter's data set, it cannot correctly recycle views. Selections disappear when an EditText is scrolled out of sight and animations seem to play on the wrong views. Views can now flag themselves as having transient state. (As the name implies, this should be a temporary condition.) If a ViewGroup contains a child with transient state, that ViewGroup also has transient state. AbsListView's recycler now tracks views with transient state separately. Views with transient state will be retained, and until a data set change occurs the same view will be reused for that position instead of calling the adapter's getView() method. The API to set and check transient state is currently hidden. Change-Id: Idfd8eaac2c548337686d8d9f98fda4c64be5b8a0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
e0dbd002750856e55d637e883b629e09adfc8a4e |
|
16-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Mark input and sensor messages as asynchronous. Set a barrier on traversals. Vsync is still not enabled by default in this patch so there should be no observable effect from these changes. Change-Id: Ie12081b95a8f1e81ed686edf747cc62f2e044b7e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
a175a5b7ea3682cb58cca7f9726d0b8171cd549d |
|
16-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Encapsulate the ViewRootImpl's handler. This change makes it much easier to make sense of the messages that get posted to the ViewRootImpl's handler by encapsulating their point of dispatch within the ViewRootImpl itself. As part of this change, the View.AttachInfo now carries a reference to the ViewRootImpl itself, which simplifies some code that used to try to find the ViewRootImpl by getting the root view's parent. In principle, it might have been nice to hide the ViewRootImpl from the View hierarchy but in practice the two were coupled in many ways. Change-Id: I51ebccdf5f8c8c505cd6f17cdf594174d041dc54
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4a06c8008b2edd6677f9a411af79b0a4971b87fe |
|
16-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Simplify Choreographer API. Removed the listeners and schedule animation / draw methods. Instead all requests are posted as one-shot callbacks, which is a better match for how clients actually use the Choreographer. Bug: 5721047 Change-Id: I113180b2713a300e4444d0d987f52b8157b7ac15
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b36a0ac9709e9e1c7098559c0435cfbdc09e6c46 |
|
15-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Incorrect behavior of View clear focus v2.0. The framework tries to have a focused view all the time. For that purpose when a view's focus is cleared the focus is given to the first focusable found from the top. The implementation of this behavior was causing the following issues: 1. If the fist focusable View tries to clear its focus it was getting focus but the onFocusChange callbacks were not properly invoked. Specifically, the onFocusChange for gaining focus was called first and then the same callback for clearing focus. Note that the callback for clearing focus is called when the View is already focused. 2. If not the first focusable View tries to clear focus, the focus is given to another one but the callback for getting focus was called before the one for clearing, so client code may be mislead that there is more than one focused view at a time. 3. (Nit) The implementaion of clearFocus and unFocus in ViewGroup was calling the super implementaion when there is a focused child. Since there could be only one focused View, having a focused child means that the group is not focused and the call to the super implementation is not needed. 4. Added unit tests that verify the correct behavior, i.e. the focus of the first focused view cannot be cleared which means that no focus change callbacks are invoked. The callbacks should be called in expected order. Now the view focus clear precedes the view focus gain callback. However, in between is invoked the global focus change callback with the correct values. We may want to call that one after the View callbacks. If needed we can revisit this. Change-Id: I8cfb141c948141703093cf6fa2037be60861cee0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
dd29f8c4e3db3338bc055302145c3bc51a27566f |
|
15-Feb-2012 |
Amith Yamasani <yamasani@google.com> |
Merge "Revert "Incorrect behavior of View clear focus.""
|
73eb97f628b298c7bd032aa9db11dadf05f5b539 |
|
15-Feb-2012 |
Amith Yamasani <yamasani@google.com> |
Revert "Incorrect behavior of View clear focus." This reverts commit c6fd88e213703a581fe4680259981f09ae0444f2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
072ec96a4900d4616574733646ee46311cb5d2cb |
|
07-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Implement batching of input events on the consumer side. To support this feature, the input dispatcher now allows input events to be acknowledged out-of-order. As a result, the consumer can choose to defer handling an input event from one device (because it is building a big batch) while continuing to handle input events from other devices. The InputEventReceiver now sends a notification when a batch is pending. The ViewRoot handles this notification by scheduling a draw on the next sync. When the draw happens, the InputEventReceiver is instructed to consume all pending batched input events, the input event queue is fully processed (as much as possible), and then the ViewRoot performs traversals as usual. With these changes in place, the input dispatch latency is consistently less than one frame as long as the application itself isn't stalled. Input events are delivered to the application as soon as possible and are handled as soon as possible. In practice, it is no longer possible for an application to build up a huge backlog of touch events. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I42c01117eca78f12d66d49a736c1c122346ccd1d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f9261d20b3773f9785d98f32f62ccfedefba8083 |
|
03-Feb-2012 |
Jeff Brown <jeffbrown@google.com> |
Process input events immediately when received. Reduce the latency for handling input events by ensuring that they are handled as soon as they are received from the dispatcher. This also makes it easier for the input system to intelligently batch motion events. This is part of a series of changes to improve input system pipelining. Bug: 5963420 Change-Id: I0b3f6cbb3de5ac3c4eed35dfc774d6bd4a0b07fc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c38fa1f63674971f9ac6ced1a449fb81026b62f7 |
|
02-Feb-2012 |
Chet Haase <chet@google.com> |
Add Developer Option setting for Animator scaling. This new setting allows users to set a scale factor for the duration and startDelay of all Animator-based animations. This setting is very similar to the Transition animation scale and Window animation scale settings, except this one applies specifically to Animator animations. The property is only accessible by users through the Settings UI, not programmatically. The value applies system-wide and is picked up per-process at the time of the first ValueAnimator construction. This is an update to a previous CL; this approach uses the WindowManager to store the animator scale settings, instead of SystemProperties. Change-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bbf1bc8b6c3348265930ce08506efbbd3c5ab61f |
|
02-Feb-2012 |
Romain Guy <romainguy@google.com> |
Merge "Add optional metadata to initiliaze the render threat."
|
211370fd943cf26905001b38b8b1791851b26adc |
|
02-Feb-2012 |
Romain Guy <romainguy@google.com> |
Add optional metadata to initiliaze the render threat. The render threat is likely to break your application if you initiate it. As such it must be explicitely requested using the following meta-data tag in your manifest's application tag: <meta-data android:name="android.graphics.renderThread" android:value="true" /> Change-Id: Ibf0a48af2a0d091562bf6907eac970e3d1d601c4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2eecea3b48ece6f45b30fef9b41dc20075ccc94f |
|
01-Feb-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Speedup the accessibility window querying APIs and clean up."
|
c6fd88e213703a581fe4680259981f09ae0444f2 |
|
26-Jan-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Incorrect behavior of View clear focus. The framework tries to have a focused view all the time. For that purpose when a view's focus is cleared the focus is given to the first focusable found from the top. The implementation of this behavior was causing the following issues: 1. If the fist focusable View tries to clear its focus it was getting focus but the onFocusChange callbacks were not properly invoked. Specifically, the onFocusChange for gaining focus was called first and then the same callback for clearing focus. Note that the callback for clearing focus is called when the View is already focused. Also note that at the end the View did not clear its focus, hence no focus change callbacks should be invoked. 2. If not the first focusable View tries to clear focus, the focus is given to another one but the callback for getting focus was called before the one for clearing, so client code may be mislead that there is more than one focused view at a time. 3. (Nit) The implementaion of clearFocus and unFocus in ViewGroup was calling the super implementaion when there is a focused child. Since there could be only one focused View, having a focused child means that the group is not focused and the call to the super implementation is not needed. 4. Added unit tests that verify the correct behavior, i.e. the focus of the first focused view cannot be cleared which means that no focus change callbacks are invoked. The callbacks should be called in expected order. Now the view focus clear precedes the view focus gain callback. However, in between is invoked the global focus change callback with the correct values. We may want to call that one after the View callbacks. If needed we can revisit this. Change-Id: Iee80baf5c75c82d3cda09679e4949483cad475f1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
79311c4af8b54d3cd47ab37a120c648bfc990511 |
|
18-Jan-2012 |
Svetoslav Ganov <svetoslavganov@google.com> |
Speedup the accessibility window querying APIs and clean up. 1. Now when an interrogating client requires an AccessibilibtyNodeInfo we aggressively prefetch all the predecessors of that node and its descendants. The number of fetched nodes in one call is limited to keep the APIs responsive. The prefetched nodes infos are cached in the client process. The node info cache is invalidated partially or completely based on the fired accessibility events. For example, TYPE_WINDOW_STATE_CHANGED event clears the cache while TYPE_VIEW_FOCUSED removed the focused node from the cache, etc. Note that the cache is only for the currently active window. The ViewRootImple also keeps track of only the ids of the node infos it has sent to each querying process to avoid duplicating work. Usually only one process will query the screen content but we support the general case. Also all the caches are automatically invalidated so not additional bookkeeping is required. This simple strategy leads to 10X improving the speed of the querying APIs. 2. The Monkey and UI test automation framework were registering a raw event listener for accessibility events and hence perform connection and cache management in similar way to an AccessibilityService. This is fragile and requires the implementer to know internal framework stuff. Now the functionality required by the Monkey and the UI automation is encapsulated in a new UiTestAutomationBridge class. To enable this was requited some refactoring of AccessibilityService. 3. Removed the *doSomethiong*InActiveWindow methods from the AccessibilityInteractionClient and the AccessibilityInteractionConnection. The function of these methods is implemented by the not *InActiveWindow version while passing appropriate constants. 4. Updated the internal window Querying tests to use the new UiTestAutomationBridge. 5. If the ViewRootImple was not initialized the querying APIs of the IAccessibilityInteractionConnection implementation were returning immediately without calling the callback with null. This was causing the client side to wait until it times out. Now the client is notified as soon as the call fails. 6. Added a check to guarantee that Views with AccessibilityNodeProvider do not have children. bug:5879530 Change-Id: I3ee43718748fec6e570992c7073c8f6f1fc269b3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
44d79747b5e434e8f43928b5548442c65e40e5c3 |
|
13-Jan-2012 |
Romain Guy <romainguy@google.com> |
Remove unused parameter Change-Id: I0896b2cdb9f1fa9c5e191e4ea425e22ac6f10f29
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bdc18b28eb04b8c8cc00313096f8bfb142e407e3 |
|
09-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
am 03e63427: am 8e0ecbfc: Merge "Shortcut keys should be handled on down, not up." into ics-mr1 * commit '03e634270d880407316b51fac2278e604fc82703': Shortcut keys should be handled on down, not up.
|
7bedf2449041a425899448cb672e91b0a5c97c62 |
|
08-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Shortcut keys should be handled on down, not up. Bug: 5720360 Change-Id: I3afc278e576ea992c76f024c8b6bad14b214239c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
07069a04ef2e52ad6cebd9041b5288bebd811a38 |
|
07-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix PIN pad. Some widgets apparently inject keys into the ViewRoot by sending a DISPATCH_KEY message to its handler. Ugh. Bug: 5711577 Change-Id: Ibe9aaf705095d152ec866c536f31f5d85e27b97f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
96e942dabeeaaa9ab6df3a870668c6fe53d930da |
|
01-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Use a Choreographer to schedule animation and drawing. Both animations and drawing need to march to the beat of the same drum, but the animation system doesn't know abgout the view system and vice-versa so neither one can drive the other. We introduce the Choreographer as a drummer to keep everyone in time and ensure a magnificent performance. This patch enabled VSync based animations and drawing by default. Two system properties are provided for testing purposes to control the behavior. "debug.choreographer.vsync": Enables vsync based animation timing. Defaults to true. When false, animations are timed by posting delayed messages to a message queue in the same way they used to be before this patch. "debug.choreographer.animdraw": Enables the use of the animation timer to drive drawing such that drawing is synchronized with animations (in other words, with vsync or the timing loop). Defaults to true. When false, layout traversals and drawing are posted to the message queue for execution without any delay or synchronization in the same way they used to be before this patch. Stubbed out part of the layoutlib animation code because it depends on the old timing loop (opened bug 5712395) Change-Id: I186d9518648e89bc3e809e393e9a9148bbbecc4d
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
92cc2d8dc35f2bdd1bb95ab24787066371064899 |
|
02-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Remove type tests when recycling input events. Change-Id: I1c2d5980a763c457a0546bbf601e686c601a4c03
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
32cbc3855c2a971aa5a801fd339fb6a37db91a1a |
|
01-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Refactor InputQueue as InputEventReceiver. This change simplifies the code associated with receiving input events from input channels and makes it more robust. It also does a better job of ensuring that input events are properly recycled (sometimes we dropped them on the floor). This change also adds a sequence number to all events, which is handy for determining whether we are looking at the same event or a new one, particularly when events are recycled. Change-Id: I4ebd88f73b5f77f3e150778cd550e7f91956aac2
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4952dfd16a0f839559ffa78f5016394caf85294f |
|
01-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Ensure input events are processed in-order in the application. As it turns out, it used to be possible for there to be multiple input events simultaneously in flight in an application. Although it worked, it made it hard to reason about what was going on. The problem was somewhat exacerbated by the introduction of a queue of "InputEventMessage" objects as part of an earlier latency optimization. This change restores order from chaos and greatly simplifies the invariants related to input event dispatch within the application. Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
95db2b20d7bc0aaf00b1d4418124f5cf0a755d74 |
|
01-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve latency instrumentation. Change-Id: I4edfa0a5659d207f7e46722e48ffa1dc43d2aa13
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c0b7f65ae0594e19d1272e5caf2d83638041d19c |
|
29-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
am 496f6e2a: am b54980d1: Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1 * commit '496f6e2ad656c5bb8a277e191554d16abd290b58': Fix issue #5588689: Black camera preview after coming back from gmail
|
b54980d1d4d903f68cdfa952256afff01902cd94 |
|
29-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1
|
d3ea6b40bb8f0fbc2a877963db1ab4fa0fc02b2f |
|
29-Nov-2011 |
Chet Haase <chet@google.com> |
am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating back from landscape." into ics-mr1 * commit '3892889952b0ad3fa0b095c96d8ae2ae110585e2': Fix flashing wifi dialog after rotating back from landscape.
|
08837c246c9c27902c59b41c8661c2f27a4aa2bc |
|
28-Nov-2011 |
Chet Haase <chet@google.com> |
Fix flashing wifi dialog after rotating back from landscape. There was an error in some of the OpenGL layer logic such that we would occasionally set up a layer for rendering and then not clean up when it was done. This caused future OpenGL rendering to go into that layer instead of to the buffers being displayed on the screen, resulting in artifacts including flashes and displaying of stale content. This happened specifically when using the wifi settings dialog with the InputMethod keyboard displayed, but it was probably visible in other situations as well. Issue #5628248: Flickering/flashing after entering password for WiFi Change-Id: I38139f620b310f4309570fa7224552d2ee633999
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6d05fd3c795088ac60f86382df5a66d631e8a0cb |
|
19-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5588689: Black camera preview after coming back from gmail Make surface management between SurfaceView and the window manager much more controlled, to ensure that SurfaceView always gets to report the current surface is destroyed before the window manager actually destroys it. Also a small tweak to allow windows that have a wallpaper background to still have a preview window. This makes launching home after it has been killed feel much more responsive. Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3526b00a53a2582a51ff8b98ac1400a48f351107 |
|
22-Nov-2011 |
Romain Guy <romainguy@google.com> |
am c26e4d18: am 8cd39e3a: Merge "Notify views when EGL resources are about to be destroyed Bug #5639899" into ics-mr1 * commit 'c26e4d18a20ab0b3e769fb3e547994f1c27d6713': Notify views when EGL resources are about to be destroyed Bug #5639899
|
31f2c2e94656530fbf6282803e62edb47e9a894d |
|
21-Nov-2011 |
Romain Guy <romainguy@google.com> |
Notify views when EGL resources are about to be destroyed Bug #5639899 Change-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1333742bedc9b462024302f302e3a7f27053df66 |
|
11-Nov-2011 |
Akwasi Boateng <akwasi.boateng@ti.com> |
am cb0db030: Merge branch \'ics-mr1-plus-aosp\' of ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp * commit 'cb0db0306b5849a35d3d99eea1b34ce019c6f0d8': Make the overridden ImageView#setVisibility remotable Clamp non-monotonic stats instead of dropping. DO NOT MERGE. Fix leak in LayoutTransition Fix lastVisible/global rects Fix Wimax-less build. Fix leak in LayoutTransition Deferring wallpaper update to improve workspace scrolling (issue 5506959) Terminate EGL when an app goes in the background boot animation is dithered and scaled Fix NdefRecord byte-stream constructor. PopupWindow dismiss() can get into a recursive loop. Fold WiMAX state into the mobile RSSI. Remove dedicated wimax icon to fix RSSI layout.
|
8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695 |
|
10-Nov-2011 |
Romain Guy <romainguy@google.com> |
Terminate EGL when an app goes in the background This does not happen on high end gfx devices. This happens only if only one EGL context is initialized in the current process. Change-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2a639347aebb56febdef21a78c70fb0433adc1e5 |
|
05-Nov-2011 |
Chet Haase <chet@google.com> |
resolved conflicts for merge of aa4d2f69 to master Change-Id: Iadb63ecf52d8bd2911276fa3db55a43c9c378620
|
1f4786bbe1ed7ae54b94cd52c0e1a4a826fecd68 |
|
02-Nov-2011 |
Chet Haase <chet@google.com> |
Improve Launcher drag performance. Launcher swiping looks choppy. It's because we deliver the motion events of the drags asynchronously, and sometimes we may get an event to redraw before the motion event is posted, so we end up drawing again without updating to the latest motion information. This fix makes input event processing more proactive. Every time we run ViewRootImpl.performTraversals() (which is what happens whenever we need to layout, measure, and/or draw), we first process all pending input events, ensuring that we are completely up-to-date with posted events prior to drawing, so that the drawing we do is synchronous with the events we've received. This eliminates the choppiness and means that we can now get the full refresh rate on the screen with drag events. The fix was done for Launcher, but it is pervasive in the system, so this may fix other laggy drag behavior as well. Change-Id: I8dbed6acadc2662f317f736e769f536f555701aa
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f31aba7346c6991ac8848f3b3992651a68781a10 |
|
29-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing the build breakage due to bad merge. Change-Id: I2804bccc44e061229c3f7b2ad9e00b9e0a0ba916
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f79f476fd1e25d3d7bf77e890d064a503537e939 |
|
29-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
resolved conflicts for merge of c00d2ddc to master Change-Id: I075cc5b5df2909152ee463f8a0c7534344b47c62
|
af5b4f471df108ffbe1c3861d18b2141710d7bf8 |
|
28-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Fixing a memory leak in accessibility enteraction APIs. 1. AccessibilityInteractionConnection was non-static inner class, hence keeping a handle to the enclosing ViewRootImpl resulting in leaking activities. bug:5525412 Change-Id: Ie438861663d623d503995844125d9e15d677fc32
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
021078554b902179442a345a9d080a165c3b5139 |
|
04-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Adding APIs to enable reporting virtual view hierarchies to accessibility serivces. Added an interface that is the contract for a client to expose a virtual view hierarchy to accessibility services. Clients impement this interface and set it in the View that is the root of the virtual sub-tree. Adding this finctionality via compostion as opposed to inheritance enables apps to maintain backwards compatibility by setting the accessibility virtual hierarchy provider on the View only if the API version is high enough. bug:5382859 Change-Id: I7e3927b71a5517943c6cb071be2e87fba23132bf
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
972b7d2c3bbb54a61a505d9d78927a158356ffb6 |
|
21-Oct-2011 |
Gilles Debunne <debunne@google.com> |
Merge "Typo in ViewRootImpl"
|
5ac84423a28fea4924eb1c389d647defe1c1b93c |
|
19-Oct-2011 |
Gilles Debunne <debunne@google.com> |
Typo in ViewRootImpl Change-Id: I4a5acfb091ce05f56cdbaa0a56809f377cbf9b39
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
841d79497d9eff2d4df6948380b79db316d24dc3 |
|
18-Oct-2011 |
Chet Haase <chet@google.com> |
am 87bc53de: Merge "Make notification panel delete-all animation smoother" into ics-mr0 * commit '87bc53de2adf479ad5a5e226bf3d8fd31af6dc21': Make notification panel delete-all animation smoother
|
2f2022afa1eb85018368398bd150e9575fc099c9 |
|
11-Oct-2011 |
Chet Haase <chet@google.com> |
Make notification panel delete-all animation smoother Making the notfication delete-all animation smoother by carefully choreographing the various parts of it. The problem with the previous animation was that there was simply too much going on at the same time, causing things like layout and recreating display-lists in the middle of animations that became choppy as a result. This approach swipes all items off quickly, then scrolls the shade up to the top, making both sets of animations smoother as a result. Fixes #5431207: Notification delete-all should be smoother Change-Id: Iefe8ab5d661e05adcd10379dab85227d17904450
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
856d4e1a872b5aed6792b33e0360554cb3d19eed |
|
15-Oct-2011 |
Romain Guy <romainguy@google.com> |
Disable hardware acceleration for apps in compatibility mode Change-Id: I2d1c01a30c6fe6fff85c2a9bd6ee6de98e1ed422
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
85b9edf2da0534bc53d139bb88cda8866d265afe |
|
07-Oct-2011 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately"
|
9a230e01a1237749a8a19a5de8d46531b0c8ca6a |
|
06-Oct-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately This cleans up how ui flags are managed between the client and window manager. It still reports the global UI mode state to the callback, but we now only clear certain flags when the system goes out of a state (currently this just means the hide nav bar mode), and don't corrupt other flags in the application when the global state changes. Also introduces a sequence number between the app and window manager, to avoid using bad old data coming from the app during these transitions. Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
40e0383dce630ed9b2b1aa0e497709b89dfab6ef |
|
06-Oct-2011 |
Chet Haase <chet@google.com> |
Fix issue #5384631: hw windows not resizing correctly When the SystemUi becomes visible, the activity window resizes. The hardware renderer was not begin resized to suit, so it was drawing to a surface larger than that of the activity window, and some of the rendering (like the action bar) appeared off the screen. The fix is to keep track of the surface size in HardwareRenderer and to recreate the surface when the size changes. This change also removes the BUFFER_CHANGE flag from WindowManager.LayoutParams. The only reason the flag existed was to trigger a hardware surface recreation, but checking the old/new size is a more direct way of handling this. Change-Id: I9d6bf6385794886d1d93c60609c170864cdcdfab
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
2588a07730ff511329c87b5f61b20419b2443d48 |
|
04-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "The logic for not populating text to some accessibility events is scattered."
|
2cdedffcfa5594f9d516fa235d5edf4d4f92c21d |
|
03-Oct-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Accessibility services cannot obtain the source of an event coming from a root namespace descendant. 1. The user can touch the screen at an arbitrary location potentially crossing the root namespace bounday which will send an accessibility event to accessibility services and they should be able to obtain the event source. Also accessibility ids are guaranteed to be unique in the window. Added a package scoped findViewByAccessibilityId method that dives into nested root namespaces. 2. Added accessibility support to the AnalogClock. bug:5405934 Change-Id: I84edcb554bae41aafcbbc2723c5e62c1ef8a6ddf
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
82e236d72ac197d6673d0b4d484fe5f0b9436731 |
|
30-Sep-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
The logic for not populating text to some accessibility events is scattered. 1. Some accessibility evenents should not and were not dispatched for text population but there was no centralized location for enforcing this - rather the system was firing them in a specific way or there were conditions in a few places enforcing that. Now this is centralized and clean. 2. Updated the documentation with some new event types the were lacking. 3. Explicitly stated in the documentaition which events are dispatched to the sub-tree of the source for text populatation. bug:5394527 Change-Id: I86e383807d777019ac98b970c7d9d02a2f7afac6
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
4f59f8be0e177435a9a493668a74c793971b3bb5 |
|
16-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5300880: setSystemUiVisibility() always triggers a surface reallocation Change-Id: Ia0a9d8acba6b62ef095e4c615099466c52eec8e4
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ea515aeafa01de6f50c854ee381b972ef2478284 |
|
15-Sep-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Update the public APIs for finding views by text to optionally use content description. 1. Added flags to the search method to specify whether to match text or content description or both. 2. Added test case for the seach by content description. 3. Updated the code in AccessibilityManager service to reflect the latest changes there so test automation service works - this is the fake service used for UI automation. Change-Id: I14a6779a920ff0430e78947ea5aaf876c2e66076
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
180c48489f07ebd748700a5a312070583fefdb45 |
|
13-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5309443: Ninjump crashes on boot with... ...java.lang.IllegalArgumentException: Window type can not be changed after the window is added Change-Id: I4e34622c99d721fa214fd534a9bbfc8006184770
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
aacbf9111b58f10f7474fbd3a8debb02713f8b18 |
|
08-Sep-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Not visible view should not be announced or interacted with."
|
0b0a41d8e26eaf0f1d9d922621494daf40964a9a |
|
08-Sep-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Not visible view should not be announced or interacted with. 1. Some invisible views' text was reported by accessibility events. 2. Accessibility actions could have been perfromed on invisible views. bug:5264355 Change-Id: I68184fb436a3e10e947ec6f1eae02aa3d0d1cb7f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
d56c6951755a902a354e13e5fa05fb0984132cc6 |
|
07-Sep-2011 |
Chet Haase <chet@google.com> |
Add end functionality to LayoutTransition This new hidden API is called by ViewRootImpl when there is a pending transition but the parent window is not visible. Change-Id: Idd6a0959b391fae542e675e8740b6a16f8963678
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3791dc9b1c849bfacbff6de7fb53b77f414d1e4b |
|
07-Sep-2011 |
Chet Haase <chet@google.com> |
Merge "Fix issue with LayoutTransition on non-visible windows."
|
61158c621d0834d6d4e1e0310596d9b7a1071178 |
|
07-Sep-2011 |
Chet Haase <chet@google.com> |
Fix issue with LayoutTransition on non-visible windows. There's a problem with how LayoutTransition cleans up after itself when the target view is in a Window that is not on the screen. The quick fix is to always start (and therefore properly end and clear) transitions, regardless of whether the window is in the tree. Change-Id: I23f4f4f04176f3943e5c6e1d78acba0190a96930
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
f21c9b0f52d5a1de5050f90f0818467fad014eaa |
|
07-Sep-2011 |
Romain Guy <romainguy@google.com> |
Don't destroy a window's buffers when moving it Change-Id: Ib08608373ae4299639c1b157421ba633e4293446
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6b0c11da5a7a7ea236fd9dc409d1ce7a33bff9c2 |
|
03-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix issue #5150899: Call activity takes 15MB we never get back."
|
3c4ce72c4d66d9ee041924259f20381b658c1529 |
|
03-Sep-2011 |
Chet Haase <chet@google.com> |
Fix artifact with LayoutTransitions on disappearing window. Logic in performTraversals() starts a transition running at the proper time. But when a view's parent window goes away, this transition may not start at that time because drawing gets canceled. But the transition still hung off of the ViewRoot, waiting until some later drawing operation to kick it off. This resulted in some weird animations like the Recents panel appearing and having a single item animate off of it. The fix is to delete pending transitions when drawing is skipped. Change-Id: I3ab7702c16e069644a163424f977350743e2cecc
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
5d927c2d8e832fcfcb0154c8741f896001141ef4 |
|
02-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5150899: Call activity takes 15MB we never get back. Persistent process can no longer use hardware acclerated drawing when running on a low-memory device. Change-Id: I3110335617af1c98fcede9bf41f4a1d0c20d0e87
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
08a1c04b9668e51ca3043a4e531b7649b018b245 |
|
01-Sep-2011 |
Romain Guy <romainguy@google.com> |
Merge "Dispatch onDetachedFromWindow before destroying everything Bug #5245686"
|
16260e73f6c1c9dc94acf0d328a3c564426b8711 |
|
01-Sep-2011 |
Romain Guy <romainguy@google.com> |
Dispatch onDetachedFromWindow before destroying everything Bug #5245686 Change-Id: I637178ee0bb47fbec9b59198b388bb8de22c1786
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cc4f7db698f88b633a286d8ab1105b28a474cd09 |
|
31-Aug-2011 |
Jeff Brown <jeffbrown@google.com> |
Fix input channel leak. Bug: 5156144 Input channels could leak or simply live longer than they should in some cases. 1. Monitor channels (used by the pointer location overlay) are never unregistered, so they would leak. Added code to handle failures in the receive callback by closing the input channel. 2. The DragState held onto its input window and application handles even after the input channel was disposed. Added code to null these handles out when they are no longer needed. 3. Input channels previously used as input event targets would stick around until the targets were cleared (usually on the next event). Added code to detect when the input dispatcher is in an idle state and to proactively clear the targets then to ensure that resources are released promptly. 4. Native input window handles held onto the input channel even after the input window was removed from the input dispatcher. Consequently, the input channel would not be disposed until the input window handle itself was freed. Since the input window handle is held from managed code, this meant that the window's input channel could stick around until the next GC. Refactored the input window handle to separate the properties (info) and identify (handle) state into different objects. Then modified the dispatcher to release the properties (info) when no longer needed, including the input channel. 7. The pointer location overlay does not actually use its standard input channel, only the monitor input channel. Added INPUT_FEATURE_NO_INPUT_CHANNEL to allow windows to request that they not be provided with an input channel at all. Improved some of the error handling logic to emit the status code as part of the exception message. Change-Id: I01988d4391a70c6678c8b0e936ca051af680b1a5
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
eca9b1f53c2c291cbfb89b5f3cc45db7bdca6c7d |
|
26-Aug-2011 |
Romain Guy <romainguy@google.com> |
Prevent crash in VPN settings Bug #5217245 Change-Id: Ibacf4cbd40537cd417f1518b5ac4367a3f3d7d03
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
12bde60b39affbfdcb7ef6317e0a5f99c3f41b10 |
|
25-Aug-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Merge "Intra-process view hierarchy interrogation does not work."
|
6ff0037792619c4441d9d3caa4f9ab4f45c11236 |
|
25-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Merge "Fix to show the correct HW accel background in the preview window."
|
07213e6d8895af10951851435adf96a779863f6c |
|
25-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix to show the correct HW accel background in the preview window. Also tweak wallpaper service to do a cleaner transition to a static wallpaper. Change-Id: I876a32091f92dd5a529d7fd809d3b8e730bb7d2a
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
fa6b35be126ffcc3b5818393c26aff724ac65daf |
|
25-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5050039: Launcher is sometimes rendering underneath the system/status bar It looks like this is caused by the change in HC to stop activities when the screen is off. ViewRootImpl (a.k.a. ViewRoot) has special code to avoid doing work when it is stopped, and it is now stopped when the screen is off. The problem here is if the window's activity is stopped when the window is first displayed, then it would never do the initial fitSystemWindows() with the status bar offsets given by the window manager, and never do this again until the status bar changes. Also included here is some re-arranging of the code dealing with the offsets changing, because it was dealt with in two places and only one had a bunch of code dealing with HW accelerated drawing and performing the fade transition between states. Now all of that is unified into one place. Change-Id: I9828f02664cc622dbf186effb1f685a8aa4456a1
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
8bd69610aafc6995126965d1d23b771fe02a9084 |
|
23-Aug-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Intra-process view hierarchy interrogation does not work. The content retrieval APIs are synchronous from a client's perspective but internally they are asynchronous. The client thread calls into the system requesting an action and providing a callback to receive the result after which it waits up to a timeout for that result. The system enforces security and then delegates the request to a given view hierarchy where a message is posted (from a binder thread) describing what to be performed by the main UI thread the result of which it delivered via the mentioned callback. However, the blocked client thread and the main UI thread of the target view hierarchy can be the same one, for example an accessibility service and an activity run in the same process, thus they are executed on the same main thread. In such a case the retrieval will fail since the UI thread that has to process the message describing the work to be done is blocked waiting for a result is has to compute! To avoid this scenario when making a call the client also passes its process and thread ids so the accessed view hierarchy can detect if the client making the request is running in its main UI thread. In such a case the view hierarchy, specifically the binder thread performing the IPC to it, does not post a message to be run on the UI thread but passes it to the singleton interaction client through which all interactions occur and the latter is responsible to execute the message before starting to wait for the asynchronous result delivered via the callback. In this case the expected result is already received so no waiting is performed. bug:5138933 Change-Id: I382e2d8689f5189110226613c2387f553df98bd3
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
50d133e290468fd149b5c03e46549afca2ee05f8 |
|
13-Aug-2011 |
Romain Guy <romainguy@google.com> |
<blink/> is not an acceptable default behavior. Bug #5156334 Change-Id: I9f803b090e81f4e490d0cccd6347a0f9f64bd20f
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
70a3f677bf015d8641f41d149b76d362bb2b801c |
|
08-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5016544: IME keyboard hides folder rename text field. Tweak some issues in TextView with the focus rect used to determing where the scroll position needs to be. The ultimate problem was that in various situations it would use the right-most selection position cursor as the scroll location and when it adds 1 to make this a valid rect we end up with a rectangle that is outside of the view. Change-Id: Ia200c58e4e014d2a0a1be4761f9a1e5eb702a8e5
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c3166e15f8898a2ba66fb177efbddb1d0edf6140 |
|
09-Aug-2011 |
Romain Guy <romainguy@google.com> |
Don't draw more than what we need. Change-Id: Ifeac66d379a48e8a1124188125e029421eb24226
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
1d0c708961f824ac5171238c205a7bf328d5d8a5 |
|
04-Aug-2011 |
Romain Guy <romainguy@google.com> |
Destroy the EGL surface when the ViewRootImpl surface is invalid Bug #5109839 Change-Id: Icebde9abf43b852397a73ffef519004993b46901
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
cf15efba0792b052dca5baa350d9fb00e6a60667 |
|
02-Aug-2011 |
Romain Guy <romainguy@google.com> |
Properly cancel pending buffers on window size change Change-Id: Id6108ce61a971673f3ebc8270e9dd00849c91ae5
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c68c913d357e2955d4bd7ca52829071e531c7825 |
|
29-Jul-2011 |
Dianne Hackborn <hackbod@google.com> |
Various work on out of memory managment. - Improve how we handle processes that have shown UI, to take care of more cases where we want to push them into the background LRU list. - New trim memory level for when an application that has done UI is no longer visible to the user. - Add APIs to get new trim memory callback. - Add a host of new bind flags to tweak how the system will adjust the OOM level of the target process. Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
ea83503e8683531fac2534047e50bc1e5979b6dd |
|
29-Jul-2011 |
Romain Guy <romainguy@google.com> |
Don't create hw layers when there's no hw context. Bug #5093805 Change-Id: Ia58b3381c83b9a200e80020e5c1b9c337ad6c35c
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
b6f7a27c59fd170b5d7617e43e21bfd8587f234e |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Merge "Reclaim more memory, more often."
|
65b345fa22b878e141b8fd8ece9c208df00fa40f |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Reclaim more memory, more often. Yay. Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
c8ec222cd8e7d7056b0f01018ac0c38d2c7204c0 |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Merge "Destroy layers and flush layers cache when a window is destroyed."
|
6d7475d666baefaa3ba9f0dcee25238739454241 |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Destroy layers and flush layers cache when a window is destroyed. Change-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
3d5a703db83265f7914eed8580de986106abfad2 |
|
28-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Merge "Report the external display size to the input reader."
|
912a7b32d0c59ba38265c5dd6ff84ce93f909a7f |
|
27-Jul-2011 |
Romain Guy <romainguy@google.com> |
Make sure we have a current EGL context when invoking EGL Bug #5081795 Change-Id: Iee3382d362a71c1e6c5c498b319bf7f7bcf5a2f0
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
bc68a59c024bdb745dac8e2ec7408a9f30595f1a |
|
25-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Report the external display size to the input reader. The input reader needs this information so that it knows how to interpolate touches on an external touch screen. Changed Display so that it asks the WindowManager what the real display size is (as opposed to the raw display size). This means it now takes into the forced display size set by adb shell am display-size. Replaced all calls to getRealWidth() / getRealHeight() / getRealMetrics() in the WindowManager and replaced them with direct usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM doesn't end up making a reentrant Binder call into itself. Fixed the table status bar HeightReceiver so that it updates the height on all configuration changes since it is possible that the display size changed independently of an external HDMI display being plugged / unplugged. Improved the Display class documentation to make the distinctions betweeen the various sizes clearer. Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
/frameworks/base/core/java/android/view/ViewRootImpl.java
|
6dd005b48138708762bfade0081d031a2a4a3822 |
|
18-Jul-2011 |
Dianne Hackborn <hackbod@google.com> |
I. Can. Not. Stand. ViewAncestor. It was done so we would have the name "ViewRoot" available for a public API. However, the name "ViewAncestor" just makes no sense. So instead, change it to ViewRootImpl. Change-Id: If9599ca67896f339f6fefa7d1dde121201171d97
/frameworks/base/core/java/android/view/ViewRootImpl.java
|