diff options
author | Schneider Victor-tulias <victortulias@google.com> | 2022-02-16 19:31:34 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-02-16 19:31:34 +0000 |
commit | 83e242b6ed15593ed417fad0ecd47f7a5b609e3d (patch) | |
tree | 6c05fce31b9119b664c77feee2a7ee5ba799eaae | |
parent | fb31964773898d5d3d4b45dad065a58256384266 (diff) | |
parent | 82bd8a3ffe9c833a89371d2475978dbb5e95549b (diff) | |
download | systemui-83e242b6ed15593ed417fad0ecd47f7a5b609e3d.tar.gz |
Merge "Expose fallback app title and icon bitmap loading flows."
-rw-r--r-- | iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java | 75 |
1 files changed, 52 insertions, 23 deletions
diff --git a/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java b/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java index cd3ad25..fc37dac 100644 --- a/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java +++ b/iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java @@ -370,26 +370,14 @@ public abstract class BaseIconCache { object = infoProvider.get(); providerFetchedOnce = true; - if (object != null) { - entry.bitmap = cachingLogic.loadIcon(mContext, object); - } else { - if (usePackageIcon) { - CacheEntry packageEntry = getEntryForPackageLocked( - componentName.getPackageName(), user, false); - if (packageEntry != null) { - if (DEBUG) Log.d(TAG, "using package default icon for " + - componentName.toShortString()); - entry.bitmap = packageEntry.bitmap; - entry.title = packageEntry.title; - entry.contentDescription = packageEntry.contentDescription; - } - } - if (entry.bitmap == null) { - if (DEBUG) Log.d(TAG, "using default icon for " + - componentName.toShortString()); - entry.bitmap = getDefaultIcon(user); - } - } + loadFallbackIcon( + object, + entry, + cachingLogic, + usePackageIcon, + /* usePackageTitle= */ true, + componentName, + user); } if (TextUtils.isEmpty(entry.title)) { @@ -398,15 +386,56 @@ public abstract class BaseIconCache { providerFetchedOnce = true; } if (object != null) { - entry.title = cachingLogic.getLabel(object); - entry.contentDescription = mPackageManager.getUserBadgedLabel( - cachingLogic.getDescription(object, entry.title), user); + loadFallbackTitle(object, entry, cachingLogic, user); } } } return entry; } + /** + * Fallback method for loading an icon bitmap. + */ + protected <T> void loadFallbackIcon( + T object, CacheEntry entry, @NonNull CachingLogic<T> cachingLogic, + boolean usePackageIcon, boolean usePackageTitle, @NonNull ComponentName componentName, + @NonNull UserHandle user) { + if (object != null) { + entry.bitmap = cachingLogic.loadIcon(mContext, object); + } else { + if (usePackageIcon) { + CacheEntry packageEntry = getEntryForPackageLocked( + componentName.getPackageName(), user, false); + if (packageEntry != null) { + if (DEBUG) Log.d(TAG, "using package default icon for " + + componentName.toShortString()); + entry.bitmap = packageEntry.bitmap; + entry.contentDescription = packageEntry.contentDescription; + + if (usePackageTitle) { + entry.title = packageEntry.title; + } + } + } + if (entry.bitmap == null) { + if (DEBUG) Log.d(TAG, "using default icon for " + + componentName.toShortString()); + entry.bitmap = getDefaultIcon(user); + } + } + } + + /** + * Fallback method for loading an app title. + */ + protected <T> void loadFallbackTitle( + T object, CacheEntry entry, @NonNull CachingLogic<T> cachingLogic, + @NonNull UserHandle user) { + entry.title = cachingLogic.getLabel(object); + entry.contentDescription = mPackageManager.getUserBadgedLabel( + cachingLogic.getDescription(object, entry.title), user); + } + public synchronized void clear() { assertWorkerThread(); mIconDb.clear(); |