summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chaohui Wang <chaohuiw@google.com> 2023-05-04 09:43:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-04 09:43:28 +0000
commit80fdefb718b056275fd42ecda26b27ca5cfcacd7 (patch)
treeb39a616c7fb1409721a4822e6a20ac88a8ceb51a
parent706cc5848c07d4ab29b5c5ebbc624df41d19468b (diff)
parent70b857ad8ec7383968b88bc7827807db62239b86 (diff)
Merge "Update AppListRepository getSystemPackageNames" into udc-dev
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt24
-rw-r--r--packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt34
-rw-r--r--packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt5
3 files changed, 20 insertions, 43 deletions
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt
index 2c3e58ece8e0..2b38b4cefe3e 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt
@@ -49,7 +49,7 @@ internal interface AppListRepository {
): Flow<(app: ApplicationInfo) -> Boolean>
/** Gets the system app package names. */
- fun getSystemPackageNamesBlocking(userId: Int, showInstantApps: Boolean): Set<String>
+ fun getSystemPackageNamesBlocking(userId: Int): Set<String>
}
/**
@@ -58,12 +58,8 @@ internal interface AppListRepository {
object AppListRepositoryUtil {
/** Gets the system app package names. */
@JvmStatic
- fun getSystemPackageNames(
- context: Context,
- userId: Int,
- showInstantApps: Boolean,
- ): Set<String> =
- AppListRepositoryImpl(context).getSystemPackageNamesBlocking(userId, showInstantApps)
+ fun getSystemPackageNames(context: Context, userId: Int): Set<String> =
+ AppListRepositoryImpl(context).getSystemPackageNamesBlocking(userId)
}
internal class AppListRepositoryImpl(private val context: Context) : AppListRepository {
@@ -140,12 +136,12 @@ internal class AppListRepositoryImpl(private val context: Context) : AppListRepo
): Flow<(app: ApplicationInfo) -> Boolean> =
userIdFlow.combine(showSystemFlow, ::showSystemPredicate)
- override fun getSystemPackageNamesBlocking(userId: Int, showInstantApps: Boolean) =
- runBlocking { getSystemPackageNames(userId, showInstantApps) }
+ override fun getSystemPackageNamesBlocking(userId: Int) =
+ runBlocking { getSystemPackageNames(userId) }
- private suspend fun getSystemPackageNames(userId: Int, showInstantApps: Boolean): Set<String> =
+ private suspend fun getSystemPackageNames(userId: Int): Set<String> =
coroutineScope {
- val loadAppsDeferred = async { loadApps(userId, showInstantApps) }
+ val loadAppsDeferred = async { loadApps(userId) }
val homeOrLauncherPackages = loadHomeOrLauncherPackages(userId)
val showSystemPredicate =
{ app: ApplicationInfo -> isSystemApp(app, homeOrLauncherPackages) }
@@ -184,10 +180,8 @@ internal class AppListRepositoryImpl(private val context: Context) : AppListRepo
}
}
- private fun isSystemApp(app: ApplicationInfo, homeOrLauncherPackages: Set<String>): Boolean {
- return !app.isUpdatedSystemApp && app.isSystemApp &&
- !(app.packageName in homeOrLauncherPackages)
- }
+ private fun isSystemApp(app: ApplicationInfo, homeOrLauncherPackages: Set<String>): Boolean =
+ app.isSystemApp && !app.isUpdatedSystemApp && app.packageName !in homeOrLauncherPackages
companion object {
private fun ApplicationInfo.isInAppList(
diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt
index b732a6a4495e..302f78081626 100644
--- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt
+++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt
@@ -78,9 +78,15 @@ class AppListRepositoryTest {
whenever(context.packageManager).thenReturn(packageManager)
whenever(context.userManager).thenReturn(userManager)
whenever(packageManager.getInstalledModules(anyInt())).thenReturn(emptyList())
+ whenever(packageManager.getHomeActivities(any())).thenAnswer {
+ @Suppress("UNCHECKED_CAST")
+ val resolveInfos = it.arguments[0] as MutableList<ResolveInfo>
+ resolveInfos += resolveInfoOf(packageName = HOME_APP.packageName)
+ null
+ }
whenever(
packageManager.queryIntentActivitiesAsUser(any(), any<ResolveInfoFlags>(), anyInt())
- ).thenReturn(emptyList())
+ ).thenReturn(listOf(resolveInfoOf(packageName = IN_LAUNCHER_APP.packageName)))
whenever(userManager.getUserInfo(ADMIN_USER_ID)).thenReturn(UserInfo().apply {
flags = UserInfo.FLAG_ADMIN
})
@@ -290,35 +296,16 @@ class AppListRepositoryTest {
@Test
fun showSystemPredicate_isHome() = runTest {
- val app = HOME_APP
-
- whenever(packageManager.getHomeActivities(any())).thenAnswer {
- @Suppress("UNCHECKED_CAST")
- val resolveInfos = it.arguments[0] as MutableList<ResolveInfo>
- resolveInfos.add(resolveInfoOf(packageName = app.packageName))
- null
- }
-
val showSystemPredicate = getShowSystemPredicate(showSystem = false)
- assertThat(showSystemPredicate(app)).isTrue()
+ assertThat(showSystemPredicate(HOME_APP)).isTrue()
}
@Test
fun showSystemPredicate_appInLauncher() = runTest {
- val app = IN_LAUNCHER_APP
-
- whenever(
- packageManager.queryIntentActivitiesAsUser(
- any(),
- any<ResolveInfoFlags>(),
- eq(ADMIN_USER_ID)
- )
- ).thenReturn(listOf(resolveInfoOf(packageName = app.packageName)))
-
val showSystemPredicate = getShowSystemPredicate(showSystem = false)
- assertThat(showSystemPredicate(app)).isTrue()
+ assertThat(showSystemPredicate(IN_LAUNCHER_APP)).isTrue()
}
@Test
@@ -333,10 +320,9 @@ class AppListRepositoryTest {
val systemPackageNames = AppListRepositoryUtil.getSystemPackageNames(
context = context,
userId = ADMIN_USER_ID,
- showInstantApps = false,
)
- assertThat(systemPackageNames).containsExactly("system.app", "home.app", "app.in.launcher")
+ assertThat(systemPackageNames).containsExactly(SYSTEM_APP.packageName)
}
private suspend fun getShowSystemPredicate(showSystem: Boolean) =
diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt
index 36d9db5ef251..6889e5d21ac0 100644
--- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt
+++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt
@@ -96,10 +96,7 @@ class AppListViewModelTest {
showSystemFlow: Flow<Boolean>,
): Flow<(app: ApplicationInfo) -> Boolean> = flowOf { true }
- override fun getSystemPackageNamesBlocking(
- userId: Int,
- showInstantApps: Boolean,
- ): Set<String> = emptySet()
+ override fun getSystemPackageNamesBlocking(userId: Int): Set<String> = emptySet()
}
private object FakeAppRepository : AppRepository {