From 8647016e61d2d1c7dff7c8fcca0717fd7ce9ac96 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 24 Jan 2023 09:45:11 +0100 Subject: [PATCH 1/5] Use the `modifier` parameter. --- .../io/element/android/x/node/LoggedInFlowNode.kt | 11 +++++++---- .../io/element/android/x/node/NotLoggedInFlowNode.kt | 5 ++++- .../kotlin/io/element/android/x/node/RoomFlowNode.kt | 9 ++++++--- .../kotlin/io/element/android/x/node/RootFlowNode.kt | 1 + .../element/android/features/login/LoginFlowNode.kt | 5 ++++- .../features/login/changeserver/ChangeServerNode.kt | 1 + .../android/features/login/root/LoginRootNode.kt | 1 + .../features/preferences/PreferencesFlowNode.kt | 5 ++++- .../features/preferences/root/PreferencesRootNode.kt | 1 + .../element/android/features/roomlist/RoomListNode.kt | 1 + 10 files changed, 30 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt index 774b42b220..22f2f272db 100644 --- a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt @@ -32,16 +32,16 @@ import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.core.node.node import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push +import io.element.android.features.preferences.PreferencesFlowNode +import io.element.android.features.roomlist.RoomListNode import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.createNode import io.element.android.libraries.di.DaggerComponentOwner -import io.element.android.x.di.SessionComponent -import io.element.android.features.preferences.PreferencesFlowNode -import io.element.android.features.roomlist.RoomListNode import io.element.android.libraries.matrix.MatrixClient import io.element.android.libraries.matrix.core.RoomId import io.element.android.libraries.matrix.core.SessionId import io.element.android.libraries.matrix.ui.di.MatrixUIBindings +import io.element.android.x.di.SessionComponent import kotlinx.parcelize.Parcelize class LoggedInFlowNode( @@ -124,6 +124,9 @@ class LoggedInFlowNode( @Composable override fun View(modifier: Modifier) { - Children(navModel = backstack) + Children( + navModel = backstack, + modifier = modifier, + ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt index 91a85c1e85..a5a20b2a2f 100644 --- a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt @@ -71,6 +71,9 @@ class NotLoggedInFlowNode( @Composable override fun View(modifier: Modifier) { - Children(navModel = backstack) + Children( + navModel = backstack, + modifier = modifier, + ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/RoomFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RoomFlowNode.kt index 0048b143cf..bae60841d6 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RoomFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RoomFlowNode.kt @@ -25,12 +25,12 @@ import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack +import io.element.android.features.messages.MessagesNode import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.createNode import io.element.android.libraries.di.DaggerComponentOwner -import io.element.android.x.di.RoomComponent -import io.element.android.features.messages.MessagesNode import io.element.android.libraries.matrix.room.MatrixRoom +import io.element.android.x.di.RoomComponent import kotlinx.parcelize.Parcelize import timber.log.Timber @@ -70,6 +70,9 @@ class RoomFlowNode( @Composable override fun View(modifier: Modifier) { - Children(navModel = backstack) + Children( + navModel = backstack, + modifier = modifier, + ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index cf7346f801..3bf65dc7ca 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -107,6 +107,7 @@ class RootFlowNode( val state by presenterConnector.stateFlow.collectAsState() RootView( state = state, + modifier = modifier, onOpenBugReport = this::onOpenBugReport, ) { Children(navModel = backstack) diff --git a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt index ae0f6268a0..a849016d79 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt @@ -64,6 +64,9 @@ class LoginFlowNode( @Composable override fun View(modifier: Modifier) { - Children(navModel = backstack) + Children( + navModel = backstack, + modifier = modifier, + ) } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt index 4cec3ad0be..bfd7006d21 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt @@ -47,6 +47,7 @@ class ChangeServerNode @AssistedInject constructor( val state by presenterConnector.stateFlow.collectAsState() ChangeServerView( state = state, + modifier = modifier, onChangeServerSuccess = this::onSuccess, ) } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt index 87a1c3d248..f63277c32b 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt @@ -60,6 +60,7 @@ class LoginRootNode @AssistedInject constructor( } LoginRootScreen( state = state, + modifier = modifier, onChangeServer = this::onChangeHomeServer, ) } diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt index a3e9e4e283..aed8a1ca81 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt @@ -59,6 +59,9 @@ class PreferencesFlowNode( @Composable override fun View(modifier: Modifier) { - Children(navModel = backstack) + Children( + navModel = backstack, + modifier = modifier, + ) } } diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt index b1ef84646b..fcfabb4cd7 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt @@ -52,6 +52,7 @@ class PreferencesRootNode @AssistedInject constructor( val state by presenterConnector.stateFlow.collectAsState() PreferencesRootView( state = state, + modifier = modifier, onBackPressed = this::navigateUp, onOpenRageShake = this::onOpenBugReport ) diff --git a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListNode.kt b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListNode.kt index 4e153a2328..f492e09871 100644 --- a/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListNode.kt +++ b/features/roomlist/src/main/kotlin/io/element/android/features/roomlist/RoomListNode.kt @@ -58,6 +58,7 @@ class RoomListNode @AssistedInject constructor( val state by connector.stateFlow.collectAsState() RoomListView( state = state, + modifier = modifier, onRoomClicked = this::onRoomClicked, onOpenSettings = this::onOpenSettings ) From dd10fbe3955756e9520d761558d7428ef3830350 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 24 Jan 2023 09:48:35 +0100 Subject: [PATCH 2/5] Naming convention and no need for a `val` for `presenter` --- app/src/main/kotlin/io/element/android/x/MainActivity.kt | 2 +- app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt | 4 ++-- .../android/features/login/changeserver/ChangeServerNode.kt | 2 +- .../io/element/android/features/login/root/LoginRootNode.kt | 2 +- .../android/features/preferences/root/PreferencesRootNode.kt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/MainActivity.kt b/app/src/main/kotlin/io/element/android/x/MainActivity.kt index 364ab6396d..9a3f7951e8 100644 --- a/app/src/main/kotlin/io/element/android/x/MainActivity.kt +++ b/app/src/main/kotlin/io/element/android/x/MainActivity.kt @@ -48,7 +48,7 @@ class MainActivity : NodeComponentActivity() { buildContext = it, appComponentOwner = applicationContext as DaggerComponentOwner, authenticationService = appBindings.authenticationService(), - rootPresenter = appBindings.rootPresenter() + presenter = appBindings.rootPresenter() ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index 3bf65dc7ca..04cf3c7d9c 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -60,7 +60,7 @@ class RootFlowNode( ), private val appComponentOwner: DaggerComponentOwner, private val authenticationService: MatrixAuthenticationService, - rootPresenter: RootPresenter + presenter: RootPresenter ) : ParentNode( navModel = backstack, @@ -70,7 +70,7 @@ class RootFlowNode( DaggerComponentOwner by appComponentOwner { private val matrixClientsHolder = ConcurrentHashMap() - private val presenterConnector = presenterConnector(rootPresenter) + private val presenterConnector = presenterConnector(presenter) override fun onBuilt() { super.onBuilt() diff --git a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt index bfd7006d21..b0c8b96ed5 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/changeserver/ChangeServerNode.kt @@ -33,7 +33,7 @@ import io.element.android.libraries.di.AppScope class ChangeServerNode @AssistedInject constructor( @Assisted buildContext: BuildContext, @Assisted plugins: List, - private val presenter: ChangeServerPresenter, + presenter: ChangeServerPresenter, ) : Node(buildContext, plugins = plugins) { private val presenterConnector = presenterConnector(presenter) diff --git a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt index f63277c32b..fd8fd55349 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/root/LoginRootNode.kt @@ -36,7 +36,7 @@ import io.element.android.libraries.di.AppScope class LoginRootNode @AssistedInject constructor( @Assisted buildContext: BuildContext, @Assisted plugins: List, - private val presenter: LoginRootPresenter, + presenter: LoginRootPresenter, ) : Node(buildContext, plugins = plugins) { private val presenterConnector = presenterConnector(presenter) diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt index fcfabb4cd7..92688e5b32 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/root/PreferencesRootNode.kt @@ -34,7 +34,7 @@ import io.element.android.libraries.di.SessionScope class PreferencesRootNode @AssistedInject constructor( @Assisted buildContext: BuildContext, @Assisted plugins: List, - private val presenter: PreferencesRootPresenter, + presenter: PreferencesRootPresenter, ) : Node(buildContext, plugins = plugins) { interface Callback : Plugin { From 78cbca31935a1c1d396053097fcc325c07f27e88 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 24 Jan 2023 16:50:00 +0100 Subject: [PATCH 3/5] Animation between screens --- .../android/x/node/LoggedInFlowNode.kt | 3 ++ .../android/x/node/NotLoggedInFlowNode.kt | 3 ++ .../io/element/android/x/node/RootFlowNode.kt | 9 ++++-- .../android/features/login/LoginFlowNode.kt | 5 ++- .../preferences/PreferencesFlowNode.kt | 4 ++- .../animation/ScreenTransition.kt | 31 +++++++++++++++++++ 6 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt diff --git a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt index 22f2f272db..cb7bed5d84 100644 --- a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt @@ -34,6 +34,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.preferences.PreferencesFlowNode import io.element.android.features.roomlist.RoomListNode +import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.createNode import io.element.android.libraries.di.DaggerComponentOwner @@ -127,6 +128,8 @@ class LoggedInFlowNode( Children( navModel = backstack, modifier = modifier, + // Animate navigation to settings and to a room + transitionHandler = getDefaultTransitionHandler(), ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt index a5a20b2a2f..b9ca33483e 100644 --- a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt @@ -29,6 +29,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.replace import io.element.android.features.login.LoginFlowNode import io.element.android.features.onboarding.OnBoardingScreen +import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler import kotlinx.parcelize.Parcelize import timber.log.Timber @@ -74,6 +75,8 @@ class NotLoggedInFlowNode( Children( navModel = backstack, modifier = modifier, + // Animate navigation to login screen + transitionHandler = getDefaultTransitionHandler(), ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index 04cf3c7d9c..ccb63965f1 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -36,10 +36,11 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.newRoot import com.bumble.appyx.navmodel.backstack.operation.pop import com.bumble.appyx.navmodel.backstack.operation.push +import io.element.android.features.rageshake.bugreport.BugReportNode +import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.presenterConnector import io.element.android.libraries.di.DaggerComponentOwner -import io.element.android.features.rageshake.bugreport.BugReportNode import io.element.android.libraries.matrix.MatrixClient import io.element.android.libraries.matrix.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.core.SessionId @@ -110,7 +111,11 @@ class RootFlowNode( modifier = modifier, onOpenBugReport = this::onOpenBugReport, ) { - Children(navModel = backstack) + Children( + navModel = backstack, + // Animate opening the bug report screen + transitionHandler = getDefaultTransitionHandler(), + ) } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt index a849016d79..8d5bab90d3 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt @@ -25,9 +25,10 @@ import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push -import io.element.android.libraries.architecture.createNode import io.element.android.features.login.changeserver.ChangeServerNode import io.element.android.features.login.root.LoginRootNode +import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.createNode import kotlinx.parcelize.Parcelize class LoginFlowNode( @@ -67,6 +68,8 @@ class LoginFlowNode( Children( navModel = backstack, modifier = modifier, + // Animate transition to change server screen + transitionHandler = getDefaultTransitionHandler(), ) } } diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt index aed8a1ca81..c87bb0e0d0 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt @@ -24,8 +24,9 @@ import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack -import io.element.android.libraries.architecture.createNode import io.element.android.features.preferences.root.PreferencesRootNode +import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.createNode import kotlinx.parcelize.Parcelize class PreferencesFlowNode( @@ -62,6 +63,7 @@ class PreferencesFlowNode( Children( navModel = backstack, modifier = modifier, + transitionHandler = getDefaultTransitionHandler() ) } } diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt new file mode 100644 index 0000000000..c777ebed02 --- /dev/null +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.libraries.architecture.animation + +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring +import androidx.compose.runtime.Composable +import com.bumble.appyx.core.navigation.transition.ModifierTransitionHandler +import com.bumble.appyx.navmodel.backstack.BackStack +import com.bumble.appyx.navmodel.backstack.transitionhandler.rememberBackstackSlider + +@Composable +fun getDefaultTransitionHandler(): ModifierTransitionHandler { + return rememberBackstackSlider( + transitionSpec = { spring(stiffness = Spring.StiffnessMediumLow) }, + ) +} From 8b3316ec234c1a60e76d26caecaca722cf1850b8 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 24 Jan 2023 17:26:24 +0100 Subject: [PATCH 4/5] Better to go back to onboarding. --- .../kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt index b9ca33483e..774a075db2 100644 --- a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt @@ -26,7 +26,7 @@ import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.core.node.node import com.bumble.appyx.navmodel.backstack.BackStack -import com.bumble.appyx.navmodel.backstack.operation.replace +import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.login.LoginFlowNode import io.element.android.features.onboarding.OnBoardingScreen import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler @@ -63,7 +63,7 @@ class NotLoggedInFlowNode( return when (navTarget) { NavTarget.OnBoarding -> node(buildContext) { OnBoardingScreen( - onSignIn = { backstack.replace(NavTarget.LoginFlow) } + onSignIn = { backstack.push(NavTarget.LoginFlow) } ) } NavTarget.LoginFlow -> LoginFlowNode(buildContext) From 9b515a95ffea225b85127f654286f157758abe7c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 25 Jan 2023 11:14:50 +0100 Subject: [PATCH 5/5] Rename function (code review) --- .../main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt | 4 ++-- .../kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt | 4 ++-- app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt | 4 ++-- .../kotlin/io/element/android/features/login/LoginFlowNode.kt | 4 ++-- .../android/features/preferences/PreferencesFlowNode.kt | 4 ++-- .../libraries/architecture/animation/ScreenTransition.kt | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt index cb7bed5d84..b2e2aca077 100644 --- a/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/LoggedInFlowNode.kt @@ -34,7 +34,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.preferences.PreferencesFlowNode import io.element.android.features.roomlist.RoomListNode -import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.bindings import io.element.android.libraries.architecture.createNode import io.element.android.libraries.di.DaggerComponentOwner @@ -129,7 +129,7 @@ class LoggedInFlowNode( navModel = backstack, modifier = modifier, // Animate navigation to settings and to a room - transitionHandler = getDefaultTransitionHandler(), + transitionHandler = rememberDefaultTransitionHandler(), ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt index 774a075db2..b9e38d1063 100644 --- a/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/NotLoggedInFlowNode.kt @@ -29,7 +29,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.login.LoginFlowNode import io.element.android.features.onboarding.OnBoardingScreen -import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import kotlinx.parcelize.Parcelize import timber.log.Timber @@ -76,7 +76,7 @@ class NotLoggedInFlowNode( navModel = backstack, modifier = modifier, // Animate navigation to login screen - transitionHandler = getDefaultTransitionHandler(), + transitionHandler = rememberDefaultTransitionHandler(), ) } } diff --git a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt index ccb63965f1..d82ac55e7f 100644 --- a/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt +++ b/app/src/main/kotlin/io/element/android/x/node/RootFlowNode.kt @@ -37,7 +37,7 @@ import com.bumble.appyx.navmodel.backstack.operation.newRoot import com.bumble.appyx.navmodel.backstack.operation.pop import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.rageshake.bugreport.BugReportNode -import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.createNode import io.element.android.libraries.architecture.presenterConnector import io.element.android.libraries.di.DaggerComponentOwner @@ -114,7 +114,7 @@ class RootFlowNode( Children( navModel = backstack, // Animate opening the bug report screen - transitionHandler = getDefaultTransitionHandler(), + transitionHandler = rememberDefaultTransitionHandler(), ) } } diff --git a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt index 8d5bab90d3..641435642d 100644 --- a/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt +++ b/features/login/src/main/kotlin/io/element/android/features/login/LoginFlowNode.kt @@ -27,7 +27,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.operation.push import io.element.android.features.login.changeserver.ChangeServerNode import io.element.android.features.login.root.LoginRootNode -import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.createNode import kotlinx.parcelize.Parcelize @@ -69,7 +69,7 @@ class LoginFlowNode( navModel = backstack, modifier = modifier, // Animate transition to change server screen - transitionHandler = getDefaultTransitionHandler(), + transitionHandler = rememberDefaultTransitionHandler(), ) } } diff --git a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt index c87bb0e0d0..5407072398 100644 --- a/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt +++ b/features/preferences/src/main/kotlin/io/element/android/features/preferences/PreferencesFlowNode.kt @@ -25,7 +25,7 @@ import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.ParentNode import com.bumble.appyx.navmodel.backstack.BackStack import io.element.android.features.preferences.root.PreferencesRootNode -import io.element.android.libraries.architecture.animation.getDefaultTransitionHandler +import io.element.android.libraries.architecture.animation.rememberDefaultTransitionHandler import io.element.android.libraries.architecture.createNode import kotlinx.parcelize.Parcelize @@ -63,7 +63,7 @@ class PreferencesFlowNode( Children( navModel = backstack, modifier = modifier, - transitionHandler = getDefaultTransitionHandler() + transitionHandler = rememberDefaultTransitionHandler() ) } } diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt index c777ebed02..faac896b85 100644 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/animation/ScreenTransition.kt @@ -24,7 +24,7 @@ import com.bumble.appyx.navmodel.backstack.BackStack import com.bumble.appyx.navmodel.backstack.transitionhandler.rememberBackstackSlider @Composable -fun getDefaultTransitionHandler(): ModifierTransitionHandler { +fun rememberDefaultTransitionHandler(): ModifierTransitionHandler { return rememberBackstackSlider( transitionSpec = { spring(stiffness = Spring.StiffnessMediumLow) }, )