Skip to content

Commit d12093c

Browse files
committed
Merge branch 'feat/nav3' into fix/error-decoding-qr-msg
# Conflicts: # app/src/main/java/to/bitkit/ui/ContentView.kt # app/src/main/java/to/bitkit/ui/MainActivity.kt # app/src/main/java/to/bitkit/ui/components/AuthCheckScreen.kt # app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt # app/src/main/java/to/bitkit/ui/components/SheetHost.kt # app/src/main/java/to/bitkit/ui/nav/DeepLinks.kt # app/src/main/java/to/bitkit/ui/nav/Navigator.kt # app/src/main/java/to/bitkit/ui/nav/Routes.kt # app/src/main/java/to/bitkit/ui/nav/SheetSceneStrategy.kt # app/src/main/java/to/bitkit/ui/nav/entries/HomeEntries.kt # app/src/main/java/to/bitkit/ui/nav/entries/OnboardingEntries.kt # app/src/main/java/to/bitkit/ui/nav/entries/SettingsEntries.kt # app/src/main/java/to/bitkit/ui/nav/entries/SheetEntries.kt # app/src/main/java/to/bitkit/ui/nav/entries/TransferEntries.kt # app/src/main/java/to/bitkit/ui/nav/entries/WidgetEntries.kt # app/src/main/java/to/bitkit/ui/screens/settings/DevSettingsScreen.kt # app/src/main/java/to/bitkit/ui/screens/wallets/HomeScreen.kt # app/src/main/java/to/bitkit/ui/screens/wallets/activity/ActivityDetailScreen.kt # app/src/main/java/to/bitkit/ui/screens/wallets/send/AddTagScreen.kt # app/src/main/java/to/bitkit/ui/screens/wallets/send/SendAddressScreen.kt # app/src/main/java/to/bitkit/ui/screens/wallets/send/SendRecipientScreen.kt # app/src/main/java/to/bitkit/ui/settings/AdvancedSettingsScreen.kt # app/src/main/java/to/bitkit/ui/settings/BackupSettingsScreen.kt # app/src/main/java/to/bitkit/ui/settings/LogsScreen.kt # app/src/main/java/to/bitkit/ui/settings/SecuritySettingsScreen.kt # app/src/main/java/to/bitkit/ui/settings/SettingsScreen.kt # app/src/main/java/to/bitkit/ui/settings/appStatus/AppStatusScreen.kt # app/src/main/java/to/bitkit/ui/settings/backups/ResetAndRestoreScreen.kt # app/src/main/java/to/bitkit/ui/settings/backups/ShowMnemonicScreen.kt # app/src/main/java/to/bitkit/ui/settings/general/GeneralSettingsScreen.kt # app/src/main/java/to/bitkit/ui/settings/lightning/ChannelDetailScreen.kt # app/src/main/java/to/bitkit/ui/settings/lightning/CloseConnectionScreen.kt # app/src/main/java/to/bitkit/ui/settings/lightning/LightningConnectionsScreen.kt # app/src/main/java/to/bitkit/ui/settings/pin/ChangePinConfirmScreen.kt # app/src/main/java/to/bitkit/ui/settings/pin/ChangePinNewScreen.kt # app/src/main/java/to/bitkit/ui/settings/pin/ChangePinResultScreen.kt # app/src/main/java/to/bitkit/ui/settings/pin/ChangePinScreen.kt # app/src/main/java/to/bitkit/ui/settings/support/SupportScreen.kt # app/src/main/java/to/bitkit/ui/settings/transactionSpeed/TransactionSpeedSettingsScreen.kt # app/src/main/java/to/bitkit/ui/sheets/GiftViewModel.kt # app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt
2 parents edd77d7 + 1065fac commit d12093c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1129
-1072
lines changed

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ suspend fun getData(): Result<Data> = withContext(Dispatchers.IO) {
192192
- ALWAYS be mindful of thread safety when working with mutable lists & state
193193
- ALWAYS split screen composables into parent accepting viewmodel + inner private child accepting state and callbacks `Content()`
194194
- ALWAYS name lambda parameters in a composable function using present tense, NEVER use past tense
195+
- ALWAYS use a single root layout node in composables that emit UI
195196
- ALWAYS list 3 suggested commit messages after implementation work for the entire set of uncommitted changes
196197
- NEVER use `wheneverBlocking` in unit test expression body functions wrapped in a `= test {}` lambda
197198
- ALWAYS wrap unit tests `setUp` methods mocking suspending calls with `runBlocking`, e.g `setUp() = runBlocking { }`

app/src/main/java/to/bitkit/data/backup/VssBackupClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class VssBackupClient @Inject constructor(
155155
}
156156
}
157157

158-
companion object Companion {
158+
companion object {
159159
private const val TAG = "VssBackupClient"
160160
}
161161
}

app/src/main/java/to/bitkit/ui/ContentView.kt

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,19 @@ fun ContentView(
144144
LaunchedEffect(appViewModel, navigator) {
145145
appViewModel.sendEffect.collect { effect ->
146146
when (effect) {
147-
is SendEffect.NavigateToAddress -> navigator.navigate(Routes.SendAddress)
148-
is SendEffect.NavigateToAmount -> navigator.navigate(Routes.SendAmount())
149-
is SendEffect.NavigateToScan -> navigator.navigate(Routes.SendQrScanner)
150-
is SendEffect.NavigateToCoinSelection -> navigator.navigate(Routes.SendCoinSelection)
151-
is SendEffect.NavigateToConfirm -> navigator.navigate(Routes.SendConfirm)
152-
is SendEffect.NavigateToQuickPay -> navigator.navigate(Routes.SendQuickPay)
153-
is SendEffect.NavigateToWithdrawConfirm -> navigator.navigate(Routes.SendWithdrawConfirm)
154-
is SendEffect.NavigateToWithdrawError -> navigator.navigate(Routes.SendWithdrawError)
155-
is SendEffect.NavigateToFee -> navigator.navigate(Routes.SendFeeRate)
156-
is SendEffect.NavigateToFeeCustom -> navigator.navigate(Routes.SendFeeCustom)
147+
is SendEffect.NavigateToAddress -> navigator.navigate(Routes.Send.Address)
148+
is SendEffect.NavigateToAmount -> navigator.navigate(Routes.Send.Amount())
149+
is SendEffect.NavigateToScan -> navigator.navigate(Routes.Send.QrScanner)
150+
is SendEffect.NavigateToCoinSelection -> navigator.navigate(Routes.Send.CoinSelection)
151+
is SendEffect.NavigateToConfirm -> navigator.navigate(Routes.Send.Confirm)
152+
is SendEffect.NavigateToQuickPay -> navigator.navigate(Routes.Send.QuickPay)
153+
is SendEffect.NavigateToWithdrawConfirm -> navigator.navigate(Routes.Send.WithdrawConfirm)
154+
is SendEffect.NavigateToWithdrawError -> navigator.navigate(Routes.Send.WithdrawError)
155+
is SendEffect.NavigateToFee -> navigator.navigate(Routes.Send.FeeRate)
156+
is SendEffect.NavigateToFeeCustom -> navigator.navigate(Routes.Send.FeeCustom)
157157
is SendEffect.PaymentSuccess -> {
158158
appViewModel.clearClipboardForAutoRead()
159-
navigator.navigate(Routes.SendSuccess)
159+
navigator.navigate(Routes.Send.Success)
160160
}
161161

162162
is SendEffect.PopBack -> navigator.popBackTo(effect.route)
@@ -310,8 +310,8 @@ fun ContentView(
310310
modifier = Modifier.align(Alignment.BottomCenter),
311311
) {
312312
TabBar(
313-
onSendClick = { navigator.navigate(Routes.SendRecipient) },
314-
onReceiveClick = { navigator.navigate(Routes.ReceiveQr) },
313+
onSendClick = { navigator.navigate(Routes.Send.Recipient) },
314+
onReceiveClick = { navigator.navigate(Routes.Receive.Qr) },
315315
onScanClick = { navigator.navigate(Routes.QrScanner) },
316316
)
317317
}
@@ -322,7 +322,6 @@ fun ContentView(
322322
navigator = navigator,
323323
hasSeenWidgetsIntro = hasSeenWidgetsIntro,
324324
hasSeenShopIntro = hasSeenShopIntro,
325-
modifier = Modifier.align(Alignment.TopEnd),
326325
)
327326
}
328327
}

app/src/main/java/to/bitkit/ui/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ private fun OnboardingContent(
217217
appViewModel: AppViewModel,
218218
walletViewModel: WalletViewModel,
219219
) {
220-
val backStack = rememberNavBackStack(Routes.Terms)
220+
val backStack = rememberNavBackStack(Routes.Onboarding.Terms)
221221
val navigator = remember(backStack) { Navigator(backStack) }
222222
val isGeoBlocked by appViewModel.isGeoBlocked.collectAsStateWithLifecycle()
223223

app/src/main/java/to/bitkit/ui/components/AuthCheckScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ fun AuthCheckScreen(
5454
}
5555

5656
AuthCheckAction.NAV_TO_RESET -> {
57-
navigator.navigate(Routes.ResetAndRestoreSettings)
57+
navigator.navigate(Routes.Settings.ResetAndRestore)
5858
}
5959
}
6060
},

app/src/main/java/to/bitkit/ui/components/DrawerMenu.kt

Lines changed: 73 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -63,69 +63,70 @@ fun DrawerMenu(
6363
) {
6464
val scope = rememberCoroutineScope()
6565

66-
Scrim(
67-
visible = drawerState.currentValue == DrawerValue.Open,
68-
onClick = {
69-
scope.launch {
70-
drawerState.close()
71-
}
72-
},
73-
modifier = Modifier
74-
.fillMaxSize()
75-
.zIndex(zIndexScrim)
76-
)
66+
Box(modifier = modifier.fillMaxSize()) {
67+
Scrim(
68+
visible = drawerState.currentValue == DrawerValue.Open,
69+
onClick = {
70+
scope.launch {
71+
drawerState.close()
72+
}
73+
},
74+
modifier = Modifier
75+
.fillMaxSize()
76+
.zIndex(zIndexScrim)
77+
)
7778

78-
AnimatedVisibility(
79-
visible = drawerState.currentValue == DrawerValue.Open,
80-
enter = slideInHorizontally(
81-
initialOffsetX = { it }
82-
),
83-
exit = slideOutHorizontally(
84-
targetOffsetX = { it }
85-
),
86-
modifier = modifier.then(
87-
Modifier
79+
AnimatedVisibility(
80+
visible = drawerState.currentValue == DrawerValue.Open,
81+
enter = slideInHorizontally(
82+
initialOffsetX = { it }
83+
),
84+
exit = slideOutHorizontally(
85+
targetOffsetX = { it }
86+
),
87+
modifier = Modifier
88+
.align(Alignment.TopEnd)
8889
.fillMaxHeight()
8990
.zIndex(zIndexMenu)
9091
.blockPointerInputPassthrough()
91-
)
92-
) {
93-
MenuContent(
94-
onWalletClick = {
95-
if (!navigator.isAtHome()) navigator.navigateToHome()
96-
scope.launch { drawerState.close() }
97-
},
98-
onActivityClick = {
99-
navigator.navigate(Routes.AllActivity)
100-
scope.launch { drawerState.close() }
101-
},
102-
onContactsClick = null, // TODO IMPLEMENT CONTACTS
103-
onProfileClick = null, // TODO IMPLEMENT PROFILE
104-
onWidgetsClick = {
105-
if (!hasSeenWidgetsIntro) {
106-
navigator.navigate(Routes.WidgetsIntro)
107-
} else {
108-
navigator.navigate(Routes.AddWidget)
109-
}
110-
scope.launch { drawerState.close() }
111-
},
112-
onShopClick = {
113-
if (!hasSeenShopIntro) {
114-
navigator.navigate(Routes.ShopIntro)
115-
} else {
116-
navigator.navigate(Routes.ShopDiscover)
117-
}
118-
scope.launch { drawerState.close() }
119-
},
120-
onSettingsClick = {
121-
navigator.navigate(Routes.Settings)
122-
scope.launch { drawerState.close() }
123-
},
124-
onAppStatusClick = {
125-
navigator.navigate(Routes.AppStatus)
126-
scope.launch { drawerState.close() }
127-
},
128-
)
92+
) {
93+
MenuContent(
94+
onWalletClick = {
95+
if (!navigator.isAtHome()) navigator.navigateToHome()
96+
scope.launch { drawerState.close() }
97+
},
98+
onActivityClick = {
99+
navigator.navigate(Routes.Activity.All)
100+
scope.launch { drawerState.close() }
101+
},
102+
onContactsClick = null, // TODO IMPLEMENT CONTACTS
103+
onProfileClick = null, // TODO IMPLEMENT PROFILE
104+
onWidgetsClick = {
105+
if (!hasSeenWidgetsIntro) {
106+
navigator.navigate(Routes.Widgets.Intro)
107+
} else {
108+
navigator.navigate(Routes.Widgets.Add)
109+
}
110+
scope.launch { drawerState.close() }
111+
},
112+
onShopClick = {
113+
if (!hasSeenShopIntro) {
114+
navigator.navigate(Routes.Shop.Intro)
115+
} else {
116+
navigator.navigate(Routes.Shop.Discover)
117+
}
118+
scope.launch { drawerState.close() }
119+
},
120+
onSettingsClick = {
121+
navigator.navigate(Routes.Settings.Main)
122+
scope.launch { drawerState.close() }
123+
},
124+
onAppStatusClick = {
125+
navigator.navigate(Routes.AppStatus)
126+
scope.launch { drawerState.close() }
127+
},
128+
)
129+
}
129130
}
130131
}
131132

@@ -294,17 +295,19 @@ private fun DrawerItem(
294295
@Composable
295296
private fun Preview() {
296297
AppThemeSurface {
297-
Box {
298-
MenuContent(
299-
onWalletClick = {},
300-
onActivityClick = {},
301-
onContactsClick = null,
302-
onProfileClick = null,
303-
onWidgetsClick = {},
304-
onShopClick = {},
305-
onSettingsClick = {},
306-
onAppStatusClick = {},
307-
)
298+
Box(modifier = Modifier.fillMaxSize()) {
299+
Box(modifier = Modifier.align(Alignment.TopEnd)) {
300+
MenuContent(
301+
onWalletClick = {},
302+
onActivityClick = {},
303+
onContactsClick = null,
304+
onProfileClick = null,
305+
onWidgetsClick = {},
306+
onShopClick = {},
307+
onSettingsClick = {},
308+
onAppStatusClick = {},
309+
)
310+
}
308311
}
309312
}
310313
}

0 commit comments

Comments
 (0)