diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/external/CustomTile.java | 11 |
1 files 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 d3f5d2667ebf..569a567c25fa 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<QSTile.State> 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<QSTile.State> implements TileChangeListen } } + private boolean isSystemApp(PackageManager pm) throws PackageManager.NameNotFoundException { + return pm.getApplicationInfo(mComponent.getPackageName(), 0).isSystemApp(); + } + /** * Compare two icons, only works for resources. */ |