Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 249787c2 authored by Charlie Anderson's avatar Charlie Anderson
Browse files

Reapplying "Do not cache default app icons when re..."

(Revert "Revert "Revert^2 "Do not cache default app icons when re...")

Revert submission 30344002-revert-29570743-fix-default-app-icons-BUQQDXYLJD

Reason for revert: Need to reapply P1 fix

Reverted changes: /q/submissionid:30344002-revert-29570743-fix-default-app-icons-BUQQDXYLJD

Change-Id: I98745a9bfd5ddbf905548bb5ecac1d60d7220680
parent 44b299fe
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -211,7 +211,7 @@ public class BaseIconFactory implements AutoCloseable {
     * The bitmap is visually normalized with other icons and has enough spacing to add shadow.
     *
     * @param icon source of the icon
     * @return a bitmap suitable for disaplaying as an icon at various system UIs.
     * @return a bitmap suitable for displaying as an icon at various system UIs.
     */
    @TargetApi(Build.VERSION_CODES.TIRAMISU)
    @NonNull
+3 −1
Original line number Diff line number Diff line
@@ -342,7 +342,9 @@ public abstract class BaseIconCache {
        // Icon can't be loaded from cachingLogic, which implies alternative icon was loaded
        // (e.g. fallback icon, default icon). So we drop here since there's no point in caching
        // an empty entry.
        if (bitmapInfo.isNullOrLowRes()) return;
        if (bitmapInfo.isNullOrLowRes() || isDefaultIcon(bitmapInfo, user)) {
            return;
        }

        CharSequence entryTitle = cachingLogic.getLabel(object);
        if (TextUtils.isEmpty(entryTitle)) {
+14 −4
Original line number Diff line number Diff line
@@ -21,12 +21,14 @@ import android.content.Context
import android.content.pm.LauncherActivityInfo
import android.os.Build.VERSION
import android.os.UserHandle
import android.util.Log
import com.android.launcher3.Flags.useNewIconForArchivedApps
import com.android.launcher3.icons.BaseIconFactory.IconOptions
import com.android.launcher3.icons.BitmapInfo
import com.android.launcher3.icons.IconProvider

object LauncherActivityCachingLogic : CachingLogic<LauncherActivityInfo> {
    const val TAG = "LauncherActivityCachingLogic"

    override fun getComponent(info: LauncherActivityInfo): ComponentName = info.componentName

@@ -46,10 +48,18 @@ object LauncherActivityCachingLogic : CachingLogic<LauncherActivityInfo> {
            iconOptions.setIsArchived(
                useNewIconForArchivedApps() && VERSION.SDK_INT >= 35 && info.activityInfo.isArchived
            )
            return li.createBadgedIconBitmap(
                cache.iconProvider.getIcon(info.activityInfo, li.fullResIconDpi),
                iconOptions,
            val iconDrawable = cache.iconProvider.getIcon(info.activityInfo, li.fullResIconDpi)
            if (context.packageManager.isDefaultApplicationIcon(iconDrawable)) {
                Log.w(
                    TAG,
                    "loadIcon: Default app icon returned from PackageManager." +
                        " component=${info.componentName}, user=${info.user}",
                    Exception(),
                )
                // Make sure this default icon always matches BaseIconCache#getDefaultIcon
                return cache.getDefaultIcon(info.user)
            }
            return li.createBadgedIconBitmap(iconDrawable, iconOptions)
        }
    }