summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchneider Victor-tulias <victortulias@google.com>2022-02-16 19:31:34 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-02-16 19:31:34 +0000
commit83e242b6ed15593ed417fad0ecd47f7a5b609e3d (patch)
tree6c05fce31b9119b664c77feee2a7ee5ba799eaae
parentfb31964773898d5d3d4b45dad065a58256384266 (diff)
parent82bd8a3ffe9c833a89371d2475978dbb5e95549b (diff)
downloadsystemui-83e242b6ed15593ed417fad0ecd47f7a5b609e3d.tar.gz
Merge "Expose fallback app title and icon bitmap loading flows."
-rw-r--r--iconloaderlib/src/com/android/launcher3/icons/cache/BaseIconCache.java75
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();