Fix ResourceNotFoundException when updating  applied theme

If the user has a theme applied and there is an update to that theme,
then the themed apps will crash. This is because the theme's APK path changes,
but the apps do not update their resources. Apps were not updating their resources
because updateConfiguration() determined that the config (which only has pkgName) hasn't changed.

The problem is fixed by first applying the default theme config and then re-applying the
updated theme.

SystemUI was crashing with a NPE while verifying this fix, so a NP check was added to SystemUI as well.

Change-Id: I00e32fc1535b4d279fcb37c35f868501ecc1dd19
SystemUI: allow for the clock to be centered (1 of 2)

This allows the clock to be centered and does
not break the normal functionality of the status bar.
Overflow for status bar icons is adjusted accordingly
when the clock is centered. The clock slides in/out
when centered and the ticker is running.

Change-Id: I8bb99af278d316d7632cd07ff5c4722c5a27cb12
IconPackHelper: Respect the original size of bitmap icons

When use icon packs on low-resolution devices, for example, my HDPI
phone, it seems that using the size returned by
getLauncherLargeIconSize() will cause a blurness on
some icons that are not included in the icon pack because of the compose
function.

This patch respects the original size of the icon if the icon is an
instance of BitmapDrawable but use the size returned by
getLauncherLargeIconSize() if the icon is an instance of PaintDrawable.
This will remove icon blurness on low-resolution devices.

Change-Id: Ifcb39020d934a9c7cb409e1206a179d64f99aa37
SystemUI: fix torch toggle delay on boot

Change-Id: I7b1a1a310cf88fdde4250ae40643570016e1f380
Signed-off-by: Roman Birg <roman@cyngn.com>
Respect DPM when deciding whether keyguard is disabled by profile.

Change-Id: I2fd50e1edd517956a59770a2ecd754cea0003c1c
Restore lazy loading of LoadedApk resources

This was broken in 8fff544ec349593cfa61ae2f5ec59419fff666b6. Since that change,
resources are always initialized in getPackageInfo(), even if they haven't been
loaded before (mResources == null).

It shouldn't be necessary in *any* case to preload the resources at this point.
Anything using the resources should call LoadedApk.getResources(), which will
initialize them just when needed. Setting mResources to null resets the cache
and will force a reload the next time the resources are requested.

Change-Id: I9bc9986297478e99752b1e2b9bd04dab3dcc9656
AudioService: Show safe volume panel for non-interactive volume adjustments

If safe volume is active, apps calling mp.setVolume() to adjust the
headset to a value higher than the threshold will have the operation
fail silently because no volume dialog is active to pop up the
"do you wish to override" question.
This is particularly bad for peripherals that use the audio jack
(Square readers, Jawbone bands), since they usually require levels
close to maximum for proper communication and the app isn't prepared
to deal with a silent rejection of the requested volume.

Change-Id: I2047d199506106a87841b8b680007c5ab45b527b
Themes: Support applying components from multiple themes [1/3]

The current implementation assumes the components being passed
into the ThemeService belong to the same theme.  This patch uses
a Map instead of a List to pass in a mapping of components to
package names, allowing us to apply several components from
different themes.

Requesting a theme change now takes a Map<String, String> which
maps components to the theme package name they will be applied
from.
Example:
    Map<String, String> componentMap = new HashMap<String,String>();
    componentMap.add(ThemesColumns.MODIFIES_ICONS, "com.mytheme.blue");
    componentMap.add(ThemesColumns.MODIFIES_OVERLAYS, "com.mytheme.red");

    ThemeManager tm = (ThemeManager) contex.getSystemService(Context.THEME_SERVICE);
    tm.requestThemeChange(componentMap);

Change-Id: I13fa17eabecb824884fe522d5dc1822a4d7c55f4
Improve scrolling cache

Scrolling cache helps make short scrolls/flings smooth but will
cause stutter when long flings are made. This patch disables
scrolling cache when long flings are made.

This patch also fixes a related bug where scrolling cache will
not be enabled properly when transitioning from flinging to scrolling.

Patch Set 2: Calculate threshold based on maximum velocity (Sang Tae Park)

Credits: Pawit Pornkitprasan

Change-Id: I1fdbaad92263c9f983a32900e74eba1f0367902b
Signed-off-by: Arham Jamal <arhamjamal@gmail.com>
Smoother Upload and Download Animation

Change-Id: I6e6409cc85ad951019dbac10156d4aed92f4c5bc
Advanced reboot enabled by default (1/2)

Change-Id: Ie8ab34ecc532d14d296e33fa568e6cf3ebc681e8
MediaScanner behavior on boot (1/3)

Lets you enable/disable/ask (with a notification) media scanning on boot.
Can speed up boot and reduce initial boot lag from MediaScanner

Change-Id: I634ae96b1dcb493b966b4653589cd97523b63da7
disable camera sounds (2/3)

Change-Id: Iaa37bc6790fe32664f8b52178c14fe926ca7d4ce
Signed-off-by: sethyx <sethyx@gmail.com>
AOKP custom system animations (1/2)

Ported from here: http://gerrit.aokp.co/#/c/12304/

Thanks to Steve Spear

Change-Id: I38bc7b83edaff3c455f0dfe3ea5ede54a20ae07c
App sidebar (1/2)

Change-Id: I600a21fd780587ef84c8e1994adbaccc6098254d
add needed boolean methods

Change-Id: Id1620eb0f98bcdbbf70102d3911e3e11eda42f8a
[1/2] Add battery level around unlock ring

PS2:
added missing change in KeyguardSelectorView.java

Change-Id: Ia4dbc2335657c096c34349ec67c4adfec0aeb91b
[3/3] AudioFX: Add center frequency param to bassboost

Change-Id: I49da8e5ab24502d0de5c09b7fc9f4b8a51bead60
[3/3] AudioEffect: Add a stereo widener effect

Change-Id: Iab2035c5601394b060e7e77e85ad85aca6e4c89f
Custom carrier text [1/2]

Change-Id: Ib2869c8464dc2fc52ae662d63225d8973cdd05cf