Merge pull request #2215 from vector-im/feature/ons/fix_email_confirmation_flow
If there is a pending email validation continue on this step
This commit is contained in:
commit
40aa012588
|
@ -11,6 +11,7 @@ Improvements 🙌:
|
||||||
- Small optimisation of scrolling experience in timeline (#2114)
|
- Small optimisation of scrolling experience in timeline (#2114)
|
||||||
- Allow user to reset cross signing if he has no way to recover (#2052)
|
- Allow user to reset cross signing if he has no way to recover (#2052)
|
||||||
- Create home shortcut for any room (#1525)
|
- Create home shortcut for any room (#1525)
|
||||||
|
- Can't confirm email due to killing by Android (#2021)
|
||||||
- Add a menu item to open the setting in room list and in room (#2171)
|
- Add a menu item to open the setting in room list and in room (#2171)
|
||||||
- Add a menu item in the timeline as a shortcut to invite user (#2171)
|
- Add a menu item in the timeline as a shortcut to invite user (#2171)
|
||||||
- Drawer: move settings access and add sign out action (#2171)
|
- Drawer: move settings access and add sign out action (#2171)
|
||||||
|
@ -22,6 +23,7 @@ Improvements 🙌:
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
- Improve support for image/audio/video/file selection with intent changes (#1376)
|
- Improve support for image/audio/video/file selection with intent changes (#1376)
|
||||||
- Fix Splash layout on small screens
|
- Fix Splash layout on small screens
|
||||||
|
- Invalid popup when pressing back (#1635)
|
||||||
- Simplifies draft management and should fix bunch of draft issues (#952, #683)
|
- Simplifies draft management and should fix bunch of draft issues (#952, #683)
|
||||||
- Very long topic cannot be fully visible (#1957)
|
- Very long topic cannot be fully visible (#1957)
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ sealed class LoginAction : VectorViewModelAction {
|
||||||
data class UpdateSignMode(val signMode: SignMode) : LoginAction()
|
data class UpdateSignMode(val signMode: SignMode) : LoginAction()
|
||||||
data class LoginWithToken(val loginToken: String) : LoginAction()
|
data class LoginWithToken(val loginToken: String) : LoginAction()
|
||||||
data class WebLoginSuccess(val credentials: Credentials) : LoginAction()
|
data class WebLoginSuccess(val credentials: Credentials) : LoginAction()
|
||||||
data class InitWith(val loginConfig: LoginConfig) : LoginAction()
|
data class InitWith(val loginConfig: LoginConfig?) : LoginAction()
|
||||||
data class ResetPassword(val email: String, val newPassword: String) : LoginAction()
|
data class ResetPassword(val email: String, val newPassword: String) : LoginAction()
|
||||||
object ResetPasswordMailConfirmed : LoginAction()
|
object ResetPasswordMailConfirmed : LoginAction()
|
||||||
|
|
||||||
|
|
|
@ -91,19 +91,19 @@ open class LoginActivity : VectorBaseActivity(), ToolbarConfigurable, UnlockedAc
|
||||||
addFirstFragment()
|
addFirstFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get config extra
|
|
||||||
val loginConfig = intent.getParcelableExtra<LoginConfig?>(EXTRA_CONFIG)
|
|
||||||
if (loginConfig != null && isFirstCreation()) {
|
|
||||||
// TODO Check this
|
|
||||||
loginViewModel.handle(LoginAction.InitWith(loginConfig))
|
|
||||||
}
|
|
||||||
|
|
||||||
loginViewModel
|
loginViewModel
|
||||||
.subscribe(this) {
|
.subscribe(this) {
|
||||||
updateWithState(it)
|
updateWithState(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
loginViewModel.observeViewEvents { handleLoginViewEvents(it) }
|
loginViewModel.observeViewEvents { handleLoginViewEvents(it) }
|
||||||
|
|
||||||
|
// Get config extra
|
||||||
|
val loginConfig = intent.getParcelableExtra<LoginConfig?>(EXTRA_CONFIG)
|
||||||
|
if (isFirstCreation()) {
|
||||||
|
// TODO Check this
|
||||||
|
loginViewModel.handle(LoginAction.InitWith(loginConfig))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun addFirstFragment() {
|
protected open fun addFirstFragment() {
|
||||||
|
|
|
@ -417,6 +417,18 @@ class LoginViewModel @AssistedInject constructor(
|
||||||
|
|
||||||
private fun handleInitWith(action: LoginAction.InitWith) {
|
private fun handleInitWith(action: LoginAction.InitWith) {
|
||||||
loginConfig = action.loginConfig
|
loginConfig = action.loginConfig
|
||||||
|
|
||||||
|
// If there is a pending email validation continue on this step
|
||||||
|
try {
|
||||||
|
if (registrationWizard?.isRegistrationStarted == true) {
|
||||||
|
currentThreePid?.let {
|
||||||
|
handle(LoginAction.PostViewEvent(LoginViewEvents.OnSendEmailSuccess(it)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
// NOOP. API is designed to use wizards in a login/registration flow,
|
||||||
|
// but we need to check the state anyway.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleResetPassword(action: LoginAction.ResetPassword) {
|
private fun handleResetPassword(action: LoginAction.ResetPassword) {
|
||||||
|
@ -672,6 +684,7 @@ class LoginViewModel @AssistedInject constructor(
|
||||||
|
|
||||||
private fun onSessionCreated(session: Session) {
|
private fun onSessionCreated(session: Session) {
|
||||||
activeSessionHolder.setActiveSession(session)
|
activeSessionHolder.setActiveSession(session)
|
||||||
|
authenticationService.reset()
|
||||||
session.configureAndStart(applicationContext)
|
session.configureAndStart(applicationContext)
|
||||||
setState {
|
setState {
|
||||||
copy(
|
copy(
|
||||||
|
@ -740,7 +753,7 @@ class LoginViewModel @AssistedInject constructor(
|
||||||
|
|
||||||
override fun onSuccess(data: LoginFlowResult) {
|
override fun onSuccess(data: LoginFlowResult) {
|
||||||
when (data) {
|
when (data) {
|
||||||
is LoginFlowResult.Success -> {
|
is LoginFlowResult.Success -> {
|
||||||
val loginMode = when {
|
val loginMode = when {
|
||||||
// SSO login is taken first
|
// SSO login is taken first
|
||||||
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso
|
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso
|
||||||
|
|
Loading…
Reference in New Issue