Create Uri extension and cleanup login code
This commit is contained in:
parent
bb85d41f05
commit
a193b2659d
|
@ -37,7 +37,7 @@ class ActiveSessionHolder @Inject constructor(private val authenticationService:
|
||||||
|
|
||||||
fun setActiveSession(session: Session) {
|
fun setActiveSession(session: Session) {
|
||||||
activeSession.set(session)
|
activeSession.set(session)
|
||||||
sessionObservableStore.post(Option.fromNullable(session))
|
sessionObservableStore.post(Option.just(session))
|
||||||
keyRequestHandler.start(session)
|
keyRequestHandler.start(session)
|
||||||
incomingVerificationRequestHandler.start(session)
|
incomingVerificationRequestHandler.start(session)
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,3 +35,13 @@ fun StringBuilder.appendParamToUrl(param: String, value: String): StringBuilder
|
||||||
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ex: "https://matrix.org/" -> "matrix.org"
|
||||||
|
*/
|
||||||
|
fun String?.toReducedUrl(): String {
|
||||||
|
return (this ?: "")
|
||||||
|
.substringAfter("://")
|
||||||
|
.trim { it == '/' }
|
||||||
|
}
|
||||||
|
|
|
@ -96,7 +96,8 @@ class LoginActivity : VectorBaseActivity(), ToolbarConfigurable {
|
||||||
}
|
}
|
||||||
|
|
||||||
loginSharedActionViewModel = viewModelProvider.get(LoginSharedActionViewModel::class.java)
|
loginSharedActionViewModel = viewModelProvider.get(LoginSharedActionViewModel::class.java)
|
||||||
loginSharedActionViewModel.observe()
|
loginSharedActionViewModel
|
||||||
|
.observe()
|
||||||
.subscribe {
|
.subscribe {
|
||||||
handleLoginNavigation(it)
|
handleLoginNavigation(it)
|
||||||
}
|
}
|
||||||
|
@ -106,7 +107,6 @@ class LoginActivity : VectorBaseActivity(), ToolbarConfigurable {
|
||||||
.subscribe(this) {
|
.subscribe(this) {
|
||||||
updateWithState(it)
|
updateWithState(it)
|
||||||
}
|
}
|
||||||
.disposeOnDestroy()
|
|
||||||
|
|
||||||
loginViewModel.viewEvents
|
loginViewModel.viewEvents
|
||||||
.observe()
|
.observe()
|
||||||
|
|
|
@ -32,6 +32,7 @@ import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
import im.vector.riotx.core.error.ErrorFormatter
|
||||||
import im.vector.riotx.core.extensions.hideKeyboard
|
import im.vector.riotx.core.extensions.hideKeyboard
|
||||||
import im.vector.riotx.core.extensions.showPassword
|
import im.vector.riotx.core.extensions.showPassword
|
||||||
|
import im.vector.riotx.core.extensions.toReducedUrl
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.functions.BiFunction
|
import io.reactivex.functions.BiFunction
|
||||||
import io.reactivex.rxkotlin.subscribeBy
|
import io.reactivex.rxkotlin.subscribeBy
|
||||||
|
@ -103,7 +104,7 @@ class LoginFragment @Inject constructor(
|
||||||
ServerType.MatrixOrg -> {
|
ServerType.MatrixOrg -> {
|
||||||
loginServerIcon.isVisible = true
|
loginServerIcon.isVisible = true
|
||||||
loginServerIcon.setImageResource(R.drawable.ic_logo_matrix_org)
|
loginServerIcon.setImageResource(R.drawable.ic_logo_matrix_org)
|
||||||
loginTitle.text = getString(resId, state.homeServerUrlSimple)
|
loginTitle.text = getString(resId, state.homeServerUrl.toReducedUrl())
|
||||||
loginNotice.text = getString(R.string.login_server_matrix_org_text)
|
loginNotice.text = getString(R.string.login_server_matrix_org_text)
|
||||||
}
|
}
|
||||||
ServerType.Modular -> {
|
ServerType.Modular -> {
|
||||||
|
@ -114,7 +115,7 @@ class LoginFragment @Inject constructor(
|
||||||
}
|
}
|
||||||
ServerType.Other -> {
|
ServerType.Other -> {
|
||||||
loginServerIcon.isVisible = false
|
loginServerIcon.isVisible = false
|
||||||
loginTitle.text = getString(resId, state.homeServerUrlSimple)
|
loginTitle.text = getString(resId, state.homeServerUrl.toReducedUrl())
|
||||||
loginNotice.text = getString(R.string.login_server_other_text)
|
loginNotice.text = getString(R.string.login_server_other_text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import im.vector.riotx.core.error.ErrorFormatter
|
||||||
import im.vector.riotx.core.extensions.hideKeyboard
|
import im.vector.riotx.core.extensions.hideKeyboard
|
||||||
import im.vector.riotx.core.extensions.isEmail
|
import im.vector.riotx.core.extensions.isEmail
|
||||||
import im.vector.riotx.core.extensions.showPassword
|
import im.vector.riotx.core.extensions.showPassword
|
||||||
|
import im.vector.riotx.core.extensions.toReducedUrl
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.functions.BiFunction
|
import io.reactivex.functions.BiFunction
|
||||||
import io.reactivex.rxkotlin.subscribeBy
|
import io.reactivex.rxkotlin.subscribeBy
|
||||||
|
@ -57,7 +58,7 @@ class LoginResetPasswordFragment @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupUi(state: LoginViewState) {
|
private fun setupUi(state: LoginViewState) {
|
||||||
resetPasswordTitle.text = getString(R.string.login_reset_password_on, state.homeServerUrlSimple)
|
resetPasswordTitle.text = getString(R.string.login_reset_password_on, state.homeServerUrl.toReducedUrl())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupSubmitButton() {
|
private fun setupSubmitButton() {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import androidx.core.view.isVisible
|
||||||
import butterknife.OnClick
|
import butterknife.OnClick
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
import im.vector.riotx.core.error.ErrorFormatter
|
||||||
|
import im.vector.riotx.core.extensions.toReducedUrl
|
||||||
import kotlinx.android.synthetic.main.fragment_login_signup_signin_selection.*
|
import kotlinx.android.synthetic.main.fragment_login_signup_signin_selection.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -40,19 +41,19 @@ class LoginSignUpSignInSelectionFragment @Inject constructor(
|
||||||
ServerType.MatrixOrg -> {
|
ServerType.MatrixOrg -> {
|
||||||
loginSignupSigninServerIcon.setImageResource(R.drawable.ic_logo_matrix_org)
|
loginSignupSigninServerIcon.setImageResource(R.drawable.ic_logo_matrix_org)
|
||||||
loginSignupSigninServerIcon.isVisible = true
|
loginSignupSigninServerIcon.isVisible = true
|
||||||
loginSignupSigninTitle.text = getString(R.string.login_connect_to, state.homeServerUrlSimple)
|
loginSignupSigninTitle.text = getString(R.string.login_connect_to, state.homeServerUrl.toReducedUrl())
|
||||||
loginSignupSigninText.text = getString(R.string.login_server_matrix_org_text)
|
loginSignupSigninText.text = getString(R.string.login_server_matrix_org_text)
|
||||||
}
|
}
|
||||||
ServerType.Modular -> {
|
ServerType.Modular -> {
|
||||||
loginSignupSigninServerIcon.setImageResource(R.drawable.ic_logo_modular)
|
loginSignupSigninServerIcon.setImageResource(R.drawable.ic_logo_modular)
|
||||||
loginSignupSigninServerIcon.isVisible = true
|
loginSignupSigninServerIcon.isVisible = true
|
||||||
loginSignupSigninTitle.text = getString(R.string.login_connect_to_modular)
|
loginSignupSigninTitle.text = getString(R.string.login_connect_to_modular)
|
||||||
loginSignupSigninText.text = state.homeServerUrlSimple
|
loginSignupSigninText.text = state.homeServerUrl.toReducedUrl()
|
||||||
}
|
}
|
||||||
ServerType.Other -> {
|
ServerType.Other -> {
|
||||||
loginSignupSigninServerIcon.isVisible = false
|
loginSignupSigninServerIcon.isVisible = false
|
||||||
loginSignupSigninTitle.text = getString(R.string.login_server_other_title)
|
loginSignupSigninTitle.text = getString(R.string.login_server_other_title)
|
||||||
loginSignupSigninText.text = getString(R.string.login_connect_to, state.homeServerUrlSimple)
|
loginSignupSigninText.text = getString(R.string.login_connect_to, state.homeServerUrl.toReducedUrl())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,12 +54,4 @@ data class LoginViewState(
|
||||||
fun isUserLogged(): Boolean {
|
fun isUserLogged(): Boolean {
|
||||||
return asyncLoginAction is Success
|
return asyncLoginAction is Success
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Ex: "https://matrix.org/" -> "matrix.org"
|
|
||||||
*/
|
|
||||||
val homeServerUrlSimple: String
|
|
||||||
get() = (homeServerUrl ?: "")
|
|
||||||
.substringAfter("://")
|
|
||||||
.trim { it == '/' }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.error.ErrorFormatter
|
import im.vector.riotx.core.error.ErrorFormatter
|
||||||
import im.vector.riotx.core.extensions.cleanup
|
import im.vector.riotx.core.extensions.cleanup
|
||||||
import im.vector.riotx.core.extensions.configureWith
|
import im.vector.riotx.core.extensions.configureWith
|
||||||
|
import im.vector.riotx.core.extensions.toReducedUrl
|
||||||
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
||||||
import im.vector.riotx.features.login.AbstractLoginFragment
|
import im.vector.riotx.features.login.AbstractLoginFragment
|
||||||
import im.vector.riotx.features.login.LoginAction
|
import im.vector.riotx.features.login.LoginAction
|
||||||
|
@ -115,7 +116,7 @@ class LoginTermsFragment @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun updateWithState(state: LoginViewState) {
|
override fun updateWithState(state: LoginViewState) {
|
||||||
policyController.homeServer = state.homeServerUrlSimple
|
policyController.homeServer = state.homeServerUrl.toReducedUrl()
|
||||||
renderState()
|
renderState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue