diff --git a/app/src/main/java/to/bitkit/data/SettingsStore.kt b/app/src/main/java/to/bitkit/data/SettingsStore.kt index d418bd43b..3271e394d 100644 --- a/app/src/main/java/to/bitkit/data/SettingsStore.kt +++ b/app/src/main/java/to/bitkit/data/SettingsStore.kt @@ -105,3 +105,11 @@ data class SettingsData( val electrumServer: ElectrumServer = Env.defaultElectrumServer, val rgsServerUrl: String? = Env.ldkRgsServerUrl, ) + +fun SettingsData.resetPin() = this.copy( + isPinEnabled = false, + isPinOnLaunchEnabled = true, + isPinOnIdleEnabled = false, + isPinForPaymentsEnabled = false, + isBiometricEnabled = false, +) diff --git a/app/src/main/java/to/bitkit/repositories/BackupsRepo.kt b/app/src/main/java/to/bitkit/repositories/BackupsRepo.kt index cc9068dc0..0e95d2327 100644 --- a/app/src/main/java/to/bitkit/repositories/BackupsRepo.kt +++ b/app/src/main/java/to/bitkit/repositories/BackupsRepo.kt @@ -21,6 +21,7 @@ import to.bitkit.data.WidgetsData import to.bitkit.data.WidgetsStore import to.bitkit.data.backup.VssBackupsClient import to.bitkit.data.backup.VssObjectInfo +import to.bitkit.data.resetPin import to.bitkit.di.BgDispatcher import to.bitkit.di.json import to.bitkit.ext.formatPlural @@ -243,7 +244,7 @@ class BackupsRepo @Inject constructor( private suspend fun getBackupDataBytes(category: BackupCategory): ByteArray = when (category) { BackupCategory.SETTINGS -> { - val data = settingsStore.data.first() + val data = settingsStore.data.first().resetPin() json.encodeToString(data).toByteArray() } @@ -295,7 +296,7 @@ class BackupsRepo @Inject constructor( return@withContext try { performRestore(BackupCategory.SETTINGS) { dataBytes -> - val parsed = json.decodeFromString(String(dataBytes)) + val parsed = json.decodeFromString(String(dataBytes)).resetPin() settingsStore.update { parsed } } performRestore(BackupCategory.WIDGETS) { dataBytes -> diff --git a/app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt b/app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt index a5129560c..558b1d1a5 100644 --- a/app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt +++ b/app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt @@ -35,6 +35,7 @@ import org.lightningdevkit.ldknode.Txid import to.bitkit.R import to.bitkit.data.SettingsStore import to.bitkit.data.keychain.Keychain +import to.bitkit.data.resetPin import to.bitkit.di.BgDispatcher import to.bitkit.env.Env import to.bitkit.ext.WatchResult @@ -1132,13 +1133,7 @@ class AppViewModel @Inject constructor( fun removePin() { viewModelScope.launch(bgDispatcher) { settingsStore.update { - it.copy( - isPinEnabled = false, - isPinOnLaunchEnabled = true, - isPinOnIdleEnabled = false, - isPinForPaymentsEnabled = false, - isBiometricEnabled = false, - ) + it.resetPin() } keychain.delete(Keychain.Key.PIN.name) keychain.upsertString(Keychain.Key.PIN_ATTEMPTS_REMAINING.name, Env.PIN_ATTEMPTS.toString())