Ensure change number operation status before returning to normal app usage.

This commit is contained in:
Cody Henthorne
2021-09-08 16:52:25 -04:00
committed by Greyson Parrelli
parent d8c82add78
commit 7e7bbad788
16 changed files with 339 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.registration
import org.thoughtcrime.securesms.pin.TokenData
import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException
import org.whispersystems.signalservice.internal.ServiceResponse
import org.whispersystems.signalservice.internal.ServiceResponseProcessor
import org.whispersystems.signalservice.internal.push.LockedException
@@ -9,7 +10,9 @@ import org.whispersystems.signalservice.internal.push.VerifyAccountResponse
/**
* Process responses from attempting to verify an account for use in account registration.
*/
sealed class VerifyAccountResponseProcessor(response: ServiceResponse<VerifyAccountResponse>) : ServiceResponseProcessor<VerifyAccountResponse>(response) {
sealed class VerifyAccountResponseProcessor(
response: ServiceResponse<VerifyAccountResponse>
) : ServiceResponseProcessor<VerifyAccountResponse>(response), VerifyProcessor {
open val tokenData: TokenData? = null
@@ -33,6 +36,10 @@ sealed class VerifyAccountResponseProcessor(response: ServiceResponse<VerifyAcco
return error as LockedException
}
override fun isServerSentError(): Boolean {
return error is NonSuccessfulResponseCodeException
}
abstract fun isKbsLocked(): Boolean
}

View File

@@ -4,6 +4,7 @@ import org.thoughtcrime.securesms.pin.KeyBackupSystemWrongPinException
import org.thoughtcrime.securesms.pin.TokenData
import org.thoughtcrime.securesms.registration.VerifyAccountRepository.VerifyAccountWithRegistrationLockResponse
import org.whispersystems.signalservice.api.KeyBackupSystemNoDataException
import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException
import org.whispersystems.signalservice.internal.ServiceResponse
import org.whispersystems.signalservice.internal.ServiceResponseProcessor
import org.whispersystems.signalservice.internal.contacts.entities.TokenResponse
@@ -16,7 +17,7 @@ import org.whispersystems.signalservice.internal.push.VerifyAccountResponse
class VerifyCodeWithRegistrationLockResponseProcessor(
response: ServiceResponse<VerifyAccountWithRegistrationLockResponse>,
val token: TokenData
) : ServiceResponseProcessor<VerifyAccountWithRegistrationLockResponse>(response) {
) : ServiceResponseProcessor<VerifyAccountWithRegistrationLockResponse>(response), VerifyProcessor {
public override fun rateLimit(): Boolean {
return super.rateLimit()
@@ -45,4 +46,10 @@ class VerifyCodeWithRegistrationLockResponseProcessor(
return VerifyCodeWithRegistrationLockResponseProcessor(ServiceResponse.coerceError(response), token)
}
override fun isServerSentError(): Boolean {
return error is NonSuccessfulResponseCodeException ||
error is KeyBackupSystemWrongPinException ||
error is KeyBackupSystemNoDataException
}
}

View File

@@ -0,0 +1,6 @@
package org.thoughtcrime.securesms.registration
interface VerifyProcessor {
fun hasResult(): Boolean
fun isServerSentError(): Boolean
}