diff options
4 files changed, 35 insertions, 3 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java index c1479caf2..a7114f30b 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/GrantPermissionsActivity.java @@ -262,6 +262,9 @@ public class GrantPermissionsActivity extends SettingsActivity if (DeviceUtils.isWear(this)) { // Do not grab input focus and hide keyboard. getWindow().addFlags(FLAG_ALT_FOCUSABLE_IM); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + overrideActivityTransition(OVERRIDE_TRANSITION_OPEN, 0, 0); + } } if (PackageManager.ACTION_REQUEST_PERMISSIONS_FOR_OTHER.equals(getIntent().getAction())) { diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/GrantPermissionsWearViewHandler.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/GrantPermissionsWearViewHandler.java index c9e9a2eb1..5100b08fd 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/GrantPermissionsWearViewHandler.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/GrantPermissionsWearViewHandler.java @@ -271,6 +271,12 @@ public class GrantPermissionsWearViewHandler implements GrantPermissionsViewHand WearGrantPermissionsScreenKt.setContent(root, mViewModel, + () -> { + if (mResultListener != null) { + mResultListener.onPermissionGrantResult(null, null, CANCELED); + } + return Unit.INSTANCE; + }, id -> { onButtonClicked(id); return Unit.INSTANCE; @@ -278,7 +284,8 @@ public class GrantPermissionsWearViewHandler implements GrantPermissionsViewHand checked -> { onLocationSwitchChanged(checked); return Unit.INSTANCE; - }); + } + ); if (mGroupName != null) { updateScreen(); } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt index 1498b91b6..e6c141cc8 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/WearGrantPermissionsScreen.kt @@ -18,10 +18,14 @@ 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.runtime.livedata.observeAsState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.res.stringResource +import androidx.wear.compose.material3.Dialog import com.android.permissioncontroller.R import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.ALLOW_ALWAYS_BUTTON import com.android.permissioncontroller.permission.ui.GrantPermissionsActivity.ALLOW_BUTTON @@ -45,6 +49,7 @@ import com.android.permissioncontroller.permission.ui.wear.model.WearGrantPermis import com.android.permissioncontroller.permission.ui.wear.theme.ResourceHelper import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL2_5 import com.android.permissioncontroller.permission.ui.wear.theme.WearPermissionMaterialUIVersion.MATERIAL3 +import kotlinx.coroutines.delay @Composable fun WearGrantPermissionsScreen( @@ -119,12 +124,29 @@ fun WearGrantPermissionsScreen( fun setContent( composeView: ComposeView, viewModel: WearGrantPermissionsViewModel, + onCancelled: () -> Unit, onButtonClicked: (Int) -> Unit, onLocationSwitchChanged: (Boolean) -> Unit, ) { composeView.setContent { - WearGrantPermissionsScreen(viewModel, onButtonClicked, onLocationSwitchChanged) + if (ResourceHelper.material3Enabled) { + AsDialog(onCancelled) { + WearGrantPermissionsScreen(viewModel, onButtonClicked, onLocationSwitchChanged) + } + } else { + WearGrantPermissionsScreen(viewModel, onButtonClicked, onLocationSwitchChanged) + } + } +} + +@Composable +private fun AsDialog(onDismissRequest: () -> Unit, content: @Composable () -> Unit) { + val showDialog = remember { mutableStateOf(false) } + LaunchedEffect(Unit) { + delay(300) + showDialog.value = true } + Dialog(show = showDialog.value, onDismissRequest = onDismissRequest, content = content) } @Composable 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 79a8963d8..7aa165b0f 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 @@ -63,7 +63,7 @@ fun WearPermissionButton( modifier = modifier, secondaryLabel = secondaryLabel, secondaryLabelMaxLines = secondaryLabelMaxLines, - icon = { iconBuilder?.build() }, + icon = iconBuilder?.let { { iconBuilder.build() } }, largeIcon = false, colors = style.material2ChipColors(), enabled = enabled, |