Add missing handling for sessions that are already verified.

This commit is contained in:
Nicholas Tinsley
2024-07-26 18:45:14 +02:00
parent b8e81e6677
commit 36846301de
3 changed files with 21 additions and 3 deletions

View File

@@ -384,6 +384,7 @@ object RegistrationRepository {
*/
suspend fun registerAccount(context: Context, sessionId: String?, registrationData: RegistrationData, pin: String? = null, masterKeyProducer: VerifyAccountRepository.MasterKeyProducer? = null): RegisterAccountResult =
withContext(Dispatchers.IO) {
Log.v(TAG, "registerAccount()")
val api: RegistrationApi = AccountManagerFactory.getInstance().createUnauthenticated(context, registrationData.e164, SignalServiceAddress.DEFAULT_DEVICE_ID, registrationData.password).registrationApi
val universalUnidentifiedAccess: Boolean = TextSecurePreferences.isUniversalUnidentifiedAccess(context)

View File

@@ -357,6 +357,12 @@ class RegistrationViewModel : ViewModel() {
)
Log.d(TAG, "SMS code request network call completed.")
if (codeRequestResponse is AlreadyVerified) {
Log.d(TAG, "Got session was already verified when requesting SMS code.")
registerVerifiedSession(context, sessionId)
return
}
handleSessionStateResult(context, codeRequestResponse)
if (codeRequestResponse is Success) {
@@ -792,6 +798,7 @@ class RegistrationViewModel : ViewModel() {
}
private suspend fun registerVerifiedSession(context: Context, sessionId: String) {
Log.v(TAG, "registerVerifiedSession()")
val registrationData = getRegistrationData()
val registrationResponse: RegisterAccountResult = RegistrationRepository.registerAccount(context, sessionId, registrationData)
handleRegistrationResult(context, registrationData, registrationResponse, false)