Settings: Do not show install info for Play Store app
Clicking the "App details" row in the info subpage for the Play Store app results in a crash. It appears that this app is not considered a mainline module and has an installer label, but this app is a special case. Hide the row for the Play Store app. Bug: 302093631 Test: atest com.android.settings.spa.app.appinfo.AppInstallerInfoPreferenceTest Flag: EXEMPT bugfix Change-Id: I291ee3e5dec2075381cb52d041982583cdd04323
This commit is contained in:
@@ -91,10 +91,15 @@ private class AppInstallerInfoPresenter(
|
||||
}
|
||||
}.sharedFlow()
|
||||
|
||||
val isAvailableFlow = installerLabelFlow.map { installerLabel ->
|
||||
val isAvailableFlow = installerLabelFlow.map() { installerLabel ->
|
||||
// Do not show the install info for the special case of the Play Store app.
|
||||
if (app.packageName == context.getString(R.string.config_mainline_module_update_package)) {
|
||||
false
|
||||
} else {
|
||||
withContext(Dispatchers.IO) {
|
||||
!AppUtils.isMainlineModule(packageManager, app.packageName) &&
|
||||
installerLabel != null
|
||||
val isMainlineModule = AppUtils.isMainlineModule(packageManager, app.packageName)
|
||||
!isMainlineModule && installerLabel != null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -121,6 +121,25 @@ class AppInstallerInfoPreferenceTest {
|
||||
composeTestRule.onRoot().assertIsNotDisplayed()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun whenIsPlayStoreApp_notDisplayed() {
|
||||
val playStorePackageName = "com.android.vending"
|
||||
whenever(
|
||||
AppStoreUtil.getInstallerPackageNameAndInstallSourceInfo(
|
||||
any(),
|
||||
eq(playStorePackageName)
|
||||
)
|
||||
)
|
||||
.thenReturn(Pair(INSTALLER_PACKAGE_NAME, INSTALL_SOURCE_INFO))
|
||||
val playStoreApp = ApplicationInfo().apply {
|
||||
packageName = playStorePackageName
|
||||
uid = UID
|
||||
}
|
||||
setContent(playStoreApp)
|
||||
|
||||
composeTestRule.onRoot().assertIsNotDisplayed()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun whenStoreLinkIsNull_disabled() {
|
||||
whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
|
||||
|
Reference in New Issue
Block a user