9669e3af6500ffd1041df7c4197865a001cdc055 |
|
09-Feb-2018 |
Eugene Susla <eugenesusla@google.com> |
Use structural equality for A11yNodeInfo#mChildNodeIds This reintroduces I508df9e4346e304b8ae56cc38b17e9a940d941f1 with the addition of missing nullchecks A11yNodeInfo#writeToParcel relied on LongArray#equals to avoid storing it if it's the default value, but because the equality is be by reference, it would store it every time. This fixes that. Test: a11y cts Change-Id: I8fadffb2508d819ae9a9db8c4298e8941a349627 Fixes: 72460870
/frameworks/base/core/java/android/util/LongArray.java
|
112962a6b09310c58093b9a8af341cbeaa612a48 |
|
27-Mar-2017 |
Hugo Benichi <hugobenichi@google.com> |
Improve utility of IntArray and LongArray This patch adds several utility methods to IntArray and LongArray to make them more useful in the context of a Parcelable class. More specifically, it is now possible to parcel and unparcel a {Int, Long}Array with the following one liners: - mIntArray = IntArray.wrap(parcel.createIntArray()); - parcel.writeIntArray(mIntArray.toArray()); This patch also - adds unit tests for IntArray and LongArray. - adds a method for setting a field at a given index. - adds a method for changing the effective array length. - adds missing bound checks for negative index values. Test: added test coverage Bug: 34901696 Change-Id: Ia0febf4dae048b0a45c75310b5d90b56499320da
/frameworks/base/core/java/android/util/LongArray.java
|
776abc24cdd18610232a50b997cce3cffa74609b |
|
07-Mar-2014 |
Adam Lesinski <adamlesinski@google.com> |
Uses VMRuntime.newUnpaddedArray for ideal array sizes Bug:13028925 Change-Id: I0a9301248b10a339afbdc5e4ffe3310ac4fa1fb7
/frameworks/base/core/java/android/util/LongArray.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/util/LongArray.java
|
db24d142f5202c79128d98cd031be8c34c0731f7 |
|
28-Nov-2013 |
Alan Viverette <alanv@google.com> |
Fix LongArray.addAll() to use correct arraycopy argument order BUG: 11709513 Change-Id: I831e74ccb008739ab315c68618c04f870f9a36a5
/frameworks/base/core/java/android/util/LongArray.java
|
f0aed09ed8153043e40b3ac99788d47ba0831306 |
|
07-Nov-2013 |
Alan Viverette <alanv@google.com> |
Add methods for removing children and actions from A11y nodes BUG: 11421730 Change-Id: Ide396e6a0fec871395a9cadf8880c16d0de08294
/frameworks/base/core/java/android/util/LongArray.java
|