Skip to content

Commit e3f963f

Browse files
committed
fix: Polish navigation
1 parent e4e14cc commit e3f963f

File tree

6 files changed

+17
-15
lines changed

6 files changed

+17
-15
lines changed

app/src/main/java/to/bitkit/ui/nav/Navigator.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ import androidx.navigation3.runtime.NavKey
77

88
@Stable
99
class Navigator(@PublishedApi internal val backStack: NavBackStack<NavKey>) {
10-
fun navigate(route: Routes) = run { backStack.add(route) }
10+
11+
fun navigate(route: Routes) {
12+
if (backStack.lastOrNull() != route) {
13+
backStack.add(route)
14+
}
15+
}
1116

1217
fun goBack(): Boolean = backStack.removeLastOrNull() != null
1318

@@ -50,9 +55,6 @@ class Navigator(@PublishedApi internal val backStack: NavBackStack<NavKey>) {
5055
else -> false
5156
}
5257

53-
fun navigateToQuickPaySettings(hasSeenIntro: Boolean = true) = navigate(
54-
if (hasSeenIntro) Routes.QuickPaySettings else Routes.QuickPayIntro
55-
)
5658
}
5759

5860
const val MS_NAV_DELAY = 100L

app/src/main/java/to/bitkit/ui/nav/SheetSceneStrategy.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class SheetSceneStrategy<T : Any> : SceneStrategy<T> {
1313

1414
override fun SceneStrategyScope<T>.calculateScene(entries: List<NavEntry<T>>): Scene<T>? {
1515
val lastEntry = entries.lastOrNull()
16-
val sheetProperties = lastEntry?.metadata?.get(SHEET_KEY) as? SheetProperties
16+
val sheetProperties = lastEntry?.metadata?.get(KEY_SHEET) as? SheetProperties
1717
return sheetProperties?.let { props ->
1818
@Suppress("UNCHECKED_CAST")
1919
SheetScene(
@@ -29,10 +29,10 @@ class SheetSceneStrategy<T : Any> : SceneStrategy<T> {
2929

3030
companion object {
3131
fun sheet(size: SheetSize = SheetSize.LARGE): Map<String, Any> = mapOf(
32-
SHEET_KEY to SheetProperties(size),
32+
KEY_SHEET to SheetProperties(size),
3333
)
3434

35-
internal const val SHEET_KEY = "bitkit_sheet"
35+
internal const val KEY_SHEET = "bitkit_sheet"
3636
}
3737
}
3838

app/src/main/java/to/bitkit/ui/nav/entries/SettingsEntries.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ fun EntryProviderScope<NavKey>.settingsEntries(
211211
entry<Routes.QuickPayIntro> {
212212
QuickPayIntroScreen(
213213
onBack = { navigator.goBack() },
214-
onContinue = { navigator.navigateToQuickPaySettings() },
214+
onContinue = { navigator.navigate(Routes.QuickPaySettings) },
215215
)
216216
}
217217

app/src/main/java/to/bitkit/ui/nav/entries/SheetEntries.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,7 @@ private fun EntryProviderScope<NavKey>.timedSheetEntries(
871871
QuickPayIntroSheet(
872872
onContinue = {
873873
appViewModel.dismissTimedSheet(skipQueue = true)
874-
navigator.navigateToQuickPaySettings()
874+
navigator.navigate(Routes.QuickPaySettings)
875875
},
876876
)
877877
}

app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -216,11 +216,8 @@ fun HomeScreen(
216216
}
217217

218218
Suggestion.QUICK_PAY -> {
219-
if (!quickPayIntroSeen) {
220-
navigator.navigate(Routes.QuickPayIntro)
221-
} else {
222-
navigator.navigateToQuickPaySettings()
223-
}
219+
val route = if (quickPayIntroSeen) Routes.QuickPaySettings else Routes.QuickPayIntro
220+
navigator.navigate(route)
224221
}
225222

226223
Suggestion.NOTIFICATIONS -> {

app/src/main/java/to/bitkit/ui/settings/general/GeneralSettingsScreen.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ fun GeneralSettingsScreen(
5757
onDefaultUnitClick = { navigator.navigate(Routes.DefaultUnitSettings) },
5858
onTransactionSpeedClick = { navigator.navigate(Routes.TransactionSpeedSettings) },
5959
onWidgetsClick = { navigator.navigate(Routes.WidgetsSettings) },
60-
onQuickPayClick = { navigator.navigateToQuickPaySettings(quickPayIntroSeen) },
60+
onQuickPayClick = {
61+
val route = if (quickPayIntroSeen) Routes.QuickPaySettings else Routes.QuickPayIntro
62+
navigator.navigate(route)
63+
},
6164
onTagsClick = { navigator.navigate(Routes.TagsSettings) },
6265
onLanguageSettingsClick = { navigator.navigate(Routes.LanguageSettings) },
6366
onBgPaymentsClick = {

0 commit comments

Comments
 (0)