From b313ac7a30736a5facea1d300c44d4673e9d3248 Mon Sep 17 00:00:00 2001 From: Rohit Goyal Date: Tue, 12 Mar 2024 15:29:28 +0000 Subject: [PATCH] Bugfix: Add null safety when accessing icon database for main activities for LoaderTask `loadAllApps`. Test: verified bugfixes locally. Bug: 329145005 Flag: NA (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3a6318ab5e2dee0b85c3270467477854301497a1) Merged-In: I9f3145390d0596e55229d7dda08a4a3034d75f31 Change-Id: I9f3145390d0596e55229d7dda08a4a3034d75f31 --- .../android/launcher3/icons/IconCache.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/com/android/launcher3/icons/IconCache.java b/src/com/android/launcher3/icons/IconCache.java index 8e73660ae0..41e3ef026b 100644 --- a/src/com/android/launcher3/icons/IconCache.java +++ b/src/com/android/launcher3/icons/IconCache.java @@ -469,17 +469,22 @@ public class IconCache extends BaseIconCache { duplicateIconRequestsMap.get(cn); if (cn != null) { - CacheEntry entry = cacheLocked( - cn, - /* user = */ sectionKey.first, - () -> duplicateIconRequests.get(0).launcherActivityInfo, - mLauncherActivityInfoCachingLogic, - c, - /* usePackageIcon= */ false, - /* useLowResIcons = */ sectionKey.second); + if (duplicateIconRequests != null) { + CacheEntry entry = cacheLocked( + cn, + /* user = */ sectionKey.first, + () -> duplicateIconRequests.get(0).launcherActivityInfo, + mLauncherActivityInfoCachingLogic, + c, + /* usePackageIcon= */ false, + /* useLowResIcons = */ sectionKey.second); - for (IconRequestInfo iconRequest : duplicateIconRequests) { - applyCacheEntry(entry, iconRequest.itemInfo); + for (IconRequestInfo iconRequest : duplicateIconRequests) { + applyCacheEntry(entry, iconRequest.itemInfo); + } + } else { + Log.e(TAG, "Found entry in icon database but no main activity " + + "entry for cn: " + cn); } } }