Add global setting for all stats control

Change-Id: Iaf244d9fafbf2c47c318a90665f39d5efaea3b1b
Themes: Find wp asset when APK has dir entries

Some APKs are compiled with folders included as zip entries in the APK. This was causing
lockscreen wp to not correctly be set.

Change-Id: I9eca7878b29e3cfcb43abc4a9dab084d9c200b83
Catch all exceptions when retrieving ComposedIconInfo

It is possible to receive a TransactionTooLargeException when
getting the composed icon info from the package manager service.
We should catch these exceptions to avoid unnecessary crashes.

For reference:
The Binder transaction buffer has a limited fixed size, currently 1Mb,
which is shared by all transactions in progress for the process.
Consequently this exception can be thrown when there are many transactions
in progress even when most of the individual transactions are of moderate size.

see http://developer.android.com/reference/android/os/TransactionTooLargeException.html
for more details.

Change-Id: I70d35dc4926125bfbef5d8c5fb8ed6d6fcdbf159
Add SET_WALLPAPER permission to SystemUI

If an exception is thrown in updateWallpaperLocked, a call to
WallpaperManager.clear() is made.  This requires the SET_WALLPAPER
permission and will throw a SecurityException if that permission
is not granted to SystemUI.

Change-Id: I61811b65dcfe8b15f0e9030f7aa6d1dc09cea351
AudioManager: Add Bluetooth A2DP profile trigger

    - Introduce a new profile trigger for Bluetooth A2DP
      connections.  We can't use the default ACTION_ACL_CONNECTED
      because it would apply the volume settings before routing
      has been established to the A2DP device.
    - Modify AudioService to send an intent after the audio
      route has changed to A2DP to ensure our volume change
      will apply to the correct device.
    - Allows the user to disable the A2DP profile and still
      trigger the profile change.

Fixes JIRA issue: BACON-47

Change-Id: Ib51dac6d79abbaf494b86af4480e293162814459
Restored original autobrightness speed
The speed was changed from this commit:
https://github.com/CyanogenMod/android_frameworks_base/commit/e941b1e27f6aad

Change-Id: I0be1ebbafc20a067ec3c2c6f9851993182bfc994
Improved the minimum amount of time that must have elapsed for change the rotation

Change-Id: I36f27727bbd5d6d7a192ffb9222223ecda2be0eb
Frameworks: Lockscreen Blur

  If user selects "See through" under screen security,
  the locksceen background will now appear transparent
  with the content behind it blurred.

Modificaitons made to the orginal commit to support Hammerhead and Flo.
It seems full HD images causes rendering artifacts. To prevent this,
we scale the image size to something more manageable.

PS2: Reduce calls to System.Settngs
     Move bitmap scaling to DisplayPowerController
PS3: Fix styling
PS4: Fixes: 1. Black wallpaper after turning off see through
            2. Wallpaper flicker on unlock when blur is enabled
PS5: Ignore status bar and nav bar when capturing screenshots
PS6: 1. Remove content observer and unnecessary calls from viewManager
     2. Restructure the flow of setting the custom image
         * now closely follows setting album art as lockscreen image

Change-Id: I12abd661510ff398251cd404f5aea670f7710789
added FastCharge QS tile
adapted from the code of bigrushdog and kasperhettinga, thank you

Change-Id: I9f43768de609db8e2ded6c11b389696ae9982d80
storage: allow swapping primary storage for apps

Advanced storage settings patch series:
[1/4] vold: allow swapped storage paths at vold init
      http://review.cyanogenmod.org/56515
[2/4] Advanced storage: vold swap storage paths
      http://review.cyanogenmod.org/56516
[3/4] storage: allow swapping primary storage for apps
      http://review.cyanogenmod.org/56950
[4/4] Advanced storage: swap primary storage for apps
      http://review.cyanogenmod.org/56951

By setting the persistent system property
 persist.sys.env.switchexternal=1
the primary device for applications storage will be reported as
/storage/sdcard1. This method currently only works with non-emulated
storage. The path swapping will probably have to be relocated within
getExternalStorage() and other functions emulated storage swap to work.

Change-Id: Ie091eb632280c2dbfd00bbf5f9b0b09be0239234