From 015a98ac38295f98d61ff816d5ae7565d0750cc7 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Tue, 5 Dec 2023 14:56:47 +0800 Subject: [PATCH] Use IconDrawableFactory in AppPreferenceRepository Bug: 314757827 Test: manual - on AppDataUsage Test: unit test Change-Id: Ica559ce044ebddfa8bc3ce994f9266ea1aabbe84 --- .../settings/datausage/lib/AppPreferenceRepository.kt | 9 ++++++--- .../datausage/lib/AppPreferenceRepositoryTest.kt | 9 +++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt b/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt index a71bc8fcf20..3bfb24a2f70 100644 --- a/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt +++ b/src/com/android/settings/datausage/lib/AppPreferenceRepository.kt @@ -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): List = 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 } diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt index c7371ee4e96..05fce8fa338 100644 --- a/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt +++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt @@ -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() + + 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 { - 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))