Bug: 6628376
The issue here is that contentX & contentY can both be 0 if we are scrolling
slowly enough as they are adjusted by the page's scale and can thus round down.
However, this would result in us falling out of layer drag mode even though
we haven't tried to scroll past the edge of the layer. Detect this case, and
stay in layer scroll mode.
Change-Id: I3c655d0d03e8f89887abbe718bd24699c133ee1a
Bug: 6569073
Only nativeDestroy and nativeStopGL need to be called on the UI thread,
so split up destroyImpl into 3 functions, and only have the native
destroy be pushed to the UI thread if necessary. Also make the work that
is delayed be static without references to the finalizing WebView to allow
it to be fully deleted immediately after finalization.
Change-Id: I4e424051e69df0bc409af95ca3f3d2b9e58a6b75
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
Bug 6550358
The EditText constructor now calls setTextIsSelectable, which uses
getText where the cast exception happens because the EditText is not
yet fully built and its text does not have the right type.
Fixed by using mText directly instead of getText().
Change-Id: I52a2720ae99475881f210ac74464728cab92147e
This reverts commit b999cc118f.
There was an assumption in this earlier change that observer dispatching could not be
recursive - we could only ever have one iteration on the observer listener list. This
assumption broke down in a specific app, and maybe in more, so reverting the change for now.
We should probably find a way to accomplish the same allocation-minimizing goal without
causing exceptions when violating our assumptions.
Issue #6620795 [Application compatibility] Lufthansa app crashes
Change-Id: I1c1f9ad329c14398feb0e74ce77e1a07111f7d1f
A previous fix made it necessary for a frame to render something to GL
in order to cause a call to eglSwapBuffers(). Besides the calls being
tracked as part of issuing a DisplayList, there is also a potential call
to clear the canvas (via glClear()) on non-opaque surfaces. This call is also
good to track, since a surface that gets cleared without any other drawing operations
is worth flipping to the screen (to erase old contents on that surface).
This fix tracks the status of the pre-draw operations to find out whether
glClear() was called and then sets the drawing status appropriately.
Issue #6606422 QuickContact dismissal is janky again (Tracking)
Change-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf
Guard against cases where ListView might receive touch events while
detached.
Update ListMenuPresenter to dispatch a data set change when the
backing menu is changed.
Bug 6543282
Change-Id: If2fb9b6aa3cf4a1b7070a7cd0de0edf0fc2f4cca
Indicate that if the device does not support Bluetooth or WiFI,
calling the API is a no-op.
Bug: 6620788
Change-Id: Ib261e0e7855d0914e97803b3b808015b72f3a186
Okay this isn't entirely docs. I have un-hidden the new permission
for binding to accessibility services; we were going to go out with
it hidden since it didn't go into factory ROM, but now that we are
doing other things we might as well expose it.
Also changed a log from E to W, since it is not an error.
Change-Id: I9226c95e3b63e12218fe41dc3f4290d9824a9e5c
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
On a page load, the (viewport) metadata settings for the main frame are
reset. Reloading a page with viewport meta tag specifying target density
dpi will result in 2 back to back update zoom density messages to be
sent from WebViewCore to UI thread.
In setupViewport(), remove update density messages in flight. If the new
density is indeed different from WebView's default scale, queue another
message.
Bug: 6509512
Change-Id: I195e40277bf1bcccb0e61d84ed84db1e34556243
Rotation lock does not override NOSENSOR mode anymore.
Centralize the rotation policy settings into a new class shared by
the System UI and Settings applications.
Add a new setting to specify whether rotation-lock is being hidden
because the "auto-rotate screen" option has been toggled in the
Accessibility settings panel.
Bug: 6523269
Change-Id: I15173280d25bc5d101e89a9c65913aefc53fc33a
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
...active SuggestFragment{419494f0} has cleared index: -1
There were issues when the same fragment was removed and then
added again before completely finishing the remove (such as due
to a running animation).
Two fixes:
- Now when you call FragmentTransaction.replace() and are replacing
a fragment with the same fragment, this becomes a no-op, to avoid
visual artifacts in the transition and bad states.
- When we are moving the fragment state up and it is currently
animating away to the INITIALIZED state, we could end up making
the fragment inactive as part of the cleanup. In this case it
shouldn't be made inactive; we just need to initialize it but
keep it active since we are going to continue to use it.
Bug: 6584942
Change-Id: I8bfd73f2d8ef8f67b541b3e2525dfa5db6c3bfa5
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. One of the loops was using the last visible position
as its end boundary as opposed to the child count
minus one.
bug:6610451
Change-Id: I600545ca3f64d1e982f909f893e5d34570ec5c8b
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