Revert "Implement a global maximum on number of shortcuts an app can publish"
This reverts commit 7622d6da0e.
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
Bug: 250576066
Merged-In: I1d7c265160389e45cf57a4bf8ce756376068d5b7
Change-Id: I1d7c265160389e45cf57a4bf8ce756376068d5b7
This commit is contained in:
@@ -1479,15 +1479,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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -179,9 +179,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;
|
||||
|
||||
@@ -256,11 +253,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.
|
||||
*/
|
||||
@@ -332,15 +324,10 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||
private final SparseArray<ShortcutNonPersistentUser> 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.
|
||||
@@ -800,12 +787,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,
|
||||
@@ -1761,33 +1745,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;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2246,8 +2213,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);
|
||||
}
|
||||
@@ -2806,7 +2771,7 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||
throws RemoteException {
|
||||
verifyCaller(packageName, userId);
|
||||
|
||||
return mMaxShortcutsPerActivity;
|
||||
return mMaxShortcuts;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -4858,7 +4823,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, " ");
|
||||
@@ -5346,7 +5311,7 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||
|
||||
@VisibleForTesting
|
||||
int getMaxShortcutsForTest() {
|
||||
return mMaxShortcutsPerActivity;
|
||||
return mMaxShortcuts;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
Reference in New Issue
Block a user