[1/7] Base: Blacklist support

telephony: https://gerrit.omnirom.org/#/c/6347/
InCallUI: https://gerrit.omnirom.org/#/c/5669/
Mms: https://gerrit.omnirom.org/#/c/5671/
Settings: https://gerrit.omnirom.org/#/c/5011/
TelephonyProvider: https://gerrit.omnirom.org/#/c/5012/
Telephony: https://gerrit.omnirom.org/#/c/5010/

Change-Id: Ic5a59be11f76b4a9eba075d9c3525086b3ee389e

[1/7] Base: Blacklist permission

There is no permission check for blacklist.
So any app can edit the blacklist.
Add a system-only permission to prevent this.

Change-Id: I1d817e7127bb892aa6f4d4b22fdfd3efb4baa3fa
settingsprovider: set default values for some power menu options

Change-Id: I63989725f1d4c8baaab19d79cc3f48ac51ce029d
Signed-off-by: Arnav Gupta <championswimmer@aokp.co>
add idea/studio config

this should allow opening this folder in idea/studio
and editing inside the IDE

Change-Id: If348d493d207d997dec89e04caf434e40fa2f209
Signed-off-by: Arnav Gupta <championswimmer@aokp.co>
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
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
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
Toggles: recreate toggles on theme change

Change-Id: If6ab6d345fc6ad8521430eb3bc59ea98fdb62a0a
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
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