Skip to content

Commit bbbe3d1

Browse files
committed
feat: Pin or Bio auth check before navigating to reset
1 parent 1f27b5a commit bbbe3d1

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import androidx.navigation.compose.NavHost
2525
import androidx.navigation.compose.composable
2626
import androidx.navigation.compose.navigation
2727
import androidx.navigation.compose.rememberNavController
28-
import androidx.navigation.navOptions
2928
import androidx.navigation.toRoute
3029
import kotlinx.coroutines.CoroutineScope
3130
import kotlinx.coroutines.delay
@@ -1156,10 +1155,6 @@ fun NavController.navigateToBackupSettings() = navigate(
11561155
route = Routes.BackupSettings,
11571156
)
11581157

1159-
fun NavController.navigateToResetAndRestoreSettings() = navigate(
1160-
route = Routes.ResetAndRestoreSettings,
1161-
)
1162-
11631158
fun NavController.navigateToChannelOrdersSettings() = navigate(
11641159
route = Routes.ChannelOrdersSettings,
11651160
)

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

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Composable
44
import androidx.compose.runtime.getValue
55
import androidx.lifecycle.compose.collectAsStateWithLifecycle
66
import androidx.navigation.NavController
7+
import androidx.navigation.navOptions
78
import to.bitkit.ui.Routes
89
import to.bitkit.ui.appViewModel
910
import to.bitkit.ui.settingsViewModel
@@ -31,26 +32,36 @@ fun AuthCheckScreen(
3132
when (route.onSuccessActionId) {
3233
AuthCheckAction.TOGGLE_BIOMETRICS -> {
3334
settings.setIsBiometricEnabled(!isBiometricEnabled)
35+
navController.popBackStack()
3436
}
3537

3638
AuthCheckAction.TOGGLE_PIN_ON_LAUNCH -> {
3739
settings.setIsPinOnLaunchEnabled(!isPinOnLaunchEnabled)
40+
navController.popBackStack()
3841
}
3942

4043
AuthCheckAction.TOGGLE_PIN_ON_IDLE -> {
4144
settings.setIsPinOnIdleEnabled(!isPinOnIdleEnabled)
45+
navController.popBackStack()
4246
}
4347

4448
AuthCheckAction.TOGGLE_PIN_FOR_PAYMENTS -> {
4549
settings.setIsPinForPaymentsEnabled(!isPinForPaymentsEnabled)
50+
navController.popBackStack()
4651
}
4752

4853
AuthCheckAction.DISABLE_PIN -> {
4954
app.removePin()
55+
navController.popBackStack()
5056
}
51-
}
5257

53-
navController.popBackStack()
58+
AuthCheckAction.NAV_TO_RESET -> {
59+
navController.navigate(
60+
route = Routes.ResetAndRestoreSettings,
61+
navOptions = navOptions { popUpTo(Routes.BackupSettings) }
62+
)
63+
}
64+
}
5465
},
5566
onBack = { navController.popBackStack() },
5667
)
@@ -62,4 +73,5 @@ object AuthCheckAction {
6273
const val TOGGLE_PIN_ON_IDLE = "TOGGLE_PIN_ON_IDLE"
6374
const val TOGGLE_PIN_FOR_PAYMENTS = "TOGGLE_PIN_FOR_PAYMENTS"
6475
const val DISABLE_PIN = "DISABLE_PIN"
76+
const val NAV_TO_RESET = "NAV_TO_RESET"
6577
}

app/src/main/java/to/bitkit/ui/settings/BackupSettingsScreen.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,23 @@ import androidx.compose.foundation.layout.padding
55
import androidx.compose.foundation.rememberScrollState
66
import androidx.compose.foundation.verticalScroll
77
import androidx.compose.runtime.Composable
8+
import androidx.compose.runtime.getValue
89
import androidx.compose.ui.Modifier
910
import androidx.compose.ui.platform.testTag
1011
import androidx.compose.ui.res.stringResource
1112
import androidx.compose.ui.tooling.preview.Preview
1213
import androidx.compose.ui.unit.dp
14+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
1315
import androidx.navigation.NavController
1416
import to.bitkit.R
17+
import to.bitkit.ui.Routes
1518
import to.bitkit.ui.appViewModel
19+
import to.bitkit.ui.components.AuthCheckAction
1620
import to.bitkit.ui.components.BottomSheetType
1721
import to.bitkit.ui.components.settings.SettingsButtonRow
22+
import to.bitkit.ui.navigateToAuthCheck
1823
import to.bitkit.ui.navigateToHome
19-
import to.bitkit.ui.navigateToResetAndRestoreSettings
24+
import to.bitkit.ui.settingsViewModel
2025
import to.bitkit.ui.scaffold.AppTopBar
2126
import to.bitkit.ui.scaffold.CloseNavIcon
2227
import to.bitkit.ui.scaffold.ScreenColumn
@@ -33,12 +38,18 @@ fun BackupSettingsScreen(
3338
navController: NavController,
3439
) {
3540
val app = appViewModel ?: return
41+
val settings = settingsViewModel ?: return
42+
43+
val isPinEnabled by settings.isPinEnabled.collectAsStateWithLifecycle()
3644

3745
BackupSettingsScreenContent(
3846
onBackupClick = { app.showSheet(BottomSheetType.BackupNavigation) },
3947
onResetAndRestoreClick = {
40-
// TODO: if isPinEnabled guard with authCheck
41-
navController.navigateToResetAndRestoreSettings()
48+
if (isPinEnabled) {
49+
navController.navigateToAuthCheck(onSuccessActionId = AuthCheckAction.NAV_TO_RESET)
50+
} else {
51+
navController.navigate(Routes.ResetAndRestoreSettings)
52+
}
4253
},
4354
onBack = { navController.popBackStack() },
4455
onClose = { navController.navigateToHome() },

0 commit comments

Comments
 (0)