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()
|
}.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) {
|
withContext(Dispatchers.IO) {
|
||||||
!AppUtils.isMainlineModule(packageManager, app.packageName) &&
|
val isMainlineModule = AppUtils.isMainlineModule(packageManager, app.packageName)
|
||||||
installerLabel != null
|
!isMainlineModule && installerLabel != null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -121,6 +121,25 @@ class AppInstallerInfoPreferenceTest {
|
|||||||
composeTestRule.onRoot().assertIsNotDisplayed()
|
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
|
@Test
|
||||||
fun whenStoreLinkIsNull_disabled() {
|
fun whenStoreLinkIsNull_disabled() {
|
||||||
whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
|
whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
|
||||||
|
Reference in New Issue
Block a user