Fix updateShortcuts() with icons
But 29822569
Change-Id: I72a0903ccc8acffc42f40d9df7b99ed6de26b66d
diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java
index 67e4e93..3028386 100644
--- a/services/core/java/com/android/server/pm/ShortcutPackage.java
+++ b/services/core/java/com/android/server/pm/ShortcutPackage.java
@@ -1450,6 +1450,16 @@
Log.e(TAG_VERIFY, "Package " + getPackageName() + ": shortcut " + si.getId()
+ " is floating, but has rank=" + si.getRank());
}
+ if (si.getIcon() != null) {
+ failed = true;
+ Log.e(TAG_VERIFY, "Package " + getPackageName() + ": shortcut " + si.getId()
+ + " still has an icon");
+ }
+ if (si.hasIconFile() && si.hasIconResource()) {
+ failed = true;
+ Log.e(TAG_VERIFY, "Package " + getPackageName() + ": shortcut " + si.getId()
+ + " has both resource and bitmap icons");
+ }
}
if (failed) {
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index 1db1ce7..77f70cd 100644
--- a/services/core/java/com/android/server/pm/ShortcutService.java
+++ b/services/core/java/com/android/server/pm/ShortcutService.java
@@ -1046,9 +1046,10 @@
new File(shortcut.getBitmapPath()).delete();
shortcut.setBitmapPath(null);
- shortcut.setIconResourceId(0);
- shortcut.clearFlags(ShortcutInfo.FLAG_HAS_ICON_FILE | ShortcutInfo.FLAG_HAS_ICON_RES);
}
+ shortcut.setIconResourceId(0);
+ shortcut.setIconResName(null);
+ shortcut.clearFlags(ShortcutInfo.FLAG_HAS_ICON_FILE | ShortcutInfo.FLAG_HAS_ICON_RES);
}
public void cleanupBitmapsForPackage(@UserIdInt int userId, String packageName) {
@@ -1165,8 +1166,7 @@
final long token = injectClearCallingIdentity();
try {
// Clear icon info on the shortcut.
- shortcut.setIconResourceId(0);
- shortcut.setBitmapPath(null);
+ removeIcon(userId, shortcut);
final Icon icon = shortcut.getIcon();
if (icon == null) {