From f12e6c941d9d8f5b3d30d080400b6ad1fe514154 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 20 Nov 2019 10:38:27 +0100 Subject: [PATCH] Login screens: sigin button for SSO --- .../LoginSignUpSignInSelectionFragment.kt | 36 +++++++++++-------- ...fragment_login_signup_signin_selection.xml | 12 ++++--- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/vector/src/main/java/im/vector/riotx/features/login/LoginSignUpSignInSelectionFragment.kt b/vector/src/main/java/im/vector/riotx/features/login/LoginSignUpSignInSelectionFragment.kt index 4425632fd1..bcbef9e807 100644 --- a/vector/src/main/java/im/vector/riotx/features/login/LoginSignUpSignInSelectionFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/login/LoginSignUpSignInSelectionFragment.kt @@ -20,7 +20,6 @@ import android.os.Bundle import android.view.View import androidx.core.view.isVisible import butterknife.OnClick -import com.airbnb.mvrx.Fail import com.airbnb.mvrx.withState import im.vector.riotx.R import kotlinx.android.synthetic.main.fragment_login_signup_signin_selection.* @@ -33,10 +32,15 @@ class LoginSignUpSignInSelectionFragment @Inject constructor() : AbstractLoginFr override fun getLayoutResId() = R.layout.fragment_login_signup_signin_selection + private var isSsoSignIn: Boolean = false + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + isSsoSignIn = withState(loginViewModel) { it.asyncHomeServerLoginFlowRequest.invoke() } == LoginMode.Sso + setupUi() + setupButtons() } private fun setupUi() { @@ -62,9 +66,24 @@ class LoginSignUpSignInSelectionFragment @Inject constructor() : AbstractLoginFr } } - @OnClick(R.id.loginSignupSigninSignUp) + private fun setupButtons() { + if (isSsoSignIn) { + loginSignupSigninSubmit.text = getString(R.string.login_signin_sso) + loginSignupSigninSignIn.isVisible = false + } else { + loginSignupSigninSubmit.text = getString(R.string.login_signup) + loginSignupSigninSignIn.isVisible = true + } + } + + + @OnClick(R.id.loginSignupSigninSubmit) fun signUp() { - loginViewModel.handle(LoginAction.UpdateSignMode(SignMode.SignUp)) + if (isSsoSignIn) { + signIn() + } else { + loginViewModel.handle(LoginAction.UpdateSignMode(SignMode.SignUp)) + } } @OnClick(R.id.loginSignupSigninSignIn) @@ -76,15 +95,4 @@ class LoginSignUpSignInSelectionFragment @Inject constructor() : AbstractLoginFr override fun resetViewModel() { loginViewModel.handle(LoginAction.ResetSignMode) } - - override fun invalidate() = withState(loginViewModel) { - when (it.asyncRegistration) { - is Fail -> { - // TODO Registration disabled, (move to Activity?) - when (it.asyncRegistration.error) { - - } - } - } - } } diff --git a/vector/src/main/res/layout/fragment_login_signup_signin_selection.xml b/vector/src/main/res/layout/fragment_login_signup_signin_selection.xml index e58a986b14..de9a7e403c 100644 --- a/vector/src/main/res/layout/fragment_login_signup_signin_selection.xml +++ b/vector/src/main/res/layout/fragment_login_signup_signin_selection.xml @@ -56,17 +56,19 @@ app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninTitle" tools:text="@string/login_server_matrix_org_text" /> + + app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninText" + tools:text="@string/login_signup" /> + + app:layout_constraintTop_toBottomOf="@+id/loginSignupSigninSubmit" + tools:visibility="visible" />