From f3b11e30c52cd7d2a078dbda2739b394d0551b94 Mon Sep 17 00:00:00 2001 From: Thomas Andres Gomez Date: Sat, 8 May 2021 21:23:33 +0200 Subject: [PATCH] Fix Overlay clickable. --- .idea/misc.xml | 2 ++ .../ui/composable/items/dialog/OverlayComposable.kt | 8 ++++---- .../biblib/ui/composable/screen/LoginScreenComposable.kt | 9 ++++++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index a0d7d47..7ae6b6f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -119,6 +119,8 @@ + + diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt index 7df10d4..33829b5 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt @@ -1,8 +1,8 @@ package com.pixelized.biblib.ui.composable.items.dialog import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.fillMaxHeight @@ -14,16 +14,16 @@ import androidx.compose.ui.graphics.Color @Composable fun CrossFadeOverlay( + modifier: Modifier = Modifier, visible: Boolean, content: @Composable BoxScope.() -> Unit ) { - Crossfade(targetState = visible) { + Crossfade(targetState = visible, animationSpec = tween(500)) { if (it) { Box( - modifier = Modifier + modifier = modifier .fillMaxWidth() .fillMaxHeight() - .clickable { } ) { // Transparent background. Box( diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt index 4d3fa27..c70251b 100644 --- a/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt +++ b/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt @@ -151,13 +151,16 @@ private fun LoginScreenDialogComposable( ) { val state = authentication.state.observeAsState() CrossFadeOverlay( + modifier = Modifier.clickable { + if (state.value is IAuthentication.State.Error) { + authentication.clearState() + } + }, visible = (state.value is IAuthentication.State.Initial).not() ) { when (val currentState = state.value) { is IAuthentication.State.Error -> ErrorCard( - modifier = Modifier - .align(Alignment.Center) - .clickable { authentication.clearState() }, + modifier = Modifier.align(Alignment.Center), message = stringResource(id = R.string.error_generic), exception = currentState.exception )