1. We have decided to let the accessibility services take care
for syncing accessibility and input focus. Some apps may
move input focus when a given view takes input focus which
dragging accessibility focus can lead to a loop in the
focus traversal. This change removes some leftover sync
code.
bug:6616861
Change-Id: I57cb44e315a386d13596794d3767b559e9ee3d99
Add action provider, button, and styles. Extend ActionProvider to
allow for getting references to MenuItem instances.
Implement toggle mode for the MediaRouteButton/ActionProvider. Dialog
selection yet to come.
Change-Id: Ibe3188570f503bbf8dd00cf154663435656a7171
1. Now after setting the content description on a view we mark is as
important for accessibility of the current important for accessibility
mode of that view is auto.
2. Minor tweak to a touch explorer coefficient to make performing double
tapping easier.
bug:6615353
Change-Id: I3b477f533a3ebde85d425caf32ace5e851240f88
Alpha values were being set correctly on native Display Lists during an
AlphaAnimation, but not when the animation finished. Only non-1 values
were being propagated to the Display List properties.
The fix is to track when we've set a non-1 alpha value from an AlphaAnimation
and to notice that flag when the value is 1 (because the animation ended), so that
we propagate that value correctly. Using the flag avoids sending a value of 1
(by far the most common case) unless we really need to restore it after animating
it with non-1 values.
Issue #6600592 Sometimes album art blends with list asset on queue
Change-Id: I51047d756a4ac42a2d907a4d77963cc23dfb1db3
1. Currently accessibility focus removal was clearing the selection
in the view - in particular the accessibility cursor position
which in the TextView case is the selection. This leads to a
scenario where the selection may be cleared when the app does
not explect. Further, the selection should not be cleared
since the user can be say several pages in the content and
removing and putting back accessibility focus would cause a
tedious traversal to get to the previous position.
bug:6469840
Change-Id: Iba3c01600fa2c9c39f99085a5fbc4328aa539ea8
1. If an accessibility service uses an invalid focus type argument
when trying to find where focus is the queried application crashes.
The same happens if the serivce calls focus search with an invalid
derection. While we need the argument check in the controller that
runs in the app process the accessibility service has to be the
palace where an exception is thown for the invalid argument so
the developer can fix his code.:
bug:6508797
Change-Id: Ib0d74f374fa60ee8fd6117f11c23af34f6c26ad3
This change is very useful for testing purposes because it makes it
easy to compare different implementations to see how they behave.
There is no change to the current default strategy.
Bug: 6413587
Change-Id: I4d8567aa4160571ba9fa397ce419882cd9366749
1. The clearFocus routine in ViewGroup was clearing the pointer
to the descendant which has focus after calling clear focus
on that child. However, currently clearing the focus of a view
causes the view that loses focus to try to give the focus to
the first focusable which potentially sets the pointer to the
child that has input focus in the ViewGroup but the ViewGruop
essentially clears that pointer. This resulted in having two
focused views at the same time in some cases.
2. AbsListView was not calling the super implementation of add
focusables if the focus type was not accessibility.
bug:6559819
Change-Id: I478dfed000b5de3f9b15e12eb82aa3d34c2301e4
Add a new variation of ActivityOptions that allows you to
supply custom animation resources and get a callback when the
animation starts.
Use this in SearchPanelView to determine when to start hiding
the search panel instead of having a fixed delay.
Fix some issues in the activity manager where we would cancel
the options in cases where we should actually keep them to give
to the window manager for a transition. (Basically when the
activity being started is not actually ending up launched, but
just results in a shift in the activity stack.)
Note that this is not quite what the design calls for -- the
entire search UI is waiting and then disappearing when the
animation starts, instead of the ring first disappearing while
waiting for the time to fade out the circle.
Change-Id: Iee9a404ba530908d73cdbd4a9d0d2907ac03428f
1. Since we added explicit accessibility focusable attribute when
adding focusables views that do so should call this method. Some
views were not updated to do so.
bug:6581924
Change-Id: Id64c0b2d76e5269ebf3fbe17203e73b174bdb843
This is just the initial state tracking. Still to go is
actually triggering Bluetooth A2DP correctly and tracking
process state in the system server.
Change-Id: I33031d52799d6e2d7208910da833831085cc3677
1. The findAccessibilityNodeInfosByTextUiThread was reusing an ArrayList
instance also used by the logic to initialize an AccessibilityNodeInfo.
Hence, if the find method got some view and creates the infos for them
the method creating the info was reusing the same array list and was
nuking its contents.
bug:6556585
Change-Id: I1d013bf7b1f715f8b4c4ba60c677233bec40647c
The fix is to track when we issue GL drawing commands, and to skip the
call to eglSwapBuffers() when a DisplayList does not result in
any actual rendering calls to GL.
Issue #6364143 QuickMuni list items and buttons flicker instead of fade
Change-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3
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
It is possible for 2 different threads to poke the mStreamControls at the same time,
causing the monkey bug mentioned in the bug report below.
Bug: 6411852
Couldn't think of any other reason Stream type 3 (MUSIC) wouldn't exist in the list.
It's possible that a programmatic call came in at the same time as the volume key press.
Synchronizing blocks where the mStreamControls are populated and accessed.
Change-Id: Ifedec6b0f8bad9634cb9e079fda785c433bdb7a7
1. We use a delayed callback to throttle the amount of accessibility
scroll events fired by the view tree. The callback to do so was
not properly reset when removed putting the view tree in a bad
state resulting in no scroll events being fired at all.
bug:6549005
Change-Id: Ibf72d7e009e4545a336c9471f46015910290703e
1. This attribute specifies whether a view can take accessibility
focus. It has three values: 1) auto - the system determines
based on whether the view is actionable and has actionable
predecessor. Accessibility services can put accessibility focus
on such a node at will; 2) yes ; this view always takes access
focus; 3) no - the view cannot takes accessibility focus and
accessibility services cannot put accessibility focus on it.
Change-Id: I2ebf4e7c75bf6b39e1742b6868b37ccdd4cc7d28
1. Iterators were skipping content on reversing direction.
2. The cursor was positioned at the beginning of the next text segment
when moving forward and at end of the previous text segment when moving
backwards. This is incorrect and now the cursor is positioned at the
end of the segment when moving forward and at the beginning when moving
backward.
3. The cursor position was not properly set when reaching the end/start
of the text.
4. The iterators were reporting strictly the next/previous segment even
if the cursor is within such a segment. Thus, when traversing some
content may be skipped. Now moving forward moves the selection to
the next segment end and the start position is either the old index
if it was within a segment or the start of the segment. Same in
reverse.
bug:6575099
Change-Id: Ib48a649cec53910339baf831a75e26440be6e576
Make clearer how the platform is handling key events following some
unfortunate uses by third party applications. Also highlight the
changes in Jelly Bean default keyboard.
Bug: 6566711
Change-Id: Ibcdaf54c6d629fd0733529bfe2fffc82f555f084
Bug #6555840
Apps like Google+ with large bitmaps displayed in listivews could
run into memory issues because of these references.
Change-Id: I39486bda13ce00c5a3b6481139ad54547506a8b4
1. The code in clear accessibility focus was not updaing the global
accessibility focus reference in view root if the view not a
descendant has accessibility focus.
bug:6382856
Change-Id: I0c99578b5afd1f1f5d0df5bba05b0a03b5951a43
The problem was that when dismissing the lock screen, the window manager
would briefly turn off force hiding when it started animating the transition
and then turn it back on until the transition was done.
This would cause it to briefly switch focus to the app behind and then
take focus off it. The app would find out it got focus, and re-start
input on itself, asking the input method service to do so. At this
point the input method service would ask the window manager if the
caller really had focus, and it may or may not be told no depending
on the timing. If it is told no, then it doesn't allow the focus
switch to happen at that point, ignoring the new input connection,
and ultimately when focus does really switch the IME is left talking
with an old dead input connection.
I added some code to the input connection to make sure when we are
no longer using one that we mark it inactive and can't use it. This
bug was especially difficult to track down because it would only
visibly break when a GC happened during this time, causing the weak
reference on the input connection to become null. With this change
it will now always break (though in the scenario here only if you
hit the race condition correctly).
Change-Id: I81a6164dc140c548da1a9736e42cd253e8238a80
The API allows applications to post FrameCallbacks that will
run on vsync and that are provided with the frame time.
Change-Id: Ieb39fcdd085ef8a57805b8f78e7a307f416ff21d