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
View.getOverlay().clear() can failed with an NPE if there are
no drawables in the overlay. Fix: add a null check before dereferencing
the mDrawables field.
Issue #8895794 getOverlay.clear() crashes if drawables were not added previously
Change-Id: I9b2a63036450915681ba3a89a0911e2490063702
We are prefetching accessibility node infos to minimize the number of IPC
calls when an accessibility service introspects the screen. It is however,
possible that the view we are prefetching is a child of an AbsListView whose
adapter changed its data but the AbsListView still did not perform a layout
pass to sync its children with the new adapter state. This may lead to an
exeption when trying to query for the state of a child's position. If the
data of the adapter is changed and the layout pass still not performed,
we return null for the AbsLIstView's children. When the layout pass
completes we already notify the accessibliity layer so it will be able to
refetch the children of the AbsListView.
bug:8433433
Change-Id: I56313c721aef3848b15fad50027d068ba1d291f7
We sometimes have issues if disable, enable seq happens to fast.
This should only slow down those fast cases.
bug:8715336
Change-Id: I4f7fe9708b7c3c2300c441511838e8a70eaad5d1
- add missing assignment for text direction (mTextDir)
- when layout direction change, update text direction (mTextDir again)
Change-Id: Id600fb0c5897a0d2ee5f9fe18a63437dc3e528d9
Different devices have different precision, leading to different pixels
being touched during rendering operations. We need to ensure that the
dirty rect we draw with (and which gets erased on the following frame)
encompasses all possible pixels instead of some ideal rounded rectangle.
The bug from this code led to dropped-pixels artifacts on some devices,
where we'd scale a view, drawing it into some pixels, then invalidate
that same area on the next frame, but the invalidation rectangle didn't
cover the same pixels as the device drew into.
The fix is to floor() the left/top pixels and ceil() the right/bottom
pixels of the transformed invalidation rectangle.
Issue #8971348 dropped pixel artifacts during some scaling operations
Change-Id: Iedb1afd5621dff43bf7a3919bdbd8d2251647fd2
The predicate for detecting whether text was right aligned was missing
some cases - it was correctly sensing RIGHT or OPPOSITE aligned text
in the LTR case, but was missing NORMAL for rtl. This patch just adds
that case.
Change-Id: I06691e7122e1ca91d66299cf0d7ef1f8a476a44b
We added APIs to allow an accessibility service to extend the
selection while moving the cursor at a given granularity such
as word, character, etc. The problem is that the traversal was
extending only the end of the selection while moving forward
and the start of the selection while moving backward. This leads
to a case in which the user cannot shrink/extend the selection
because for example instead of shrinking the end of the selection
the implementation was extending the start.
Now extending the selection moves only the selection end. This is
the same behavior as text view using a keyboard.
Tests: https://googleplex-android-review.googlesource.com/#/c/307062
bug:8839844
Change-Id: Id6965b102647df909f61301fcc8ec05458dd5881