summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt40
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt13
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt35
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt22
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt3
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/model/WearLocationProviderInterceptDialogViewModel.kt17
7 files changed, 66 insertions, 68 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
index 691ceae25..ff3c2cbc1 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/LocationProviderDialogScreen.kt
@@ -18,49 +18,39 @@ package com.android.permissioncontroller.permission.ui.wear
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
-import androidx.wear.compose.foundation.SwipeToDismissValue
-import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
-import androidx.wear.compose.material.ChipDefaults
-import androidx.wear.compose.material.MaterialTheme
-import androidx.wear.compose.material.SwipeToDismissBox
-import com.android.permissioncontroller.permission.ui.wear.elements.material2.Chip
+import androidx.wear.compose.material3.Dialog
+import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButton
+import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionButtonStyle
import com.android.permissioncontroller.permission.ui.wear.elements.material3.WearPermissionScaffold
import com.android.permissioncontroller.permission.ui.wear.model.LocationProviderInterceptDialogArgs
-import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
@Composable
-fun LocationProviderDialogScreen(args: LocationProviderInterceptDialogArgs?) {
- args?.apply {
- val state = rememberSwipeToDismissBoxState()
- LaunchedEffect(state.currentValue) {
- // If the swipe is complete
- if (state.currentValue == SwipeToDismissValue.Dismissed) {
- onOkButtonClick()
- }
- }
- SwipeToDismissBox(state = state) { isBackground ->
+fun LocationProviderDialogScreen(
+ showDialog: Boolean,
+ onDismissRequest: () -> Unit,
+ args: LocationProviderInterceptDialogArgs?,
+) {
+ Dialog(show = showDialog, onDismissRequest = onDismissRequest) {
+ args?.run {
WearPermissionScaffold(
- materialUIVersion = WearPermissionMaterialUIVersion.MATERIAL2_5,
showTimeText = false,
image = iconId,
title = stringResource(titleId),
subtitle = message,
- isLoading = isBackground,
+ isLoading = false,
content = {
item {
- Chip(
+ WearPermissionButton(
label = stringResource(locationSettingsId),
- onClick = onLocationSettingsClick,
modifier = Modifier.fillMaxWidth(),
- textColor = MaterialTheme.colors.surface,
- colors = ChipDefaults.primaryChipColors(),
+ onClick = onLocationSettingsClick,
+ style = WearPermissionButtonStyle.Primary,
)
}
item {
- Chip(
+ WearPermissionButton(
label = stringResource(okButtonTitleId),
onClick = onOkButtonClick,
modifier = Modifier.fillMaxWidth(),
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
index 686dd1b62..f21cb7ac2 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearAppPermissionGroupsScreen.kt
@@ -46,6 +46,9 @@ fun WearAppPermissionGroupsScreen(helper: WearAppPermissionGroupsHelper) {
helper.locationProviderInterceptDialogViewModel.dialogVisibilityLiveData.observeAsState(
false
)
+ val locationProviderDialogArgs =
+ helper.locationProviderInterceptDialogViewModel.locationProviderInterceptDialogArgs
+ .observeAsState(null)
var isLoading by remember { mutableStateOf(true) }
@@ -60,11 +63,11 @@ fun WearAppPermissionGroupsScreen(helper: WearAppPermissionGroupsHelper) {
showDialog = showRevokeDialog.value,
args = helper.revokeDialogViewModel.revokeDialogArgs,
)
- if (showLocationProviderDialog.value) {
- LocationProviderDialogScreen(
- helper.locationProviderInterceptDialogViewModel.locationProviderInterceptDialogArgs
- )
- }
+ LocationProviderDialogScreen(
+ showDialog = showLocationProviderDialog.value,
+ onDismissRequest = { helper.locationProviderInterceptDialogViewModel.dismissDialog() },
+ args = locationProviderDialogArgs.value,
+ )
}
if (isLoading && !packagePermGroups.value.isNullOrEmpty()) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
index 00ebf2f34..99dffb866 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearPermissionAppsScreen.kt
@@ -46,6 +46,10 @@ fun WearPermissionAppsScreen(helper: WearPermissionAppsHelper) {
helper.locationProviderDialogViewModel.dialogVisibilityLiveData.observeAsState(false)
val appPermissionUsages = helper.wearViewModel.appPermissionUsages.observeAsState(emptyList())
var isLoading by remember { mutableStateOf(true) }
+ val dialogArgs =
+ helper.locationProviderDialogViewModel.locationProviderInterceptDialogArgs.observeAsState(
+ null
+ )
val title = helper.getTitle()
val subTitle = helper.getSubTitle()
@@ -53,21 +57,21 @@ fun WearPermissionAppsScreen(helper: WearPermissionAppsHelper) {
val chipsByCategory =
helper.getChipsByCategory(categorizedApps.value, appPermissionUsages.value)
Box(modifier = Modifier.fillMaxSize()) {
- val dialogArgs = helper.locationProviderDialogViewModel.locationProviderInterceptDialogArgs
- if (showLocationProviderDialog.value && dialogArgs != null) {
- LocationProviderDialogScreen(dialogArgs)
- } else {
- WearPermissionAppsContent(
- chipsByCategory = chipsByCategory,
- showSystem = showSystem.value,
- hasSystemApps = hasSystemApps.value,
- title = title,
- subtitle = subTitle,
- showAlways = showAlways,
- isLoading = isLoading,
- onShowSystemClick = helper.onShowSystemClick,
- )
- }
+ WearPermissionAppsContent(
+ chipsByCategory = chipsByCategory,
+ showSystem = showSystem.value,
+ hasSystemApps = hasSystemApps.value,
+ title = title,
+ subtitle = subTitle,
+ showAlways = showAlways,
+ isLoading = isLoading,
+ onShowSystemClick = helper.onShowSystemClick,
+ )
+ LocationProviderDialogScreen(
+ showDialog = showLocationProviderDialog.value,
+ onDismissRequest = { helper.locationProviderDialogViewModel.dismissDialog() },
+ args = dialogArgs.value,
+ )
}
if (isLoading && categorizedApps.value.isNotEmpty()) {
isLoading = false
@@ -150,6 +154,7 @@ internal fun getCategoryString(category: String, showAlways: Boolean) =
} else {
R.string.allowed_header
}
+
Category.ALLOWED_FOREGROUND.categoryName -> R.string.allowed_foreground_header
Category.ASK.categoryName -> R.string.ask_header
Category.DENIED.categoryName -> R.string.denied_header
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt
index 3575b3cff..866b7f012 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material2/Wear2Scaffold.kt
@@ -142,11 +142,7 @@ fun Wear2Scaffold(
if (isLoading) {
CircularProgressIndicator(modifier = Modifier.align(Alignment.Center))
} else {
- val iconColor =
- com.android.permissioncontroller.permission.ui.wear.elements.material2
- .chipDefaultColors()
- .iconColor(true)
- .value
+ val iconColor = chipDefaultColors().iconColor(true).value
ScalingLazyColumn(
modifier = Modifier.fillMaxWidth(),
state = listState,
@@ -194,15 +190,13 @@ fun Wear2Scaffold(
if (titleTestTag != null) {
modifier = modifier.testTag(titleTestTag)
}
- com.android.permissioncontroller.permission.ui.wear.elements
- .material2
- .ListHeader(modifier = Modifier.padding(titlePaddingValues)) {
- Text(
- text = title,
- textAlign = TextAlign.Center,
- modifier = modifier,
- )
- }
+ ListHeader(modifier = Modifier.padding(titlePaddingValues)) {
+ Text(
+ text = title,
+ textAlign = TextAlign.Center,
+ modifier = modifier,
+ )
+ }
}
}
if (subtitle != null) {
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt
index 942a420a8..9a89e0809 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionButton.kt
@@ -34,6 +34,7 @@ import androidx.wear.compose.material3.LocalTextConfiguration
import androidx.wear.compose.material3.LocalTextStyle
import androidx.wear.compose.material3.Text
import com.android.permissioncontroller.permission.ui.wear.elements.material2.Chip
+import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
/**
@@ -45,8 +46,7 @@ import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionM
fun WearPermissionButton(
label: String,
modifier: Modifier = Modifier,
- materialUIVersion: WearPermissionMaterialUIVersion =
- WearPermissionMaterialUIVersion.MATERIAL2_5,
+ materialUIVersion: WearPermissionMaterialUIVersion = ResourceHelper.materialUIVersionInSettings,
iconBuilder: WearPermissionIconBuilder? = null,
labelMaxLines: Int? = null,
secondaryLabel: String? = null,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt
index 98b8facf7..58a14ad5d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/material3/WearPermissionScaffold.kt
@@ -56,6 +56,7 @@ import com.android.permissioncontroller.permission.ui.wear.elements.AnnotatedTex
import com.android.permissioncontroller.permission.ui.wear.elements.ListScopeWrapper
import com.android.permissioncontroller.permission.ui.wear.elements.material2.Wear2Scaffold
import com.android.permissioncontroller.permission.ui.wear.elements.rememberDrawablePainter
+import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper
import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion
import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL2_5
import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionTheme
@@ -79,7 +80,7 @@ private class ScalingScopeConverter(private val scope: ScalingLazyListScope) : L
*/
@Composable
internal fun WearPermissionScaffold(
- materialUIVersion: WearPermissionMaterialUIVersion = MATERIAL2_5,
+ materialUIVersion: WearPermissionMaterialUIVersion = ResourceHelper.materialUIVersionInSettings,
showTimeText: Boolean,
title: String?,
subtitle: CharSequence?,
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/model/WearLocationProviderInterceptDialogViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/model/WearLocationProviderInterceptDialogViewModel.kt
index 009ff952c..ec7647f3c 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/model/WearLocationProviderInterceptDialogViewModel.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/model/WearLocationProviderInterceptDialogViewModel.kt
@@ -32,10 +32,14 @@ import com.android.permissioncontroller.permission.utils.Utils
class WearLocationProviderInterceptDialogViewModel : ViewModel() {
private val showDialogLiveData = MutableLiveData<Boolean>()
val dialogVisibilityLiveData: LiveData<Boolean> = showDialogLiveData
- var locationProviderInterceptDialogArgs: LocationProviderInterceptDialogArgs? = null
+ private val _locationProviderInterceptDialogArgs =
+ MutableLiveData<LocationProviderInterceptDialogArgs?>()
+ var locationProviderInterceptDialogArgs: LiveData<LocationProviderInterceptDialogArgs?> =
+ _locationProviderInterceptDialogArgs
init {
showDialogLiveData.value = false
+ _locationProviderInterceptDialogArgs.value = null
}
private fun applicationInfo(context: Context, packageName: String): ApplicationInfo? {
@@ -51,7 +55,7 @@ class WearLocationProviderInterceptDialogViewModel : ViewModel() {
fun showDialog(context: Context, packageName: String) {
val applicationInfo = applicationInfo(context, packageName) ?: return
val appLabel = Utils.getAppLabel(applicationInfo, context)
- locationProviderInterceptDialogArgs =
+ _locationProviderInterceptDialogArgs.value =
LocationProviderInterceptDialogArgs(
iconId = R.drawable.ic_dialog_alert_material,
titleId = android.R.string.dialog_alert_title,
@@ -61,13 +65,13 @@ class WearLocationProviderInterceptDialogViewModel : ViewModel() {
onOkButtonClick = { dismissDialog() },
onLocationSettingsClick = {
context.startActivity(Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS))
- }
+ },
)
showDialogLiveData.value = true
}
fun dismissDialog() {
- locationProviderInterceptDialogArgs = null
+ _locationProviderInterceptDialogArgs.value = null
showDialogLiveData.value = false
}
}
@@ -75,7 +79,8 @@ class WearLocationProviderInterceptDialogViewModel : ViewModel() {
/** Factory for an AppPermissionGroupsRevokeDialogViewModel */
class WearLocationProviderInterceptDialogViewModelFactory : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
- @Suppress("UNCHECKED_CAST") return WearLocationProviderInterceptDialogViewModel() as T
+ @Suppress("UNCHECKED_CAST")
+ return WearLocationProviderInterceptDialogViewModel() as T
}
}
@@ -86,5 +91,5 @@ data class LocationProviderInterceptDialogArgs(
val okButtonTitleId: Int,
val locationSettingsId: Int,
val onOkButtonClick: () -> Unit,
- val onLocationSettingsClick: () -> Unit
+ val onLocationSettingsClick: () -> Unit,
)