Use IconDrawableFactory in AppPreferenceRepository
Bug: 314757827 Test: manual - on AppDataUsage Test: unit test Change-Id: Ica559ce044ebddfa8bc3ce994f9266ea1aabbe84
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
@@ -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))
|
||||
|
Reference in New Issue
Block a user