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

Commit 4fb845e4 authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Use IconDrawableFactory in AppPreferenceRepository" into main

parents 29941919 015a98ac
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -19,10 +19,13 @@ package com.android.settings.datausage.lib
import android.content.Context
import android.content.pm.PackageManager
import android.os.UserHandle
import android.util.IconDrawableFactory
import androidx.preference.Preference
import com.android.settingslib.Utils

class AppPreferenceRepository(private val context: Context) {
class AppPreferenceRepository(
    private val context: Context,
    private val iconDrawableFactory: IconDrawableFactory = IconDrawableFactory.newInstance(context),
) {
    private val packageManager = context.packageManager

    fun loadAppPreferences(uids: List<Int>): List<Preference> = uids.flatMap { uid ->
@@ -38,7 +41,7 @@ class AppPreferenceRepository(private val context: Context) {
    private fun getPreference(packageName: String, userId: Int): Preference? = try {
        val app = packageManager.getApplicationInfoAsUser(packageName, 0, userId)
        Preference(context).apply {
            icon = Utils.getBadgedIcon(context, app)
            icon = iconDrawableFactory.getBadgedIcon(app)
            title = app.loadLabel(packageManager)
            isSelectable = false
        }
+7 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import android.os.UserHandle
import android.util.IconDrawableFactory
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
@@ -43,7 +44,9 @@ class AppPreferenceRepositoryTest {
        on { packageManager } doReturn packageManager
    }

    private val repository = AppPreferenceRepository(context)
    private val mockIconDrawableFactory = mock<IconDrawableFactory>()

    private val repository = AppPreferenceRepository(context, mockIconDrawableFactory)

    @Test
    fun loadAppPreferences_packageNotFound_returnEmpty() {
@@ -61,9 +64,11 @@ class AppPreferenceRepositoryTest {
    @Test
    fun loadAppPreferences_packageFound_returnPreference() {
        val app = mock<ApplicationInfo> {
            on { loadUnbadgedIcon(any()) } doReturn UNBADGED_ICON
            on { loadLabel(any()) } doReturn LABEL
        }
        mockIconDrawableFactory.stub {
            on { getBadgedIcon(app) } doReturn UNBADGED_ICON
        }
        packageManager.stub {
            on {
                getApplicationInfoAsUser(PACKAGE_NAME, 0, UserHandle.getUserId(UID))