summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvigneshrsastra <vigneshrsastra@google.com>2023-12-13 04:58:46 +0000
committervigneshrsastra <vigneshrsastra@google.com>2023-12-13 05:00:46 +0000
commitb17a639bf909ba866450fc6667653891c64beaa7 (patch)
treeb05f006378409ec3a0597f9d757a611e9fb0c5f1
parent7f697ba6890808dcfb109c70ea1ea1582ac2ce49 (diff)
downloadPermission-b17a639bf909ba866450fc6667653891c64beaa7.tar.gz
Fix for Swipe to Dismiss Animation
Fixes: b/307873239 Test: Existing Swipe back animations checked. Screen Capture here: https://screenshot.googleplex.com/Bd2U66tnRhAJvse Change-Id: Ifecb8d76f4039321f3c4c61e7728b4da0933b79d
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt42
1 files changed, 22 insertions, 20 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
index df7a56464..3776c596f 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
@@ -53,9 +53,11 @@ import androidx.compose.ui.unit.dp
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
+import androidx.wear.compose.foundation.SwipeToDismissValue
import androidx.wear.compose.foundation.lazy.ScalingLazyColumn
import androidx.wear.compose.foundation.lazy.ScalingLazyListScope
import androidx.wear.compose.foundation.lazy.ScalingLazyListState
+import androidx.wear.compose.foundation.rememberSwipeToDismissBoxState
import androidx.wear.compose.material.CircularProgressIndicator
import androidx.wear.compose.material.MaterialTheme
import androidx.wear.compose.material.PositionIndicator
@@ -87,30 +89,30 @@ fun ScrollableScreen(
) {
var dismissed by remember { mutableStateOf(false) }
val activity = LocalContext.current.findActivity()
+ val state = rememberSwipeToDismissBoxState()
+
+ LaunchedEffect(state.currentValue) {
+ if (state.currentValue == SwipeToDismissValue.Dismissed) {
+ dismiss(activity)
+ dismissed = true
+ state.snapTo(SwipeToDismissValue.Default)
+ }
+ }
// To support Swipe-dismiss effect,
// add the view to SwipeToDismissBox if the screen is not on the top fragment.
if (getBackStackEntryCount(activity) > 0) {
- SwipeToDismissBox(
- onDismissed = {
- dismiss(activity)
- dismissed = true
- }
- ) { isBackground ->
- if (isBackground || dismissed) {
- Box(modifier = Modifier.fillMaxSize())
- } else {
- Scaffold(
- showTimeText,
- title,
- subtitle,
- image,
- isLoading,
- content,
- titleTestTag,
- subtitleTestTag
- )
- }
+ SwipeToDismissBox(state = state) { isBackground ->
+ Scaffold(
+ showTimeText,
+ title,
+ subtitle,
+ image,
+ isLoading = isLoading || isBackground || dismissed,
+ content,
+ titleTestTag,
+ subtitleTestTag
+ )
}
} else {
Scaffold(