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

Commit 9a382d26 authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

Merge "Changing BaseIconFactory to kotlin" into main

parents 740b1f18 14102ff4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ import android.util.Slog
import androidx.tracing.Trace
import com.android.internal.annotations.VisibleForTesting
import com.android.launcher3.icons.BaseIconFactory
import com.android.launcher3.icons.BaseIconFactory.MODE_DEFAULT
import com.android.launcher3.icons.BaseIconFactory.Companion.MODE_DEFAULT
import com.android.launcher3.icons.IconProvider
import com.android.wm.shell.R
import com.android.wm.shell.common.UserProfileContexts
+4 −3
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableContext
import androidx.test.filters.SmallTest
import com.android.launcher3.icons.BaseIconFactory
import com.android.launcher3.icons.BaseIconFactory.MODE_DEFAULT
import com.android.launcher3.icons.BaseIconFactory.Companion.MODE_DEFAULT
import com.android.launcher3.icons.IconProvider
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.TestRunningTaskInfoBuilder
@@ -41,11 +41,11 @@ import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.sysui.UserChangeListener
import com.android.wm.shell.windowdecor.common.WindowDecorTaskResourceLoader.AppResources
import com.google.common.truth.Truth.assertThat
import java.util.Locale
import org.junit.Assert.assertThrows
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyFloat
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.kotlin.any
@@ -58,6 +58,7 @@ import org.mockito.kotlin.spy
import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoMoreInteractions
import org.mockito.kotlin.whenever
import java.util.Locale

/**
 * Tests for [WindowDecorTaskResourceLoader].
@@ -155,7 +156,7 @@ class WindowDecorTaskResourceLoaderTest : ShellTestCase() {

        loader.getHeaderIcon(task)

        verify(mockHeaderIconFactory).createIconBitmap(any(), anyFloat())
        verify(mockHeaderIconFactory).createIconBitmap(any(), anyFloat(), anyInt(), anyBoolean())
        assertThat(loader.taskToResourceCache[task.taskId]?.appIcon).isNotNull()
    }

+3 −3
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public class ConversationIconFactory extends BaseIconFactory {
     * Returns the conversation info drawable
     */
    public Drawable getBaseIconDrawable(ShortcutInfo shortcutInfo) {
        return mLauncherApps.getShortcutIconDrawable(shortcutInfo, mFullResIconDpi);
        return mLauncherApps.getShortcutIconDrawable(shortcutInfo, fullResIconDpi);
    }

    /**
@@ -99,7 +99,7 @@ public class ConversationIconFactory extends BaseIconFactory {
        try {
            final ApplicationInfo appInfo = mPackageManager.getApplicationInfoAsUser(
                    packageName, PackageManager.GET_META_DATA, userId);
            badge = Utils.getBadgedIcon(mContext, appInfo);
            badge = Utils.getBadgedIcon(context, appInfo);
        } catch (PackageManager.NameNotFoundException e) {
            badge = mPackageManager.getDefaultActivityIcon();
        }
@@ -123,7 +123,7 @@ public class ConversationIconFactory extends BaseIconFactory {
            boolean important) {
        return new ConversationIconDrawable(baseIcon,
                getAppBadge(packageName, UserHandle.getUserId(uid)),
                mIconBitmapSize,
                iconBitmapSize,
                mImportantConversationColor,
                important);
    }
+40 −44
Original line number Diff line number Diff line
@@ -111,56 +111,52 @@ constructor(
    private val densityDpi: Int
        get() = sysuiContext.resources.configuration.densityDpi

    private class StandardNotificationIcons(
        context: Context,
        fillResIconDpi: Int,
        iconBitmapSize: Int,
    ) : BaseIconFactory(context, fillResIconDpi, iconBitmapSize) {

        init {
            if (notificationsRedesignThemedAppIcons()) {
    private val standardIconFactory: BaseIconFactory
        get() =
            BaseIconFactory(
                context = sysuiContext,
                fullResIconDpi = densityDpi,
                iconBitmapSize = iconSize,
                // Initialize the controller so that we can support themed icons.
                mThemeController =
                themeController =
                    if (notificationsRedesignThemedAppIcons())
                        MonoIconThemeController(
                            shouldForceThemeIcon = true,
                            colorProvider = { ctx ->
                                val res = ctx.resources
                                intArrayOf(
                                    /* background */ res.getColor(R.color.materialColorPrimary),
                                /* icon */ res.getColor(R.color.materialColorSurfaceContainerHigh),
                                /* adaptive background */ res.getColor(R.color.materialColorPrimary)
                                    /* icon */ res.getColor(
                                        R.color.materialColorSurfaceContainerHigh
                                    ),
                                    /* adaptive background */ res.getColor(
                                        R.color.materialColorPrimary
                                    ),
                                )
                            },
                        )
            }
        }
    }
                    else null,
            )

    private class SkeletonNotificationIcons(
        context: Context,
        fillResIconDpi: Int,
        iconBitmapSize: Int,
    ) : BaseIconFactory(context, fillResIconDpi, iconBitmapSize) {
        init {
            mThemeController =
    private val skeletonIconFactory: BaseIconFactory
        get() =
            BaseIconFactory(
                context = sysuiContext,
                fullResIconDpi = densityDpi,
                iconBitmapSize = iconSize,
                themeController =
                    MonoIconThemeController(
                        shouldForceThemeIcon = true,
                        colorProvider = { _ ->
                            intArrayOf(
                            /* background */ Color.BLACK,
                            /* icon */ Color.WHITE,
                            /* adaptive background */ Color.BLACK
                                /* background */ Color.BLACK, /* icon */
                                Color.WHITE,

                                /* adaptive background */ Color.BLACK,
                            )
                        },
                    ),
            )
        }
    }

    private val standardIconFactory: BaseIconFactory
        get() = StandardNotificationIcons(sysuiContext, densityDpi, iconSize)

    private val skeletonIconFactory: BaseIconFactory
        get() = SkeletonNotificationIcons(sysuiContext, densityDpi, iconSize)

    /** Cache of standard-appearance icons as used in the notification row and guts */
    private val standardCache = AppIconCache(systemClock = systemClock)