Fix issue after rebase

This commit is contained in:
Benoit Marty 2021-04-14 20:37:07 +02:00
parent d812ed72d0
commit f0433fd27d

View file

@ -618,48 +618,46 @@ class LoginViewModel2 @AssistedInject constructor(
} catch (failure: Throwable) { } catch (failure: Throwable) {
_viewEvents.post(LoginViewEvents2.Failure(failure)) _viewEvents.post(LoginViewEvents2.Failure(failure))
null null
} ?: return
val loginMode = when {
data.supportedLoginTypes.contains(LoginFlowTypes.SSO)
&& data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.Password
else -> LoginMode.Unsupported
} }
if (data is LoginFlowResult.Success) { val viewEvent = when (loginMode) {
val loginMode = when { LoginMode.Password,
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) is LoginMode.SsoAndPassword -> {
&& data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(data.ssoIdentityProviders) retrieveProfileInfo(action.username)
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(data.ssoIdentityProviders) // We can navigate to the password screen
data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.Password LoginViewEvents2.OpenPasswordScreen
else -> LoginMode.Unsupported
} }
is LoginMode.Sso -> {
LoginViewEvents2.OpenSsoOnlyScreen
}
LoginMode.Unsupported -> LoginViewEvents2.OnLoginModeNotSupported(data.supportedLoginTypes.toList())
LoginMode.Unknown -> null
}
viewEvent?.let { _viewEvents.post(it) }
val viewEvent = when (loginMode) { val urlFromUser = action.username.substringAfter(":")
LoginMode.Password, setState {
is LoginMode.SsoAndPassword -> { copy(
retrieveProfileInfo(action.username) isLoading = false,
// We can navigate to the password screen homeServerUrlFromUser = urlFromUser,
LoginViewEvents2.OpenPasswordScreen homeServerUrl = data.homeServerUrl,
} isNumericOnlyUserIdForbidden = urlFromUser == matrixOrgUrl,
is LoginMode.Sso -> { loginMode = loginMode
LoginViewEvents2.OpenSsoOnlyScreen )
} }
LoginMode.Unsupported -> LoginViewEvents2.OnLoginModeNotSupported(data.supportedLoginTypes.toList())
LoginMode.Unknown -> null
}
viewEvent?.let { _viewEvents.post(it) }
val urlFromUser = action.username.substringAfter(":") if ((loginMode == LoginMode.Password && !data.isLoginAndRegistrationSupported)
setState { || data.isOutdatedHomeserver) {
copy( // Notify the UI
isLoading = false, _viewEvents.post(LoginViewEvents2.OutdatedHomeserver)
homeServerUrlFromUser = urlFromUser,
homeServerUrl = data.homeServerUrl,
isNumericOnlyUserIdForbidden = urlFromUser == matrixOrgUrl,
loginMode = loginMode
)
}
if ((loginMode == LoginMode.Password && !data.isLoginAndRegistrationSupported)
|| data.isOutdatedHomeserver) {
// Notify the UI
_viewEvents.post(LoginViewEvents2.OutdatedHomeserver)
}
} }
} }
@ -744,32 +742,31 @@ class LoginViewModel2 @AssistedInject constructor(
_viewEvents.post(LoginViewEvents2.Failure(failure)) _viewEvents.post(LoginViewEvents2.Failure(failure))
setState { copy(isLoading = false) } setState { copy(isLoading = false) }
null null
} ?: return@launch
// Valid Homeserver, add it to the history.
// Note: we add what the user has input, data.homeServerUrl can be different
rememberHomeServer(homeServerConnectionConfig.homeServerUri.toString())
val loginMode = when {
data.supportedLoginTypes.contains(LoginFlowTypes.SSO)
&& data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.Password
else -> LoginMode.Unsupported
} }
if (data is LoginFlowResult.Success) { val viewEvent = when (loginMode) {
// Valid Homeserver, add it to the history. LoginMode.Password,
// Note: we add what the user has input, data.homeServerUrl can be different is LoginMode.SsoAndPassword -> {
rememberHomeServer(homeServerConnectionConfig.homeServerUri.toString()) when (state.signMode) {
SignMode2.Unknown -> null
SignMode2.SignUp -> {
// Check that registration is possible on this server
try {
registrationWizard?.getRegistrationFlow()
val loginMode = when { /*
data.supportedLoginTypes.contains(LoginFlowTypes.SSO)
&& data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(data.ssoIdentityProviders)
data.supportedLoginTypes.contains(LoginFlowTypes.PASSWORD) -> LoginMode.Password
else -> LoginMode.Unsupported
}
val viewEvent = when (loginMode) {
LoginMode.Password,
is LoginMode.SsoAndPassword -> {
when (state.signMode) {
SignMode2.Unknown -> null
SignMode2.SignUp -> {
// Check that registration is possible on this server
try {
registrationWizard?.getRegistrationFlow()
/*
// Simulate registration disabled // Simulate registration disabled
throw Failure.ServerError( throw Failure.ServerError(
error = MatrixError( error = MatrixError(
@ -780,38 +777,37 @@ class LoginViewModel2 @AssistedInject constructor(
) )
*/ */
LoginViewEvents2.OpenSignUpChooseUsernameScreen LoginViewEvents2.OpenSignUpChooseUsernameScreen
} catch (throwable: Throwable) { } catch (throwable: Throwable) {
// Registration disabled? // Registration disabled?
LoginViewEvents2.Failure(throwable) LoginViewEvents2.Failure(throwable)
}
} }
SignMode2.SignIn -> LoginViewEvents2.OpenSignInWithAnythingScreen
} }
SignMode2.SignIn -> LoginViewEvents2.OpenSignInWithAnythingScreen
} }
is LoginMode.Sso -> {
LoginViewEvents2.OpenSsoOnlyScreen
}
LoginMode.Unsupported -> LoginViewEvents2.OnLoginModeNotSupported(data.supportedLoginTypes.toList())
LoginMode.Unknown -> null
} }
viewEvent?.let { _viewEvents.post(it) } is LoginMode.Sso -> {
LoginViewEvents2.OpenSsoOnlyScreen
}
LoginMode.Unsupported -> LoginViewEvents2.OnLoginModeNotSupported(data.supportedLoginTypes.toList())
LoginMode.Unknown -> null
}
viewEvent?.let { _viewEvents.post(it) }
if ((loginMode == LoginMode.Password && !data.isLoginAndRegistrationSupported) if ((loginMode == LoginMode.Password && !data.isLoginAndRegistrationSupported)
|| data.isOutdatedHomeserver) { || data.isOutdatedHomeserver) {
// Notify the UI // Notify the UI
_viewEvents.post(LoginViewEvents2.OutdatedHomeserver) _viewEvents.post(LoginViewEvents2.OutdatedHomeserver)
} }
setState { setState {
copy( copy(
isLoading = false, isLoading = false,
homeServerUrlFromUser = homeServerConnectionConfig.homeServerUri.toString(), homeServerUrlFromUser = homeServerConnectionConfig.homeServerUri.toString(),
homeServerUrl = data.homeServerUrl, homeServerUrl = data.homeServerUrl,
isNumericOnlyUserIdForbidden = homeServerConnectionConfig.homeServerUri.toString() == matrixOrgUrl, isNumericOnlyUserIdForbidden = homeServerConnectionConfig.homeServerUri.toString() == matrixOrgUrl,
loginMode = loginMode loginMode = loginMode
) )
}
} }
} }
} }