From 294af233a9c653e2166e0be6c61f082253ff5bca Mon Sep 17 00:00:00 2001 From: Will Harmon Date: Fri, 24 Jun 2016 17:02:34 -0700 Subject: [PATCH] Allow system apps to have disabled QS tiles. Otherwise the tile can get removed on bootup if the tile is disabled by default. Fixes: 29509725 Change-Id: Icc6b63b6cf9b9cdca367c79c3175896c87041e05 --- .../com/android/systemui/qs/external/CustomTile.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java index d3f5d2667ebff..569a567c25fab 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java @@ -82,8 +82,11 @@ public class CustomTile extends QSTile implements TileChangeListen private void setTileIcon() { try { PackageManager pm = mContext.getPackageManager(); - ServiceInfo info = pm.getServiceInfo(mComponent, - PackageManager.MATCH_ENCRYPTION_AWARE_AND_UNAWARE); + int flags = PackageManager.MATCH_ENCRYPTION_AWARE_AND_UNAWARE; + if (isSystemApp(pm)) { + flags |= PackageManager.MATCH_DISABLED_COMPONENTS; + } + ServiceInfo info = pm.getServiceInfo(mComponent, flags); int icon = info.icon != 0 ? info.icon : info.applicationInfo.icon; // Update the icon if its not set or is the default icon. @@ -103,6 +106,10 @@ public class CustomTile extends QSTile implements TileChangeListen } } + private boolean isSystemApp(PackageManager pm) throws PackageManager.NameNotFoundException { + return pm.getApplicationInfo(mComponent.getPackageName(), 0).isSystemApp(); + } + /** * Compare two icons, only works for resources. */