Disable "Reset app preference" during call

Reset app preference will dismiss all the notification, disable
"Reset app preference" during call so in call notification not get
dismissed.

Fix: 342627537
Test: manual - try "Reset app preference" during call
Change-Id: Ida9961ca30dc80c05d4de5bc9faac3203967f3d3
This commit is contained in:
Chaohui Wang
2024-05-28 13:28:10 +08:00
parent 5920567bee
commit 942622575a
2 changed files with 18 additions and 11 deletions

View File

@@ -499,14 +499,13 @@ class SimOnboardingActivity : SpaBaseDialogActivity() {
SettingsAlertDialogWithIcon( SettingsAlertDialogWithIcon(
onDismissRequest = cancelAction, onDismissRequest = cancelAction,
confirmButton = AlertDialogButton( confirmButton = AlertDialogButton(
getString(R.string.sim_onboarding_setup), text = getString(R.string.sim_onboarding_setup),
nextAction onClick = nextAction,
),
dismissButton = AlertDialogButton(
text = getString(R.string.sim_onboarding_close),
onClick = cancelAction,
), ),
dismissButton =
AlertDialogButton(
getString(R.string.sim_onboarding_close),
cancelAction
),
title = stringResource(R.string.sim_onboarding_dialog_starting_title), title = stringResource(R.string.sim_onboarding_dialog_starting_title),
icon = { icon = {
Icon( Icon(

View File

@@ -19,11 +19,14 @@ package com.android.settings.spa.app
import android.os.UserManager import android.os.UserManager
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R import com.android.settings.R
import com.android.settings.applications.manageapplications.ResetAppsHelper import com.android.settings.applications.manageapplications.ResetAppsHelper
import com.android.settings.network.telephony.CallStateRepository
import com.android.settingslib.spa.widget.dialog.AlertDialogButton import com.android.settingslib.spa.widget.dialog.AlertDialogButton
import com.android.settingslib.spa.widget.dialog.AlertDialogPresenter import com.android.settingslib.spa.widget.dialog.AlertDialogPresenter
import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
@@ -35,9 +38,7 @@ import com.android.settingslib.spaprivileged.template.scaffold.RestrictedMenuIte
fun MoreOptionsScope.ResetAppPreferences(onClick: () -> Unit) { fun MoreOptionsScope.ResetAppPreferences(onClick: () -> Unit) {
RestrictedMenuItem( RestrictedMenuItem(
text = stringResource(R.string.reset_app_preferences), text = stringResource(R.string.reset_app_preferences),
restrictions = remember { restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_APPS_CONTROL)),
Restrictions(keys = listOf(UserManager.DISALLOW_APPS_CONTROL))
},
onClick = onClick, onClick = onClick,
) )
} }
@@ -45,8 +46,15 @@ fun MoreOptionsScope.ResetAppPreferences(onClick: () -> Unit) {
@Composable @Composable
fun rememberResetAppDialogPresenter(): AlertDialogPresenter { fun rememberResetAppDialogPresenter(): AlertDialogPresenter {
val context = LocalContext.current val context = LocalContext.current
// Reset app preference will dismiss all the notification, disable "Reset app preference" during
// call so in call notification not get dismissed.
val isInCall by remember { CallStateRepository(context).isInCallFlow() }
.collectAsStateWithLifecycle(initialValue = false)
return rememberAlertDialogPresenter( return rememberAlertDialogPresenter(
confirmButton = AlertDialogButton(stringResource(R.string.reset_app_preferences_button)) { confirmButton = AlertDialogButton(
text = stringResource(R.string.reset_app_preferences_button),
enabled = !isInCall,
) {
ResetAppsHelper(context).resetApps() ResetAppsHelper(context).resetApps()
}, },
dismissButton = AlertDialogButton(stringResource(R.string.cancel)), dismissButton = AlertDialogButton(stringResource(R.string.cancel)),