Merge "AppClone: Few fixes in Cloned Apps page."
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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),
|
||||
) {
|
||||
|
Reference in New Issue
Block a user