diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 3fa583a761..bab4be3edd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -65,9 +65,15 @@ object BackupRepository { private const val VERSION = 1L private val resetInitializedStateErrorAction: StatusCodeErrorAction = { error -> - if (error.code == 401) { - Log.i(TAG, "Resetting initialized state due to 401.") - SignalStore.backup().backupsInitialized = false + when (error.code) { + 401 -> { + Log.i(TAG, "Resetting initialized state due to 401.") + SignalStore.backup().backupsInitialized = false + } + 403 -> { + Log.i(TAG, "Bad auth credential. Clearing stored credentials.") + SignalStore.backup().clearAllCredentials() + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt index f0b275f4ca..c934ec7b4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/BackupValues.kt @@ -152,6 +152,10 @@ internal class BackupValues(store: KeyValueStore) : SignalStoreValues(store) { putString(KEY_CREDENTIALS, JsonUtil.toJson(SerializedCredentials(updated))) } + fun clearAllCredentials() { + putString(KEY_CREDENTIALS, null) + } + class SerializedCredentials( @JsonProperty val credentialsByDay: Map