Skip to content

Commit ea68d34

Browse files
committed
refactor: Migrate navigation to nav3
1 parent 1f00462 commit ea68d34

File tree

73 files changed

+3913
-3462
lines changed

Some content is hidden

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

73 files changed

+3913
-3462
lines changed

app/build.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ dependencies {
234234
implementation(libs.navigation.compose)
235235
androidTestImplementation(libs.navigation.testing)
236236
implementation(libs.hilt.navigation.compose)
237+
// Navigation 3
238+
implementation(libs.navigation3.runtime)
239+
implementation(libs.navigation3.ui)
237240
// Hilt - DI
238241
implementation(libs.hilt.android)
239242
ksp(libs.hilt.android.compiler)

app/detekt-baseline.xml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,10 @@
1010
<ID>CyclomaticComplexMethod:ActivityRow.kt$@Composable fun ActivityRow( item: Activity, onClick: (String) -&gt; Unit, testTag: String, )</ID>
1111
<ID>CyclomaticComplexMethod:AppViewModel.kt$AppViewModel$private fun observeSendEvents()</ID>
1212
<ID>CyclomaticComplexMethod:AppViewModel.kt$AppViewModel$private suspend fun handleSanityChecks(amountSats: ULong)</ID>
13-
<ID>CyclomaticComplexMethod:BlocktankRegtestScreen.kt$@Composable fun BlocktankRegtestScreen( navController: NavController, viewModel: BlocktankRegtestViewModel = hiltViewModel(), )</ID>
13+
<ID>CyclomaticComplexMethod:BlocktankRegtestScreen.kt$@Composable private fun BlocktankRegtestContent( onBack: () -&gt; Unit, viewModel: BlocktankRegtestViewModel, )</ID>
1414
<ID>CyclomaticComplexMethod:ConfirmMnemonicScreen.kt$@Composable fun ConfirmMnemonicScreen( uiState: BackupContract.UiState, onContinue: () -&gt; Unit, onBack: () -&gt; Unit, )</ID>
1515
<ID>CyclomaticComplexMethod:HealthRepo.kt$HealthRepo$private fun collectState()</ID>
16-
<ID>CyclomaticComplexMethod:HomeScreen.kt$@Composable fun HomeScreen( mainUiState: MainUiState, drawerState: DrawerState, rootNavController: NavController, walletNavController: NavHostController, settingsViewModel: SettingsViewModel, walletViewModel: WalletViewModel, appViewModel: AppViewModel, activityListViewModel: ActivityListViewModel, homeViewModel: HomeViewModel = hiltViewModel(), )</ID>
17-
<ID>CyclomaticComplexMethod:SendSheet.kt$@Composable fun SendSheet( appViewModel: AppViewModel, walletViewModel: WalletViewModel, startDestination: SendRoute = SendRoute.Recipient, )</ID>
16+
<ID>CyclomaticComplexMethod:HomeScreen.kt$@Composable fun HomeScreen( mainUiState: MainUiState, drawerState: DrawerState, navigator: Navigator, settingsViewModel: SettingsViewModel, walletViewModel: WalletViewModel, appViewModel: AppViewModel, activityListViewModel: ActivityListViewModel, homeViewModel: HomeViewModel = hiltViewModel(), )</ID>
1817
<ID>CyclomaticComplexMethod:SettingsButtonRow.kt$@Composable fun SettingsButtonRow( title: String, modifier: Modifier = Modifier, subtitle: String? = null, value: SettingsButtonValue = SettingsButtonValue.None, description: String? = null, iconRes: Int? = null, iconTint: Color = Color.Unspecified, iconSize: Dp = 32.dp, maxLinesSubtitle: Int = Int.MAX_VALUE, enabled: Boolean = true, loading: Boolean = false, onClick: () -&gt; Unit, )</ID>
1918
<ID>CyclomaticComplexMethod:Slider.kt$@Composable fun StepSlider( value: Int, steps: List&lt;Int&gt;, onValueChange: (Int) -&gt; Unit, modifier: Modifier = Modifier, )</ID>
2019
<ID>DestructuringDeclarationWithTooManyEntries:ActivityRow.kt$val (_, _, _, _, _, displayUnit, primaryDisplay) = LocalCurrencies.current</ID>
@@ -33,11 +32,10 @@
3332
<ID>EnumNaming:BlocktankNotificationType.kt$BlocktankNotificationType$orderPaymentConfirmed</ID>
3433
<ID>EnumNaming:BlocktankNotificationType.kt$BlocktankNotificationType$wakeToTimeout</ID>
3534
<ID>ForbiddenComment:ActivityDetailScreen.kt$/* TODO: Implement assign functionality */</ID>
36-
<ID>ForbiddenComment:ActivityRow.kt$// TODO: calculate confirmsIn text</ID>
3735
<ID>ForbiddenComment:BoostTransactionViewModel.kt$BoostTransactionUiState$// TODO: Implement dynamic time estimation</ID>
38-
<ID>ForbiddenComment:ContentView.kt$// TODO: display as sheet</ID>
39-
<ID>ForbiddenComment:Env.kt$Env$// TODO: remove this to load from BT API instead</ID>
4036
<ID>ForbiddenComment:ExternalNodeViewModel.kt$ExternalNodeViewModel$// TODO: pass customFeeRate to ldk-node when supported</ID>
37+
<ID>ForbiddenComment:HomeEntries.kt$// TODO: Get full Activity object</ID>
38+
<ID>ForbiddenComment:HomeEntries.kt$// TODO: Get full Activity object from activityListViewModel</ID>
4139
<ID>ForbiddenComment:LightningConnectionsViewModel.kt$LightningConnectionsViewModel$// TODO: sort channels to get consistent index; node.listChannels returns a list in random order</ID>
4240
<ID>ForbiddenComment:LightningService.kt$LightningService$// TODO: cleanup sensitive data after implementing a `SecureString` value holder for Keychain return values</ID>
4341
<ID>ForbiddenComment:Notifications.kt$// TODO: review if needed:</ID>
@@ -49,8 +47,6 @@
4947
<ID>LargeClass:AppViewModel.kt$AppViewModel : ViewModel</ID>
5048
<ID>LargeClass:LightningRepo.kt$LightningRepo</ID>
5149
<ID>LongMethod:AppViewModel.kt$AppViewModel$private suspend fun proceedWithPayment()</ID>
52-
<ID>LongMethod:ContentView.kt$@Suppress("LongParameterList") private fun NavGraphBuilder.home( walletViewModel: WalletViewModel, appViewModel: AppViewModel, activityListViewModel: ActivityListViewModel, settingsViewModel: SettingsViewModel, navController: NavHostController, drawerState: DrawerState, )</ID>
53-
<ID>LongMethod:ContentView.kt$private fun NavGraphBuilder.widgets( navController: NavHostController, settingsViewModel: SettingsViewModel, currencyViewModel: CurrencyViewModel, )</ID>
5450
<ID>LongMethod:CoreService.kt$ActivityService$suspend fun generateRandomTestData(count: Int = 100)</ID>
5551
<ID>LongMethod:MainActivity.kt$MainActivity$override fun onCreate(savedInstanceState: Bundle?)</ID>
5652
<ID>LongParameterList:BiometricPrompt.kt$( activity: Context, title: String, cancelButtonText: String, onAuthSucceed: () -&gt; Unit, onAuthFailed: (() -&gt; Unit), onAuthError: ((errorCode: Int, errString: CharSequence) -&gt; Unit), )</ID>
@@ -60,15 +56,12 @@
6056
<ID>LongParameterList:CoreService.kt$OnchainService$( mnemonicPhrase: String, derivationPathStr: String?, network: Network?, bip39Passphrase: String?, isChange: Boolean?, startIndex: UInt?, count: UInt?, )</ID>
6157
<ID>LongParameterList:WidgetsRepo.kt$WidgetsRepo$( @BgDispatcher private val bgDispatcher: CoroutineDispatcher, private val newsService: NewsService, private val factsService: FactsService, private val blocksService: BlocksService, private val weatherService: WeatherService, private val priceService: PriceService, private val widgetsStore: WidgetsStore, private val settingsStore: SettingsStore, )</ID>
6258
<ID>LoopWithTooManyJumpStatements:MonetaryVisualTransformation.kt$MonetaryVisualTransformation.&lt;no name provided&gt;$for</ID>
63-
<ID>MagicNumber:ActivityDetailScreen.kt$40</ID>
64-
<ID>MagicNumber:ActivityExploreScreen.kt$40</ID>
6559
<ID>MagicNumber:ActivityListViewModel.kt$ActivityListViewModel$300</ID>
6660
<ID>MagicNumber:AddressViewerScreen.kt$1500000L</ID>
6761
<ID>MagicNumber:AddressViewerScreen.kt$250000L</ID>
6862
<ID>MagicNumber:AddressViewerViewModel.kt$AddressViewerViewModel$300</ID>
6963
<ID>MagicNumber:AppStatus.kt$0.4f</ID>
7064
<ID>MagicNumber:ArticleModel.kt$24</ID>
71-
<ID>MagicNumber:ArticleModel.kt$30</ID>
7265
<ID>MagicNumber:ArticleModel.kt$60</ID>
7366
<ID>MagicNumber:BackupNavSheetViewModel.kt$BackupNavSheetViewModel$200</ID>
7467
<ID>MagicNumber:ChannelDetailScreen.kt$1.5f</ID>
@@ -97,7 +90,6 @@
9790
<ID>MagicNumber:ShowMnemonicScreen.kt$12</ID>
9891
<ID>MagicNumber:ShowMnemonicScreen.kt$24</ID>
9992
<ID>MagicNumber:ShowMnemonicScreen.kt$300</ID>
100-
<ID>MagicNumber:Slider.kt$20</ID>
10193
<ID>MagicNumber:SpendingConfirmScreen.kt$300</ID>
10294
<ID>MagicNumber:SwipeToConfirm.kt$1500</ID>
10395
<ID>MatchingDeclarationName:AddressType.kt$AddressTypeInfo</ID>
@@ -144,14 +136,11 @@
144136
<ID>MaximumLineLength:SettingsScreen.kt$ </ID>
145137
<ID>MaximumLineLength:WeatherService.kt$WeatherService$ </ID>
146138
<ID>MayBeConst:Env.kt$Env$val walletSyncIntervalSecs = 10_uL // TODO review</ID>
147-
<ID>MayBeConst:Env.kt$Env.TransactionDefaults$/** * Minimum value in sats for an output. Outputs below the dust limit may not be processed because the fees * required to include them in a block would be greater than the value of the transaction itself. * */ val dustLimit = 546u</ID>
148-
<ID>MayBeConst:Env.kt$Env.TransactionDefaults$/** Total recommended tx base fee in sats */ val recommendedBaseFee = 256u</ID>
149139
<ID>MemberNameEqualsClassName:Keychain.kt$Keychain$private val keychain = context.keychainDataStore</ID>
150140
<ID>NestedBlockDepth:Context.kt$fun Context.copyAssetToStorage(asset: String, dest: String)</ID>
151141
<ID>NestedBlockDepth:LogsRepo.kt$LogsRepo$private fun createZipBase64(logFiles: List&lt;LogFile&gt;): String</ID>
152142
<ID>NestedBlockDepth:MonetaryVisualTransformation.kt$MonetaryVisualTransformation$private fun createOffsetMapping(original: String, transformed: String): OffsetMapping</ID>
153143
<ID>NestedBlockDepth:ShopWebViewInterface.kt$ShopWebViewInterface$@JavascriptInterface fun postMessage(message: String)</ID>
154-
<ID>NoUnusedImports:ActivityDetailScreen.kt$to.bitkit.ui.screens.wallets.activity.ActivityDetailScreen.kt</ID>
155144
<ID>NoWildcardImports:LightningChannel.kt$import androidx.compose.foundation.layout.*</ID>
156145
<ID>PrintStackTrace:ShareSheet.kt$e</ID>
157146
<ID>ReturnCount:AppViewModel.kt$AppViewModel$private suspend fun handleSanityChecks(amountSats: ULong)</ID>
@@ -200,7 +189,6 @@
200189
<ID>TooManyFunctions:BackupNavSheetViewModel.kt$BackupNavSheetViewModel : ViewModel</ID>
201190
<ID>TooManyFunctions:BlocktankRepo.kt$BlocktankRepo</ID>
202191
<ID>TooManyFunctions:CacheStore.kt$CacheStore</ID>
203-
<ID>TooManyFunctions:ContentView.kt$to.bitkit.ui.ContentView.kt</ID>
204192
<ID>TooManyFunctions:CoreService.kt$ActivityService</ID>
205193
<ID>TooManyFunctions:CoreService.kt$BlocktankService</ID>
206194
<ID>TooManyFunctions:DevSettingsViewModel.kt$DevSettingsViewModel : ViewModel</ID>

0 commit comments

Comments
 (0)