[CredManUi] Dismiss system bars immediately upon bottom sheet dismissal
Before the bottom sheet dismissal animatyion is applied to the system bars so they have to travel the whole screen to fade out.Now the system bars are immediately set to invisible upon dismissal. Bug: 271590672 Test: manually (see bug for recordings) Change-Id: Ib385ed5455eceabbeadb6d3c41c4382b01a9ea74
This commit is contained in:
@@ -22,6 +22,7 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.android.compose.rememberSystemUiController
|
||||
import com.android.credentialmanager.common.material.ModalBottomSheetLayout
|
||||
import com.android.credentialmanager.common.material.ModalBottomSheetValue
|
||||
import com.android.credentialmanager.common.material.rememberModalBottomSheetState
|
||||
@@ -38,6 +39,12 @@ fun ModalBottomSheet(
|
||||
initialValue = ModalBottomSheetValue.Expanded,
|
||||
skipHalfExpanded = true
|
||||
)
|
||||
val sysUiController = rememberSystemUiController()
|
||||
if (state.targetValue == ModalBottomSheetValue.Hidden) {
|
||||
setTransparentSystemBarsColor(sysUiController)
|
||||
} else {
|
||||
setBottomSheetSystemBarsColor(sysUiController)
|
||||
}
|
||||
ModalBottomSheetLayout(
|
||||
sheetBackgroundColor = LocalAndroidColorScheme.current.colorSurfaceBright,
|
||||
modifier = Modifier.background(Color.Transparent),
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalAccessibilityManager
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.android.compose.rememberSystemUiController
|
||||
import com.android.credentialmanager.R
|
||||
import com.android.credentialmanager.common.material.Scrim
|
||||
import com.android.credentialmanager.ui.theme.Shapes
|
||||
@@ -49,6 +50,8 @@ fun Snackbar(
|
||||
onDismiss: () -> Unit,
|
||||
dismissOnTimeout: Boolean = false,
|
||||
) {
|
||||
val sysUiController = rememberSystemUiController()
|
||||
setTransparentSystemBarsColor(sysUiController)
|
||||
BoxWithConstraints {
|
||||
Box(Modifier.fillMaxSize()) {
|
||||
Scrim(
|
||||
|
||||
@@ -46,7 +46,6 @@ import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import com.android.compose.rememberSystemUiController
|
||||
import com.android.credentialmanager.CredentialSelectorViewModel
|
||||
import com.android.credentialmanager.R
|
||||
import com.android.credentialmanager.common.BaseEntry
|
||||
@@ -67,7 +66,6 @@ import com.android.credentialmanager.common.ui.MoreOptionTopAppBar
|
||||
import com.android.credentialmanager.common.ui.SheetContainerCard
|
||||
import com.android.credentialmanager.common.ui.PasskeyBenefitRow
|
||||
import com.android.credentialmanager.common.ui.HeadlineText
|
||||
import com.android.credentialmanager.common.ui.setBottomSheetSystemBarsColor
|
||||
import com.android.credentialmanager.logging.CreateCredentialEvent
|
||||
import com.android.internal.logging.UiEventLogger.UiEventEnum
|
||||
|
||||
@@ -77,8 +75,6 @@ fun CreateCredentialScreen(
|
||||
createCredentialUiState: CreateCredentialUiState,
|
||||
providerActivityLauncher: ManagedActivityResultLauncher<IntentSenderRequest, ActivityResult>
|
||||
) {
|
||||
val sysUiController = rememberSystemUiController()
|
||||
setBottomSheetSystemBarsColor(sysUiController)
|
||||
ModalBottomSheet(
|
||||
sheetContent = {
|
||||
// Hide the sheet content as opposed to the whole bottom sheet to maintain the scrim
|
||||
|
||||
@@ -41,7 +41,6 @@ import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import com.android.compose.rememberSystemUiController
|
||||
import com.android.credentialmanager.CredentialSelectorViewModel
|
||||
import com.android.credentialmanager.R
|
||||
import com.android.credentialmanager.common.BaseEntry
|
||||
@@ -62,8 +61,6 @@ import com.android.credentialmanager.common.ui.CredentialListSectionHeader
|
||||
import com.android.credentialmanager.common.ui.HeadlineIcon
|
||||
import com.android.credentialmanager.common.ui.LargeLabelTextOnSurfaceVariant
|
||||
import com.android.credentialmanager.common.ui.Snackbar
|
||||
import com.android.credentialmanager.common.ui.setTransparentSystemBarsColor
|
||||
import com.android.credentialmanager.common.ui.setBottomSheetSystemBarsColor
|
||||
import com.android.credentialmanager.logging.GetCredentialEvent
|
||||
import com.android.internal.logging.UiEventLogger.UiEventEnum
|
||||
|
||||
@@ -73,9 +70,7 @@ fun GetCredentialScreen(
|
||||
getCredentialUiState: GetCredentialUiState,
|
||||
providerActivityLauncher: ManagedActivityResultLauncher<IntentSenderRequest, ActivityResult>
|
||||
) {
|
||||
val sysUiController = rememberSystemUiController()
|
||||
if (getCredentialUiState.currentScreenState == GetScreenState.REMOTE_ONLY) {
|
||||
setTransparentSystemBarsColor(sysUiController)
|
||||
RemoteCredentialSnackBarScreen(
|
||||
onClick = viewModel::getFlowOnMoreOptionOnSnackBarSelected,
|
||||
onCancel = viewModel::onUserCancel,
|
||||
@@ -84,7 +79,6 @@ fun GetCredentialScreen(
|
||||
viewModel.uiMetrics.log(GetCredentialEvent.CREDMAN_GET_CRED_SCREEN_REMOTE_ONLY)
|
||||
} else if (getCredentialUiState.currentScreenState
|
||||
== GetScreenState.UNLOCKED_AUTH_ENTRIES_ONLY) {
|
||||
setTransparentSystemBarsColor(sysUiController)
|
||||
EmptyAuthEntrySnackBarScreen(
|
||||
authenticationEntryList =
|
||||
getCredentialUiState.providerDisplayInfo.authenticationEntryList,
|
||||
@@ -95,7 +89,6 @@ fun GetCredentialScreen(
|
||||
viewModel.uiMetrics.log(GetCredentialEvent
|
||||
.CREDMAN_GET_CRED_SCREEN_UNLOCKED_AUTH_ENTRIES_ONLY)
|
||||
} else {
|
||||
setBottomSheetSystemBarsColor(sysUiController)
|
||||
ModalBottomSheet(
|
||||
sheetContent = {
|
||||
// Hide the sheet content as opposed to the whole bottom sheet to maintain the scrim
|
||||
|
||||
Reference in New Issue
Block a user