mirror of
https://github.com/bitwarden/android.git
synced 2026-05-11 02:15:43 -05:00
[Pm-6702] Fix AppLink flow to complete registration
This commit is contained in:
@@ -75,15 +75,6 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val appLinkData: Uri? = intent.data
|
||||
if (appLinkData != null && appLinkData.isHierarchical) {
|
||||
mainViewModel.trySendAction(
|
||||
action = MainAction.ReceiveNewIntent(
|
||||
intent = intent,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.PasswordStrengthResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.model.RegisterResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.CaptchaCallbackTokenResult
|
||||
import com.x8bit.bitwarden.data.auth.repository.util.generateUriForCaptcha
|
||||
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.model.SpecialCircumstance
|
||||
import com.x8bit.bitwarden.data.platform.manager.util.toFido2RequestOrNull
|
||||
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.CompleteRegistrationAction.CheckDataBreachesToggle
|
||||
@@ -45,7 +46,8 @@ private const val MIN_PASSWORD_LENGTH = 12
|
||||
@HiltViewModel
|
||||
class CompleteRegistrationViewModel @Inject constructor(
|
||||
savedStateHandle: SavedStateHandle,
|
||||
private val authRepository: AuthRepository
|
||||
private val authRepository: AuthRepository,
|
||||
private val specialCircumstance: SpecialCircumstanceManager
|
||||
) : BaseViewModel<CompleteRegistrationState, CompleteRegistrationEvent, CompleteRegistrationAction>(
|
||||
initialState = savedStateHandle[KEY_STATE]
|
||||
?: CompleteRegistrationState(
|
||||
@@ -83,6 +85,12 @@ class CompleteRegistrationViewModel @Inject constructor(
|
||||
.launchIn(viewModelScope)
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
// clean the specialCircumstance after being handled
|
||||
specialCircumstance.specialCircumstance = null
|
||||
super.onCleared()
|
||||
}
|
||||
|
||||
override fun handleAction(action: CompleteRegistrationAction) {
|
||||
when (action) {
|
||||
is CompleteRegistrationAction.CreateAccountClick -> handleCreateAccountClick()
|
||||
|
||||
@@ -72,6 +72,11 @@ class RootNavViewModel @Inject constructor(
|
||||
userState?.activeAccount?.needsPasswordReset == true -> RootNavState.ResetPassword
|
||||
|
||||
specialCircumstance is SpecialCircumstance.CompleteRegistration -> {
|
||||
// When the user is on the lock screen or already in the vault
|
||||
if (userState?.activeAccount != null && !authRepository.hasPendingAccountAddition) {
|
||||
authRepository.hasPendingAccountAddition = true
|
||||
return
|
||||
}
|
||||
RootNavState.CompleteOngoingRegistration(
|
||||
email = specialCircumstance.completeRegistrationData.email,
|
||||
verificationToken = specialCircumstance.completeRegistrationData.verificationToken,
|
||||
@@ -79,7 +84,6 @@ class RootNavViewModel @Inject constructor(
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
userState == null ||
|
||||
!userState.activeAccount.isLoggedIn ||
|
||||
userState.hasPendingAccountAddition -> RootNavState.Auth
|
||||
|
||||
Reference in New Issue
Block a user