Pushing state persistence to a background thread

Change-Id: If776bc22c48525ba91dc7e4dd0e27de92612f2f5
Make sure that the owner user is marked initialized.

This is required for upgrades from previous versions of JB.

Bug: 7547639
Change-Id: I21de14a70d6ba2ab21437b5f0721321df45226d2
grant shell user EXPAND_STATUS_BAR permission

Bug: 7555251
Change-Id: I68cebb26bcee060c56e124941f3ea9289ab2b3bf
Fix an inconsistent state with IMMS and Settings when the hard keyboard is connected

Bug: 7540140
Change-Id: Iaac951ff457c35751b442e84ac07f1f86be93494
Cleanups in Notification.java.

Bug: 7555827 // remove named TODO, fix toString output
Bug: 6440961 // remove longstanding and mysterious "MUMBLE MUMBLE"
Change-Id: I8b5e16fb1f7ccbe5cbda37f260fdc6bc0e1b8ee3
Fix keyguard pin/simpin/simpuk RTL-ization

This fixes the PIN, SIM PIN, and SIM PUK keyboards to keep the keys in the same
position for all languages.

Fixes bug 7538528

Change-Id: Ib07e89e9496e6c5b91c1bbda7781eddeddea0554
Only wipe device if primary user (for failed password attempts)

When a DeviceAdmin requests a device wipe due to a number of incorrect
password attempts, only primary user can wipe the device. Secondary users
can only remove themselves from the device.

Bug: 7554445
Change-Id: I24331cb4eff37571fcd792abb2efc794f7b3f2d2
Delete appWidgetId when removing lockscreen widgets

Bug: 7550012

Change-Id: Ia9f5266256016eb91bfd6a2d5a7f910c42948f1e
Add missing variable copies in Path copy constructor

bug:7564602

Also, clear isSimplePath flag for possible translates, since rect drawing path
doesn't support them

Change-Id: Ibb4a3e87ace0feb16bce1c6032016c5f4643f8d6
Show mobile data RSSI for devices that support it.

The new test is more general, allowing mobile RSSI to be
shown on devices without voice telephony.

Bug: 7490266
Change-Id: Ib5b243c0d92e74fe4385989c3a6c16edd00a9ec9
cherrypick from Change-Id: I70cb9111ff5f5a156cecb433b3baf7925a6be1a8
Fix typo

Change-Id: Idd09f7fea890dbc290589b1ebe4a1a139f98c740
Refresh the status bar clock format on user switch.

Bug: 7490931
Change-Id: Ifad46ec7cee40aa5a622ee2621fc425835366e32
Refactor the lockscreen camera widget, removing the bitmap.

The new approach is to create two views:
 - Widget preview, drawn at full-size, then scaled to fit frame.
 - Fullscreen preview, drawn at full-size, used during animation.

Two views are necessary to both ensure the widget scrolls properly
with the widget page yet still appears to scale up and match
the camera app pixel for pixel.

The offscreen bitmap and associated background rendering is no
longer necessary.  This avoids the large allocation and associated
rendering time after turning screen on.

Also fixes 1px horizontal discrepancy during old scale-up anim.

Also suppresses long-click behavior on the camera widget.

Bug:7471107
Bug:7559755
Change-Id: I1d834aa743bc05d6a7e2ce3eadfee8d5ff40da37
Ignoring FUL unlock signal if user changed fixes b/7572354

Prior to this fix, one user could log into another user's account by
waiting for FUL to recognize them on their account, and then
switching to another account at a very precise time - after FUL has
recognized the user but before the device has unlocked.

This was caused by the FUL unlock() callback telling the device to
unlock even though the user had changed.  The fix is to only unlock
the device if the current user ID matches the user ID used to run
FUL.

Change-Id: I516b52d99ab7609b836939e4aae6e7df77a9e047
Hide current soft input when a background user gains window focus.

Bug: 7507226
Change-Id: If58f68469e21eaaba8536c4b54b3aa8cf8c08eb5
Fix IME down caret in keyguard nav bar bug.

The input method manager service now keeps track of whether or not
the ime was shown on the keyguard.  This prevents activities behind
the keyguard from incorrectly showing the down-caret in the keyguard.

Bug:7498792
Change-Id: I0de01ec29cb544e902305b0f9d9fb94a73835e7b
DEFAULT_VIBRATE must always use the default vibe pattern

The logic here was backwards, causing the (softer) fallback vibe
pattern to be applied if the notification specified a sound
(or DEFAULT_SOUND) and also DEFAULT_VIBRATE. The fallback
vibe should only play if you have *no* vibration set.

Bug: 7588655
Change-Id: Iecdd362729bccedf779b51cc9b90a12014328aff
Switched to another method for launching apps.

Started using a separate thread which calls startActivityAndWait
for starting apps. Also increased the minimum and maximum lengths
of time to wait for apps to stabilize.

Change-Id: I49935a0ed1d1c230e58dc1629e5e4da6b3887903
Fix audio focus evaluation order for display update

Change 1f9196a8e5de9b004e61afabc70b18caf7cf9c7e introduced
 an issue when trying to ignore audio focus entries in the
 stack that don't use the music stream, or are for transient
 audio focus gain, for remote control display updates.
The bug was that the audio focus stack traversal was not
 starting from the top, as it should. It was using
 the iterator order, which, in the case of a stack, starts
 with the bottom-most entry.
The fix consists in traversing the stack from the top, i.e.
 from the last element of the vector used to hold the stack
 entries.

Bug 7311023

Change-Id: I0c1900dbf98599a621a420ab55531a3eee838fe5
Added app launch test.

The test will start each app and report the time it takes for
the app to start in milliseconds.

Change-Id: I974ac36f70f0d982aa01e46824fe138eb641d680