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
Add missing center clock layout on MSIM device.

http://review.cyanogenmod.org/67606 missing for MSIM support causing FC on SystemUI app.

Change-Id: I49b2e164d665a67f2d16094320a27fa3495abf18
base: update link ring-notifications after read user settings

Change-Id: Ib424124dc20e38243e572333e323ba97aacb1111
JIRA: CYAN-3559
Issue: https://jira.cyanogenmod.org/browse/CYAN-3559
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
msim: Add missing changes from New Theme Engine [1/6]

Change-Id: I52051a8cefd0d4632d2a2255a03689cc037e6995
SystemUI: Restore bounds when loading new gradient

This fixes an issue introduced with the reloading of the nav bar
transitions after a theme change in Change-Id: I256afc30fc018ea752769029c5246bc7310c23a6

Change-Id: I648039506b826583d554b2a0cf4f6ab9a9bb1de8
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
QS: Make CameraTile respect locale changes for the label.

Change-Id: Id4be230c443263b4185e5b4af6e8df6805a7aac5
QS: Make PerformanceProfile Tile respect locale change for label.

Change-Id: I5afaa0c0f468e3b79f5b22c4c2804463d7a16651
Themes: Add STYLE_THUMBNAIL to PreviewColumns

Change-Id: Ie18264cbede92220335400428e67735866cd442d
Themes: Add helper methods for creating complete component maps

These methods can be used to apply a theme while replacing any
components not found in the theme with the defaults.

Default components come from the default theme for the system
with any missing components in that default theme coming from HOLO.

Change-Id: Idea55cc684ccc8304b01a991c36b6993f55b8880
server: make clat interface name public

modify clat interface name from private to public

Change-Id: Ib937c1dd7b4bc215fba57703fc2f4d694b336e6f
CRs-Fixed: 536223
(cherry picked from commit 43a76564f0a2771f4a09ba86edefec3fc66badbc)
(cherry picked from commit 0448fd4b63a179c953449c3e8b40345eec9727b1)
(cherry picked from commit cbde0fcd3fb6882f0572afb3200e122a4d30d909)