@@ -57,6 +57,7 @@ import to.bitkit.ui.scaffold.AppTopBar
5757import to.bitkit.ui.scaffold.DrawerNavIcon
5858import to.bitkit.ui.scaffold.PinnedTabsScaffold
5959import to.bitkit.ui.scaffold.ScreenColumn
60+ import to.bitkit.ui.screens.wallets.HwWalletViewModel
6061import to.bitkit.ui.screens.wallets.activity.components.CustomTabRowWithSpacing
6162import to.bitkit.ui.screens.wallets.activity.components.TabItem
6263import to.bitkit.ui.settingsViewModel
@@ -79,6 +80,7 @@ fun SettingsScreen(
7980 navController : NavController ,
8081 advancedViewModel : AdvancedSettingsViewModel = hiltViewModel(),
8182 languageViewModel : LanguageViewModel = hiltViewModel(),
83+ hwWalletViewModel : HwWalletViewModel = hiltViewModel(),
8284) {
8385 val app = appViewModel ? : return
8486 val settings = settingsViewModel ? : return
@@ -94,6 +96,7 @@ fun SettingsScreen(
9496 val notificationsGranted by settings.notificationsGranted.collectAsStateWithLifecycle()
9597 val isPubkyAuthenticated by settings.isPubkyAuthenticated.collectAsStateWithLifecycle()
9698 val isPaykitEnabled by settings.isPaykitEnabled.collectAsStateWithLifecycle()
99+ val hardwareWallets by hwWalletViewModel.wallets.collectAsStateWithLifecycle()
97100 val languageUiState by languageViewModel.uiState.collectAsStateWithLifecycle()
98101
99102 // Security tab state
@@ -130,6 +133,7 @@ fun SettingsScreen(
130133 notificationsGranted = notificationsGranted,
131134 isPubkyAuthenticated = isPubkyAuthenticated,
132135 isPaykitEnabled = isPaykitEnabled,
136+ hardwareWalletCount = hardwareWallets.size,
133137 ),
134138 securityState = SecurityTabState (
135139 isPinEnabled = isPinEnabled,
@@ -166,6 +170,7 @@ fun SettingsScreen(
166170 navController.navigateTo(Routes .BackgroundPaymentsIntro )
167171 }
168172 }
173+ SettingsEvent .HardwareWalletsClick -> navController.navigateTo(Routes .HardwareWalletsSettings )
169174 SettingsEvent .BackupWalletClick -> app.showSheet(Sheet .Backup ())
170175 SettingsEvent .DataBackupsClick -> navController.navigateTo(Routes .BackupSettings )
171176 SettingsEvent .ResetWalletClick ->
@@ -365,6 +370,13 @@ private fun GeneralTabContent(
365370 onClick = { onEvent(SettingsEvent .BgPaymentsClick ) },
366371 modifier = Modifier .testTag(" BackgroundPaymentSettings" )
367372 )
373+ SettingsButtonRow (
374+ title = stringResource(R .string.settings__hardware_wallets__nav_title),
375+ icon = { SettingsIcon (R .drawable.ic_device_mobile_speaker) },
376+ value = SettingsButtonValue .StringValue (state.hardwareWalletCount.toString()),
377+ onClick = { onEvent(SettingsEvent .HardwareWalletsClick ) },
378+ modifier = Modifier .testTag(" HardwareWalletsSettings" )
379+ )
368380
369381 VerticalSpacer (32 .dp)
370382 }
@@ -647,6 +659,7 @@ sealed interface SettingsEvent {
647659 data object PaymentPreferenceClick : SettingsEvent
648660 data object QuickPayClick : SettingsEvent
649661 data object BgPaymentsClick : SettingsEvent
662+ data object HardwareWalletsClick : SettingsEvent
650663
651664 // Security
652665 data object BackupWalletClick : SettingsEvent
@@ -689,6 +702,7 @@ data class GeneralTabState(
689702 val notificationsGranted : Boolean = false ,
690703 val isPubkyAuthenticated : Boolean = false ,
691704 val isPaykitEnabled : Boolean = false ,
705+ val hardwareWalletCount : Int = 0 ,
692706)
693707
694708@Immutable
0 commit comments