diff options
author | Vignesh Ramanathan <vigneshrsastra@google.com> | 2023-12-13 15:23:51 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-12-13 15:23:51 +0000 |
commit | eb72a52439cf4d86f43e999ac0dc61d2acdaf8f2 (patch) | |
tree | 27ce755bbdd4fe2fd77834e738a3f1ec410569fe | |
parent | 56b4d1308fac599ea2a64bcbee4cf02b5b401098 (diff) | |
parent | b17a639bf909ba866450fc6667653891c64beaa7 (diff) | |
download | Permission-eb72a52439cf4d86f43e999ac0dc61d2acdaf8f2.tar.gz |
Merge "Fix for Swipe to Dismiss Animation" into main
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt | 42 |
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( |