From 080fcbc0d706b8e9cb5eb66932cf76ee87e4c0ff Mon Sep 17 00:00:00 2001 From: Thoraya Date: Wed, 20 Aug 2025 01:51:45 +0300 Subject: [PATCH 1/2] fix: let the exit of Animated visibility of dialog to be with tween 0 for smooth in clothing. --- .../games/character/GuessCharacterScreen.kt | 5 ++++- .../games/guessByPoster/GuessByPosterScreen.kt | 5 ++++- .../games/guessGenre/GuessGenreScreen.kt | 5 ++++- .../releaseYear/GuessReleaseYearGameScreen.kt | 5 ++++- .../com/amsterdam/ui/screens/home/HomeScreen.kt | 7 ++++++- .../amsterdam/ui/screens/lists/ListsScreen.kt | 1 + .../screens/movieDetails/MovieDetailsScreen.kt | 2 ++ .../profile/components/LoggedInContent.kt | 17 +++++++++-------- 8 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ui/src/main/java/com/amsterdam/ui/screens/games/character/GuessCharacterScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/games/character/GuessCharacterScreen.kt index 9f29b37a0..cfef2138d 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/games/character/GuessCharacterScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/games/character/GuessCharacterScreen.kt @@ -121,7 +121,10 @@ private fun GameContent( Box { LoginBackground() - AnimatedVisibility(state.isNotEnoughPointsDialogVisible) { + AnimatedVisibility( + state.isNotEnoughPointsDialogVisible, + exit = fadeOut(animationSpec = tween(0)) + ) { NotEnoughPointsDialog( onConfirm = interactionListener::dismissNotEnoughPointsDialog, onDismiss = interactionListener::dismissNotEnoughPointsDialog, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/games/guessByPoster/GuessByPosterScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/games/guessByPoster/GuessByPosterScreen.kt index 3616ae128..9a6ccc55e 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/games/guessByPoster/GuessByPosterScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/games/guessByPoster/GuessByPosterScreen.kt @@ -132,7 +132,10 @@ private fun GuessByPosterContent( Box { LoginBackground() - AnimatedVisibility(state.isNotEnoughPointsDialogVisible) { + AnimatedVisibility( + state.isNotEnoughPointsDialogVisible, + exit = fadeOut(animationSpec = tween(0)) + ) { NotEnoughPointsDialog( onConfirm = interactionListener::dismissNotEnoughPointsDialog, onDismiss = interactionListener::dismissNotEnoughPointsDialog, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/games/guessGenre/GuessGenreScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/games/guessGenre/GuessGenreScreen.kt index 5c54976a3..cea70968b 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/games/guessGenre/GuessGenreScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/games/guessGenre/GuessGenreScreen.kt @@ -121,7 +121,10 @@ private fun GameScreenContent( Box { LoginBackground() - AnimatedVisibility(state.isNotEnoughPointsDialogVisible) { + AnimatedVisibility( + state.isNotEnoughPointsDialogVisible, + exit = fadeOut(animationSpec = tween(0)) + ) { NotEnoughPointsDialog( onConfirm = interactionListener::dismissNotEnoughPointsDialog, onDismiss = interactionListener::dismissNotEnoughPointsDialog, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/games/releaseYear/GuessReleaseYearGameScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/games/releaseYear/GuessReleaseYearGameScreen.kt index 31c7965c3..aed393f13 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/games/releaseYear/GuessReleaseYearGameScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/games/releaseYear/GuessReleaseYearGameScreen.kt @@ -121,7 +121,10 @@ private fun GameContent( Box { LoginBackground() - AnimatedVisibility(state.isNotEnoughPointsDialogVisible) { + AnimatedVisibility( + state.isNotEnoughPointsDialogVisible, + exit = fadeOut(animationSpec = tween(0)) + ) { NotEnoughPointsDialog( onConfirm = interactionListener::dismissNotEnoughPointsDialog, onDismiss = interactionListener::dismissNotEnoughPointsDialog, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/home/HomeScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/home/HomeScreen.kt index 55f27b2dc..2f95f2e86 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/home/HomeScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/home/HomeScreen.kt @@ -1,9 +1,11 @@ package com.amsterdam.ui.screens.home import android.annotation.SuppressLint +import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.animateColorAsState import androidx.compose.animation.animateContentSize import androidx.compose.animation.core.tween +import androidx.compose.animation.fadeOut import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -240,7 +242,10 @@ private fun HomeScreenContent( } } } - AnimatedSectionVisibility(visible = state.moodPickerUiState.openMovieDialog) { + AnimatedVisibility( + visible = state.moodPickerUiState.openMovieDialog, + exit = fadeOut(animationSpec = tween(0)) + ) { MovieMoodPickerDialog( movie = state.moodPickerUiState.selectedMovie, onClickViewDetails = interactionListener::onClickViewDetails, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt index eb7951ea1..746287d6a 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt @@ -128,6 +128,7 @@ private fun ListsScreenContent( AnimatedVisibility( modifier = Modifier, visible = state.isCreateNewListDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { CreateNewListDialog( isCreateListLoading = state.isCreateListLoading, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/movieDetails/MovieDetailsScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/movieDetails/MovieDetailsScreen.kt index 4e6b54841..59c61b7dd 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/movieDetails/MovieDetailsScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/movieDetails/MovieDetailsScreen.kt @@ -309,6 +309,7 @@ fun MovieContent( AnimatedVisibility( modifier = Modifier, visible = state.isCreateNewListDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { CreateNewListDialog( isCreateListLoading = state.isCreateListLoading, @@ -332,6 +333,7 @@ fun MovieContent( AnimatedVisibility( modifier = Modifier, visible = state.isAddToListDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { AddToListDialog( userLists = state.userLists, diff --git a/ui/src/main/java/com/amsterdam/ui/screens/profile/components/LoggedInContent.kt b/ui/src/main/java/com/amsterdam/ui/screens/profile/components/LoggedInContent.kt index c0d3592ad..5058b6031 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/profile/components/LoggedInContent.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/profile/components/LoggedInContent.kt @@ -24,8 +24,8 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.amsterdam.designsystem.components.TopAppBar import com.amsterdam.designsystem.components.Text +import com.amsterdam.designsystem.components.TopAppBar import com.amsterdam.designsystem.components.divider.HorizontalDivider import com.amsterdam.designsystem.theme.AflamiTheme import com.amsterdam.designsystem.theme.AppTheme @@ -129,7 +129,8 @@ private fun ScreenDialogs( interactionListener: ProfileInteractionListener ) { AnimatedVisibility( - state.settingsState.isSettingsDialogVisible + state.settingsState.isSettingsDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { SettingsDialog( onChangePasswordClick = interactionListener::onClickForgotPassword, @@ -140,7 +141,8 @@ private fun ScreenDialogs( } AnimatedVisibility( - state.settingsState.isLogoutDialogVisible + state.settingsState.isLogoutDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { LogoutDialog( isLogoutButtonLoading = state.settingsState.isLogoutButtonLoading, @@ -150,7 +152,8 @@ private fun ScreenDialogs( } AnimatedVisibility( - state.settingsState.isContentRestrictionDialogVisible + state.settingsState.isContentRestrictionDialogVisible, + exit = fadeOut(animationSpec = tween(0)) ) { ContentRestrictionDialog( isSaveButtonLoading = state.settingsState.isContentRestrictionSaveButtonLoading, @@ -163,8 +166,7 @@ private fun ScreenDialogs( AnimatedVisibility( state.showLanguageDialog, - enter = fadeIn(tween(2000)), - exit = fadeOut(tween(2000)), + exit = fadeOut(tween(0)), ) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { LanguageDialog( @@ -178,8 +180,7 @@ private fun ScreenDialogs( AnimatedVisibility( state.showThemeDialog, - enter = fadeIn(tween(2000)), - exit = fadeOut(tween(2000)), + exit = fadeOut(tween(0)), ) { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { ThemeDialog( From ff77c8f9cdbc96af5d1c4edac85a9b78d801336f Mon Sep 17 00:00:00 2001 From: Thoraya Date: Wed, 20 Aug 2025 01:58:51 +0300 Subject: [PATCH 2/2] fix: clean the code. --- .../java/com/amsterdam/ui/screens/lists/ListsScreen.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt b/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt index 746287d6a..b61459cb7 100644 --- a/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt +++ b/ui/src/main/java/com/amsterdam/ui/screens/lists/ListsScreen.kt @@ -145,7 +145,7 @@ private fun ListsScreenContent( exit = fadeOut(tween(animationDuration)), ) { NotLoggedInContent( - stringResource(com.amsterdam.ui.R.string.lists), + stringResource(R.string.lists), interactionListener::onNavigateToLoginClicked, ) } @@ -165,7 +165,7 @@ private fun ListsScreenContent( DefaultAppBar( modifier = Modifier.padding(horizontal = 16.dp), showNavigateBackButton = false, - title = stringResource(com.amsterdam.ui.R.string.lists), + title = stringResource(R.string.lists), lastOption = painterResource(com.amsterdam.designsystem.R.drawable.ic_add), onLastOptionClicked = interactionListener::onClickAddList, ) @@ -196,9 +196,9 @@ private fun ListsScreenContent( lists.isEmpty() -> { NoDataContainer( modifier = Modifier.fillMaxSize(), - title = stringResource(com.amsterdam.ui.R.string.no_list_yet), - description = stringResource(com.amsterdam.ui.R.string.no_list_description), - imageRes = painterResource(id = com.amsterdam.ui.R.drawable.placeholder_no_saved_items), + title = stringResource(R.string.no_list_yet), + description = stringResource(R.string.no_list_description), + imageRes = painterResource(id = R.drawable.placeholder_no_saved_items), imageAlpha = 0.64f, ) }