Loading src/com/android/settings/applications/manageapplications/CloneBackend.java +3 −2 Original line number Diff line number Diff line Loading @@ -75,12 +75,13 @@ public class CloneBackend { * dialog to the user and handles actual uninstall. */ void uninstallClonedApp(String packageName, boolean allUsers, FragmentActivity activity) { // Create new intent to launch Uninstaller activity // Create new intent to launch Uninstaller activity. Uri packageUri = Uri.parse("package:" + packageName); Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri); uninstallIntent.putExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, allUsers); uninstallIntent.putExtra(Intent.EXTRA_USER, UserHandle.of(mCloneUserId)); activity.startActivityForResult(uninstallIntent, 0); // Trigger uninstall as clone user. activity.startActivityAsUser(uninstallIntent, UserHandle.of(mCloneUserId)); } /** Loading src/com/android/settings/spa/app/appinfo/AppCreateButton.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 } Loading src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt +6 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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), ) { Loading Loading
src/com/android/settings/applications/manageapplications/CloneBackend.java +3 −2 Original line number Diff line number Diff line Loading @@ -75,12 +75,13 @@ public class CloneBackend { * dialog to the user and handles actual uninstall. */ void uninstallClonedApp(String packageName, boolean allUsers, FragmentActivity activity) { // Create new intent to launch Uninstaller activity // Create new intent to launch Uninstaller activity. Uri packageUri = Uri.parse("package:" + packageName); Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri); uninstallIntent.putExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, allUsers); uninstallIntent.putExtra(Intent.EXTRA_USER, UserHandle.of(mCloneUserId)); activity.startActivityForResult(uninstallIntent, 0); // Trigger uninstall as clone user. activity.startActivityAsUser(uninstallIntent, UserHandle.of(mCloneUserId)); } /** Loading
src/com/android/settings/spa/app/appinfo/AppCreateButton.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 } Loading
src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt +6 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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), ) { Loading