diff options
| author | 2023-03-07 18:38:45 +0000 | |
|---|---|---|
| committer | 2023-03-07 18:38:45 +0000 | |
| commit | 038e86d89a7041fef641860e7d102b9b2255ab85 (patch) | |
| tree | 675ca76008b8c0083a4707fa3abb58252a7f6536 | |
| parent | 12dbc3092326aa7ed8c02c676d054cc286dbbe3f (diff) | |
| parent | 68b75d0ceffd98599aee76c310d9298991d8b521 (diff) | |
Merge "[People Service] Re-order clean-up to only occur once per shortcuts update" into tm-qpr-dev
| -rw-r--r-- | services/people/java/com/android/server/people/data/DataManager.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/services/people/java/com/android/server/people/data/DataManager.java b/services/people/java/com/android/server/people/data/DataManager.java index eff9e8da9a76..872734f7a01d 100644 --- a/services/people/java/com/android/server/people/data/DataManager.java +++ b/services/people/java/com/android/server/people/data/DataManager.java @@ -129,7 +129,6 @@ public class DataManager { private final List<PeopleService.ConversationsListener> mConversationsListeners = new ArrayList<>(1); private final Handler mHandler; - private ContentObserver mCallLogContentObserver; private ContentObserver mMmsSmsContentObserver; @@ -1106,6 +1105,7 @@ public class DataManager { @NonNull List<ShortcutInfo> shortcuts, @NonNull UserHandle user) { mInjector.getBackgroundExecutor().execute(() -> { PackageData packageData = getPackage(packageName, user.getIdentifier()); + boolean hasCachedShortcut = false; for (ShortcutInfo shortcut : shortcuts) { if (ShortcutHelper.isConversationShortcut( shortcut, mShortcutServiceInternal, user.getIdentifier())) { @@ -1114,15 +1114,18 @@ public class DataManager { ? packageData.getConversationInfo(shortcut.getId()) : null; if (conversationInfo == null || !conversationInfo.isShortcutCachedForNotification()) { - // This is a newly cached shortcut. Clean up the existing cached - // shortcuts to ensure the cache size is under the limit. - cleanupCachedShortcuts(user.getIdentifier(), - MAX_CACHED_RECENT_SHORTCUTS - 1); + hasCachedShortcut = true; } } addOrUpdateConversationInfo(shortcut); } } + // Added at least one new conversation. Uncache older existing cached + // shortcuts to ensure the cache size is under the limit. + if (hasCachedShortcut) { + cleanupCachedShortcuts(user.getIdentifier(), + MAX_CACHED_RECENT_SHORTCUTS); + } }); } |