Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ABW-3654] - Update screens navigation transitions #1120

Merged
merged 4 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.babylon.wallet.android.presentation.account

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -45,7 +48,19 @@ fun NavGraphBuilder.account(
navArgument(ARG_ACCOUNT_ADDRESS) {
type = NavType.StringType
}
)
),
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
AccountScreen(
viewModel = hiltViewModel(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import android.os.Build
import android.os.Bundle
import androidx.annotation.VisibleForTesting
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.core.os.BundleCompat
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
Expand Down Expand Up @@ -108,7 +110,13 @@ fun NavGraphBuilder.createAccountScreen(
}
},
exitTransition = {
if (requiresHorizontalTransition(targetState.arguments)) {
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
if (requiresHorizontalTransition(initialState.arguments)) {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
} else {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.babylon.wallet.android.presentation.account.history

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -41,13 +43,13 @@ fun NavGraphBuilder.history(
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
},
exitTransition = {
null
ExitTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
},
popEnterTransition = {
null
EnterTransition.None
}
) {
HistoryScreen(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.babylon.wallet.android.presentation.account.settings
import androidx.annotation.VisibleForTesting
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -44,16 +45,16 @@ fun NavGraphBuilder.accountSettings(
navArgument(ARG_ACCOUNT_SETTINGS_ADDRESS) { type = NavType.StringType }
),
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
null
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
AccountSettingsScreen(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.babylon.wallet.android.presentation.account.settings.devsettings

import androidx.annotation.VisibleForTesting
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -42,11 +43,11 @@ fun NavGraphBuilder.devSettings(
exitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
popEnterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Right)
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
DevSettingsScreen(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.babylon.wallet.android.presentation.main

import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import com.radixdlt.sargon.Account
Expand All @@ -21,7 +23,13 @@ fun NavGraphBuilder.main(
onNavigateToConnectCloudBackup: () -> Unit,
onNavigateToLinkConnector: () -> Unit,
) {
composable(route = MAIN_ROUTE) {
composable(
route = MAIN_ROUTE,
enterTransition = { EnterTransition.None },
exitTransition = { ExitTransition.None },
popEnterTransition = { EnterTransition.None },
popExitTransition = { ExitTransition.None }
) {
MainScreen(
mainUiState = mainUiState,
onMenuClick = onMenuClick,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.babylon.wallet.android.presentation.onboarding.cloudbackup

import android.os.Bundle
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -43,10 +46,24 @@ fun NavGraphBuilder.connectCloudBackupScreen(
}
),
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
if (requiresHorizontalTransition(targetState.arguments)) {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
} else {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
}
},
popEnterTransition = {
EnterTransition.None
},
exitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
ExitTransition.None
},
popExitTransition = {
if (requiresHorizontalTransition(initialState.arguments)) {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
} else {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
}
}
) {
ConnectCloudBackupScreen(
Expand All @@ -56,3 +73,9 @@ fun NavGraphBuilder.connectCloudBackupScreen(
)
}
}

private fun requiresHorizontalTransition(arguments: Bundle?): Boolean {
arguments ?: return false
val connectMode = arguments.getString(ARG_CONNECT_MODE)?.let { ConnectCloudBackupViewModel.ConnectMode.valueOf(it) }
return connectMode == ConnectCloudBackupViewModel.ConnectMode.RestoreWallet
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.babylon.wallet.android.presentation.onboarding.eula

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
Expand All @@ -16,7 +19,11 @@ fun NavGraphBuilder.eulaScreen(
onAccepted: (isWithCloudBackupEnabled: Boolean) -> Unit
) {
composable(
route = ROUTE_EULA_SCREEN
route = ROUTE_EULA_SCREEN,
enterTransition = { slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up) },
exitTransition = { ExitTransition.None },
popEnterTransition = { EnterTransition.None },
popExitTransition = { slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down) }
) {
EulaScreen(
viewModel = hiltViewModel(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.babylon.wallet.android.presentation.onboarding.restore.backup

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
Expand All @@ -22,13 +23,13 @@ fun NavGraphBuilder.restoreFromBackupScreen(
composable(
route = ROUTE_RESTORE_FROM_BACKUP,
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
null
ExitTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
},
popEnterTransition = {
EnterTransition.None
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.babylon.wallet.android.presentation.onboarding.restore.withoutbackup

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
Expand All @@ -20,10 +22,16 @@ fun NavGraphBuilder.restoreWithoutBackupScreen(
composable(
route = ROUTE_RESTORE_WITHOUT_BACKUP,
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Up)
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Down)
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
RestoreWithoutBackupScreen(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.babylon.wallet.android.presentation.settings

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
Expand Down Expand Up @@ -67,7 +70,19 @@ fun NavGraphBuilder.settingsNavGraph(

private fun NavGraphBuilder.settingsAll(navController: NavController) {
composable(
route = Screen.SettingsAllDestination.route
route = Screen.SettingsAllDestination.route,
enterTransition = {
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
SettingsScreen(
viewModel = hiltViewModel(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.babylon.wallet.android.presentation.settings.personas.createpersona

import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
Expand Down Expand Up @@ -50,13 +51,13 @@ fun NavGraphBuilder.personaInfoScreen(
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
null
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
CreatePersonaInfoScreen(
Expand All @@ -78,13 +79,13 @@ fun NavGraphBuilder.createPersonaScreen(
slideIntoContainer(AnimatedContentTransitionScope.SlideDirection.Left)
},
exitTransition = {
null
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
ExitTransition.None
},
popEnterTransition = {
EnterTransition.None
},
popExitTransition = {
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
) {
CreatePersonaScreen(
Expand All @@ -108,7 +109,7 @@ fun NavGraphBuilder.personasScreen(
},
exitTransition = {
when (targetState.destination.route) {
ROUTE_PERSONAS, ROUTE_PERSONA_DETAIL, ROUTE_CREATE_PERSONA, ROUTE_PERSONA_INFO -> null
ROUTE_PERSONAS, ROUTE_PERSONA_DETAIL, ROUTE_CREATE_PERSONA, ROUTE_PERSONA_INFO -> ExitTransition.None
else -> slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
Expand Down Expand Up @@ -274,7 +275,11 @@ private fun CreatePersonaContentList(
} else {
null
},
keyboardOptions = KeyboardOptions(capitalization = KeyboardCapitalization.Sentences)
keyboardOptions = KeyboardOptions(
capitalization = KeyboardCapitalization.Words,
imeAction = ImeAction.Done
),
singleLine = true,
)
Spacer(modifier = Modifier.height(dimensions.paddingMedium))
Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.babylon.wallet.android.presentation.settings.personas.personadetail

import androidx.annotation.VisibleForTesting
import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
Expand Down Expand Up @@ -52,7 +51,7 @@ fun NavGraphBuilder.personaDetailScreen(
slideOutOfContainer(AnimatedContentTransitionScope.SlideDirection.Right)
},
popEnterTransition = {
EnterTransition.None
null
},
arguments = listOf(
navArgument(ARG_PERSONA_ADDRESS) {
Expand Down
Loading
Loading