From a45a8789e7aa82694461f77797bf5c6f4ed7dd5e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Fri, 3 Feb 2023 11:26:28 -0500 Subject: [PATCH] Faster animations --- .../com/vitorpamplona/amethyst/ui/components/UrlPreview.kt | 3 ++- .../com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt | 3 ++- .../com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt | 3 ++- .../com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt | 3 ++- .../vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt | 3 ++- .../java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt | 3 ++- .../com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt | 3 ++- .../com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt | 3 ++- .../vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt | 5 +++-- 9 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt index 538dfb8f0..3bf1ef47c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.components import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -32,7 +33,7 @@ fun UrlPreview(url: String, urlText: String, showUrlIfError: Boolean = true) { }) } - Crossfade(targetState = urlPreviewState) { state -> + Crossfade(targetState = urlPreviewState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is UrlPreviewState.Loaded -> { UrlPreviewCard(url, state.previewInfo) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt index 6cfa471c4..155820c6a 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Column import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -13,7 +14,7 @@ fun AccountScreen(accountStateViewModel: AccountStateViewModel, startingPage: St val accountState by accountStateViewModel.accountContent.collectAsState() Column() { - Crossfade(targetState = accountState) { state -> + Crossfade(targetState = accountState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is AccountState.LoggedOff -> { LoginPage(accountStateViewModel) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt index 75df0a0de..cc7310e49 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn @@ -45,7 +46,7 @@ fun CardFeedView(viewModel: CardFeedViewModel, accountViewModel: AccountViewMode }, ) { Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is CardFeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt index f538dd0f3..1708cce3c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomFeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn @@ -36,7 +37,7 @@ fun ChatroomFeedView(viewModel: FeedViewModel, accountViewModel: AccountViewMode } Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is FeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt index ee8425d52..52ea883a5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ChatroomListFeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn @@ -48,7 +49,7 @@ fun ChatroomListFeedView(viewModel: FeedViewModel, accountViewModel: AccountView }, ) { Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is FeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt index a218f27cf..7b62ca311 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -56,7 +57,7 @@ fun FeedView(viewModel: FeedViewModel, accountViewModel: AccountViewModel, navCo ) { Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is FeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt index 6ff74321c..4efa46366 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/ThreadFeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Column @@ -73,7 +74,7 @@ fun ThreadFeedView(noteId: String, viewModel: FeedViewModel, accountViewModel: A }, ) { Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is FeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt index b75f649d4..7e06c54ed 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedView.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.lazy.LazyColumn @@ -43,7 +44,7 @@ fun UserFeedView(viewModel: UserFeedViewModel, accountViewModel: AccountViewMode }, ) { Column() { - Crossfade(targetState = feedState) { state -> + Crossfade(targetState = feedState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is UserFeedState.Empty -> { FeedEmpty { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt index d41aff9de..37ade2832 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt @@ -1,6 +1,7 @@ package com.vitorpamplona.amethyst.ui.screen import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding @@ -61,7 +62,7 @@ fun FloatingButton(navController: NavHostController, accountViewModel: AccountSt val accountState by accountViewModel.accountContent.collectAsState() if (currentRoute(navController) == Route.Home.route) { - Crossfade(targetState = accountState) { state -> + Crossfade(targetState = accountState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is AccountState.LoggedInViewOnly -> { // Does nothing. @@ -77,7 +78,7 @@ fun FloatingButton(navController: NavHostController, accountViewModel: AccountSt } if (currentRoute(navController) == Route.Message.route) { - Crossfade(targetState = accountState) { state -> + Crossfade(targetState = accountState, animationSpec = tween(durationMillis = 100)) { state -> when (state) { is AccountState.LoggedInViewOnly -> { // Does nothing.