Loading the avatar icons and drawing them into the sized bitmap
turns out to be quite expensive and the cost increases with number
of users. Caching them shaves off several hundred milliseconds from
Keyguard inflation time during user switching on the lockscreen.
For instance, 15ms vs. 750ms with 3 avatars on a certain 7" tablet.
Bug: 7986933
Change-Id: I3e2065bfa25aa263133ba204ca364c3b04d7c0ff
If an app mistakenly puts some Parcelable implementation of
CharSequence in here, Bundle will try to marshal the derived
class, which is going to be bad news when we try to unparcel
it in another process.
Additionally add a proper stack trace to unparceling
failures (otherwise you have no idea where the bad parcel
was being used).
Bug: 8725271
Change-Id: Ide19b986d65c7f47929cf2dde4e62b762c469fee
Apps using SYSTEM_UI_FLAG_HIDE_NAVIGATION to hide the nav bar
or SYSTEM_UI_FLAG_FULLSCREEN to hide the status bar can now
opt into hideybars by also using a new public sysui flag:
View.SYSTEM_UI_FLAG_ALLOW_OVERLAY
When opting in, apps accept the fact that bars can be overlayed
over their content, but gain the ability to use the entire gesture
space - something that was not possible before, particularly when
hiding the nav bar.
Swiping from the nav bar edge of the screen will reveal the new hidey
version of the nav bar, if applicable.
Bug: 8682181
Change-Id: I6405bee50e6516667ba6b9a62d4f1e43490b5562
Change I766f106b9165932de17de84bdd422d0fc0ae27f1 made getISO3*
methods throw MissingResourceException if locale was invalid.
This causes regression on last android release, where invalid
locale was silently ignored.
+ fix for .isLanguageAvailable
Bug: 8709594
Change-Id: Ieada6b90dc53cfdf0a4e2b4ca69854b811d0fec2
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
Adds an optimization for checking whether a looper is stuck,
with a new Looper method to see if its thread is currently
idle. This will allow us to put a large number of loopers
in the monitor efficiently, since we generally won't have to
do a context switch on each of them (since most looper threads
spend most of their time idle waiting for work).
Also change things so the system process's main thread
is actually running on the main thread. Because Jeff
asked for this, and who am I to argue? :)
Change-Id: I12999e6f9c4b056c22dd652cb78c2453c391061f
Basic implementation of an undo manager. Supports
multi-level undo/redo, building on the top undo state
as edits occur, managing multiple distinct entities in
the undo state (such as embedded objects in a document),
and saving/restoring the full undo state. Still some
work remaining on correctly dealing with dependencies
between undo states that hold multiple owners.
Also do a simple implementation of undo state in TextView
to see how things actually work. The implementation here
is very primitive: it needs a lot more work to correctly
identify when to merge undo ops, is not trying to do
anything smart with style spans, etc.
Change-Id: Ie30f4e133351e2f569ffb48c6c44a2b19cadee27
We ask the user during device setup to configure this setting -
if we then restore from backup we clobber what they just selected.
Instead, just let them chose during setup and don't back it up.
bug:8825150
Change-Id: I3f2b2291c86a4008bb8ea2468164d9c6c673cbb0