diff --git a/res/values/strings.xml b/res/values/strings.xml index 33cae6d0783..9b0a779f61a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9107,6 +9107,12 @@ Remove permissions, delete temporary files, and stop notifications + + Manage app if unused + + + Remove permissions, delete temporary files, stop notifications, and archive the app + All apps diff --git a/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt b/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt index 78ca15b92f7..efa88b58fd6 100644 --- a/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt +++ b/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt @@ -22,6 +22,7 @@ import android.app.AppOpsManager.MODE_IGNORED import android.app.AppOpsManager.OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED import android.content.Context import android.content.pm.ApplicationInfo +import android.content.pm.Flags import android.os.Build import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_EXEMPT_BY_SYSTEM import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_UNKNOWN @@ -60,8 +61,17 @@ fun HibernationSwitchPreference(app: ApplicationInfo) { val isCheckedState = presenter.isCheckedFlow.collectAsStateWithLifecycle(initialValue = null) SwitchPreference(remember { object : SwitchPreferenceModel { - override val title = context.getString(R.string.unused_apps_switch) - override val summary = { context.getString(R.string.unused_apps_switch_summary) } + override val title = + if (isArchivingEnabled()) + context.getString(R.string.unused_apps_switch_v2) + else + context.getString(R.string.unused_apps_switch) + override val summary = { + if (isArchivingEnabled()) + context.getString(R.string.unused_apps_switch_summary_v2) + else + context.getString(R.string.unused_apps_switch_summary) + } override val changeable = { isEligibleState } override val checked = { if (changeable()) isCheckedState.value else false } override val onCheckedChange = presenter::onCheckedChange @@ -69,6 +79,9 @@ fun HibernationSwitchPreference(app: ApplicationInfo) { }) } +private fun isArchivingEnabled() = + Flags.archiving() || "true" == System.getProperty("pm.archiving.enabled") + private class HibernationSwitchPresenter(context: Context, private val app: ApplicationInfo) { private val appOpsManager = context.appOpsManager private val permissionControllerManager =