From 4a34020ffced0dd05f8435eaa9d01228ebe60d8b Mon Sep 17 00:00:00 2001 From: Pinyao Ting Date: Thu, 15 Dec 2022 20:37:09 +0000 Subject: [Do Not Merge] Revert "Implement a global maximum on number of shortcuts an app can publish" This reverts commit ff75f06d8a5e712b00e59ab1892162a61fa1e988. Reason for revert: bugs related to conversation shortcuts can lead to system retaining shortcuts exceeding this number, causing crashes in chat apps such as whatsapp, messages ... e.t.c Change-Id: I3440b852dbedf5d5bab4f1d552fe7aaa58a6da91 --- .../com/android/server/pm/ShortcutPackage.java | 8 +--- .../com/android/server/pm/ShortcutService.java | 49 ++++------------------ 2 files changed, 8 insertions(+), 49 deletions(-) diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java index 3814d63f2ad1..f2bfb2aa1405 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackage.java +++ b/services/core/java/com/android/server/pm/ShortcutPackage.java @@ -1332,15 +1332,9 @@ class ShortcutPackage extends ShortcutPackageItem { } // Then make sure none of the activities have more than the max number of shortcuts. - int total = 0; for (int i = counts.size() - 1; i >= 0; i--) { - int count = counts.valueAt(i); - service.enforceMaxActivityShortcuts(count); - total += count; + service.enforceMaxActivityShortcuts(counts.valueAt(i)); } - - // Finally make sure that the app doesn't have more than the max number of shortcuts. - service.enforceMaxAppShortcuts(total); } /** diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index 3682bf1e3d5f..0c42ff6be520 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -171,9 +171,6 @@ public class ShortcutService extends IShortcutService.Stub { @VisibleForTesting static final int DEFAULT_MAX_SHORTCUTS_PER_ACTIVITY = 15; - @VisibleForTesting - static final int DEFAULT_MAX_SHORTCUTS_PER_APP = 60; - @VisibleForTesting static final int DEFAULT_MAX_ICON_DIMENSION_DP = 96; @@ -248,11 +245,6 @@ public class ShortcutService extends IShortcutService.Stub { */ String KEY_MAX_SHORTCUTS = "max_shortcuts"; - /** - * Key name for the max dynamic shortcuts per app. (int) - */ - String KEY_MAX_SHORTCUTS_PER_APP = "max_shortcuts_per_app"; - /** * Key name for icon compression quality, 0-100. */ @@ -309,15 +301,10 @@ public class ShortcutService extends IShortcutService.Stub { private final SparseArray mShortcutNonPersistentUsers = new SparseArray<>(); - /** - * Max number of dynamic + manifest shortcuts that each activity can have at a time. - */ - private int mMaxShortcutsPerActivity; - /** * Max number of dynamic + manifest shortcuts that each application can have at a time. */ - private int mMaxShortcutsPerApp; + private int mMaxShortcuts; /** * Max number of updating API calls that each application can make during the interval. @@ -742,12 +729,9 @@ public class ShortcutService extends IShortcutService.Stub { mMaxUpdatesPerInterval = Math.max(0, (int) parser.getLong( ConfigConstants.KEY_MAX_UPDATES_PER_INTERVAL, DEFAULT_MAX_UPDATES_PER_INTERVAL)); - mMaxShortcutsPerActivity = Math.max(0, (int) parser.getLong( + mMaxShortcuts = Math.max(0, (int) parser.getLong( ConfigConstants.KEY_MAX_SHORTCUTS, DEFAULT_MAX_SHORTCUTS_PER_ACTIVITY)); - mMaxShortcutsPerApp = Math.max(0, (int) parser.getLong( - ConfigConstants.KEY_MAX_SHORTCUTS_PER_APP, DEFAULT_MAX_SHORTCUTS_PER_APP)); - final int iconDimensionDp = Math.max(1, injectIsLowRamDevice() ? (int) parser.getLong( ConfigConstants.KEY_MAX_ICON_DIMENSION_DP_LOWRAM, @@ -1665,33 +1649,16 @@ public class ShortcutService extends IShortcutService.Stub { * {@link #getMaxActivityShortcuts()}. */ void enforceMaxActivityShortcuts(int numShortcuts) { - if (numShortcuts > mMaxShortcutsPerActivity) { + if (numShortcuts > mMaxShortcuts) { throw new IllegalArgumentException("Max number of dynamic shortcuts exceeded"); } } - /** - * @throws IllegalArgumentException if {@code numShortcuts} is bigger than - * {@link #getMaxAppShortcuts()}. - */ - void enforceMaxAppShortcuts(int numShortcuts) { - if (numShortcuts > mMaxShortcutsPerApp) { - throw new IllegalArgumentException("Max number of dynamic shortcuts per app exceeded"); - } - } - /** * Return the max number of dynamic + manifest shortcuts for each launcher icon. */ int getMaxActivityShortcuts() { - return mMaxShortcutsPerActivity; - } - - /** - * Return the max number of dynamic + manifest shortcuts for each launcher icon. - */ - int getMaxAppShortcuts() { - return mMaxShortcutsPerApp; + return mMaxShortcuts; } /** @@ -2108,8 +2075,6 @@ public class ShortcutService extends IShortcutService.Stub { ps.ensureNotImmutable(shortcut.getId(), /*ignoreInvisible=*/ true); fillInDefaultActivity(Arrays.asList(shortcut)); - enforceMaxAppShortcuts(ps.getShortcutCount()); - if (!shortcut.hasRank()) { shortcut.setRank(0); } @@ -2528,7 +2493,7 @@ public class ShortcutService extends IShortcutService.Stub { throws RemoteException { verifyCaller(packageName, userId); - return mMaxShortcutsPerActivity; + return mMaxShortcuts; } @Override @@ -4446,7 +4411,7 @@ public class ShortcutService extends IShortcutService.Stub { pw.print(" maxUpdatesPerInterval: "); pw.println(mMaxUpdatesPerInterval); pw.print(" maxShortcutsPerActivity: "); - pw.println(mMaxShortcutsPerActivity); + pw.println(mMaxShortcuts); pw.println(); mStatLogger.dump(pw, " "); @@ -4883,7 +4848,7 @@ public class ShortcutService extends IShortcutService.Stub { @VisibleForTesting int getMaxShortcutsForTest() { - return mMaxShortcutsPerActivity; + return mMaxShortcuts; } @VisibleForTesting -- cgit v1.2.3-59-g8ed1b