AppClone: Few fixes in Cloned Apps page.

- Trigger uninstall as clone user
- Back navigation

Test: manual
Bug: 259022623
Change-Id: Ic9e0b20d371f6f0a5c70c84b3950e82ba43bc82e
This commit is contained in:
Ankita Vyas
2023-01-19 08:41:18 +00:00
parent 30317dd2b9
commit 48279a0d72
3 changed files with 11 additions and 7 deletions

View File

@@ -16,7 +16,6 @@
package com.android.settings.spa.app.appinfo
import android.app.Activity
import android.app.settings.SettingsEnums
import android.content.pm.ApplicationInfo
import androidx.compose.material.icons.Icons
@@ -60,7 +59,8 @@ class AppCreateButton(packageInfoPresenter: PackageInfoPresenter) {
enabledState.value = false
val result = installCloneApp(app, cloneBackend)
if (result == CloneBackend.SUCCESS) {
navController.navigate(getRoute(app.packageName, cloneBackend.cloneUserId))
navController.navigate(getRoute(app.packageName, cloneBackend.cloneUserId),
/* popUpCurrent*/ true)
} else {
enabledState.value = true
}

View File

@@ -16,19 +16,20 @@
package com.android.settings.spa.app.appinfo
import android.app.settings.SettingsEnums
import android.content.pm.ApplicationInfo
import android.os.Bundle
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavType
import androidx.navigation.navArgument
import com.android.settings.R
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.compose.LifecycleEffect
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spaprivileged.model.app.toRoute
import com.android.settingslib.spaprivileged.template.app.AppInfoProvider
@@ -68,9 +69,11 @@ object CloneAppInfoSettingsProvider : SettingsPageProvider {
fun getRoute(packageName: String, userId: Int): String = "$name/$packageName/$userId"
}
@OptIn(ExperimentalLifecycleComposeApi::class)
@Composable
private fun CloneAppInfoSettings(packageInfoPresenter: PackageInfoPresenter) {
val packageInfo = packageInfoPresenter.flow.collectAsState().value ?: return
LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
RegularScaffold(
title = stringResource(R.string.application_info_label),
) {