mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 05:31:21 +03:00
removing homeserver description to match updated designs
- it was hardcoded for matrix.org and made other server selections cause the page balance to feel off
This commit is contained in:
parent
c7b54b8d3d
commit
b2ee7f327f
6 changed files with 4 additions and 51 deletions
|
@ -66,7 +66,6 @@ enum class OnboardingFlow {
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
data class SelectedHomeserverState(
|
data class SelectedHomeserverState(
|
||||||
val description: String? = null,
|
|
||||||
val userFacingUrl: String? = null,
|
val userFacingUrl: String? = null,
|
||||||
val upstreamUrl: String? = null,
|
val upstreamUrl: String? = null,
|
||||||
val preferredLoginMode: LoginMode = LoginMode.Unknown,
|
val preferredLoginMode: LoginMode = LoginMode.Unknown,
|
||||||
|
|
|
@ -16,10 +16,7 @@
|
||||||
|
|
||||||
package im.vector.app.features.onboarding
|
package im.vector.app.features.onboarding
|
||||||
|
|
||||||
import im.vector.app.R
|
|
||||||
import im.vector.app.core.extensions.containsAllItems
|
import im.vector.app.core.extensions.containsAllItems
|
||||||
import im.vector.app.core.resources.StringProvider
|
|
||||||
import im.vector.app.core.utils.ensureTrailingSlash
|
|
||||||
import im.vector.app.features.login.LoginMode
|
import im.vector.app.features.login.LoginMode
|
||||||
import org.matrix.android.sdk.api.auth.AuthenticationService
|
import org.matrix.android.sdk.api.auth.AuthenticationService
|
||||||
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
||||||
|
@ -29,7 +26,6 @@ import javax.inject.Inject
|
||||||
|
|
||||||
class StartAuthenticationFlowUseCase @Inject constructor(
|
class StartAuthenticationFlowUseCase @Inject constructor(
|
||||||
private val authenticationService: AuthenticationService,
|
private val authenticationService: AuthenticationService,
|
||||||
private val stringProvider: StringProvider
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
suspend fun execute(config: HomeServerConnectionConfig): StartAuthenticationResult {
|
suspend fun execute(config: HomeServerConnectionConfig): StartAuthenticationResult {
|
||||||
|
@ -46,10 +42,6 @@ class StartAuthenticationFlowUseCase @Inject constructor(
|
||||||
config: HomeServerConnectionConfig,
|
config: HomeServerConnectionConfig,
|
||||||
preferredLoginMode: LoginMode
|
preferredLoginMode: LoginMode
|
||||||
) = SelectedHomeserverState(
|
) = SelectedHomeserverState(
|
||||||
description = when (config.homeServerUri.toString()) {
|
|
||||||
matrixOrgUrl() -> stringProvider.getString(R.string.ftue_auth_create_account_matrix_dot_org_server_description)
|
|
||||||
else -> null
|
|
||||||
},
|
|
||||||
userFacingUrl = config.homeServerUri.toString(),
|
userFacingUrl = config.homeServerUri.toString(),
|
||||||
upstreamUrl = authFlow.homeServerUrl,
|
upstreamUrl = authFlow.homeServerUrl,
|
||||||
preferredLoginMode = preferredLoginMode,
|
preferredLoginMode = preferredLoginMode,
|
||||||
|
@ -57,8 +49,6 @@ class StartAuthenticationFlowUseCase @Inject constructor(
|
||||||
isLogoutDevicesSupported = authFlow.isLogoutDevicesSupported
|
isLogoutDevicesSupported = authFlow.isLogoutDevicesSupported
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun matrixOrgUrl() = stringProvider.getString(R.string.matrix_org_server_url).ensureTrailingSlash()
|
|
||||||
|
|
||||||
private fun LoginFlowResult.findPreferredLoginMode() = when {
|
private fun LoginFlowResult.findPreferredLoginMode() = when {
|
||||||
supportedLoginTypes.containsAllItems(LoginFlowTypes.SSO, LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(ssoIdentityProviders)
|
supportedLoginTypes.containsAllItems(LoginFlowTypes.SSO, LoginFlowTypes.PASSWORD) -> LoginMode.SsoAndPassword(ssoIdentityProviders)
|
||||||
supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(ssoIdentityProviders)
|
supportedLoginTypes.contains(LoginFlowTypes.SSO) -> LoginMode.Sso(ssoIdentityProviders)
|
||||||
|
|
|
@ -105,7 +105,6 @@ class FtueAuthCombinedLoginFragment @Inject constructor(
|
||||||
setupAutoFill()
|
setupAutoFill()
|
||||||
|
|
||||||
views.selectedServerName.text = state.selectedHomeserver.userFacingUrl.toReducedUrl()
|
views.selectedServerName.text = state.selectedHomeserver.userFacingUrl.toReducedUrl()
|
||||||
views.selectedServerDescription.text = state.selectedHomeserver.description
|
|
||||||
|
|
||||||
if (state.isLoading) {
|
if (state.isLoading) {
|
||||||
// Ensure password is hidden
|
// Ensure password is hidden
|
||||||
|
|
|
@ -155,7 +155,6 @@ class FtueAuthCombinedRegisterFragment @Inject constructor() : AbstractSSOFtueAu
|
||||||
setupAutoFill()
|
setupAutoFill()
|
||||||
|
|
||||||
views.selectedServerName.text = state.selectedHomeserver.userFacingUrl.toReducedUrl()
|
views.selectedServerName.text = state.selectedHomeserver.userFacingUrl.toReducedUrl()
|
||||||
views.selectedServerDescription.text = state.selectedHomeserver.description
|
|
||||||
|
|
||||||
if (state.isLoading) {
|
if (state.isLoading) {
|
||||||
// Ensure password is hidden
|
// Ensure password is hidden
|
||||||
|
|
|
@ -110,22 +110,10 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="12dp"
|
android:layout_marginStart="12dp"
|
||||||
android:textColor="?vctr_content_primary"
|
android:textColor="?vctr_content_primary"
|
||||||
app:layout_constraintBottom_toTopOf="@id/selectedServerDescription"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/editServerButton"
|
|
||||||
app:layout_constraintStart_toStartOf="@id/createAccountGutterStart"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/chooseYourServerHeader" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/selectedServerDescription"
|
|
||||||
style="@style/Widget.Vector.TextView.Micro"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="12dp"
|
|
||||||
android:textColor="?vctr_content_tertiary"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/serverSelectionSpacing"
|
app:layout_constraintBottom_toTopOf="@id/serverSelectionSpacing"
|
||||||
app:layout_constraintEnd_toStartOf="@id/editServerButton"
|
app:layout_constraintEnd_toStartOf="@id/editServerButton"
|
||||||
app:layout_constraintStart_toStartOf="@id/createAccountGutterStart"
|
app:layout_constraintStart_toStartOf="@id/createAccountGutterStart"
|
||||||
app:layout_constraintTop_toBottomOf="@id/selectedServerName" />
|
app:layout_constraintTop_toBottomOf="@id/chooseYourServerHeader" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/editServerButton"
|
android:id="@+id/editServerButton"
|
||||||
|
@ -137,7 +125,7 @@
|
||||||
android:paddingEnd="12dp"
|
android:paddingEnd="12dp"
|
||||||
android:text="@string/ftue_auth_create_account_edit_server_selection"
|
android:text="@string/ftue_auth_create_account_edit_server_selection"
|
||||||
android:textAllCaps="true"
|
android:textAllCaps="true"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/selectedServerDescription"
|
app:layout_constraintBottom_toBottomOf="@id/selectedServerName"
|
||||||
app:layout_constraintEnd_toEndOf="@id/createAccountGutterEnd"
|
app:layout_constraintEnd_toEndOf="@id/createAccountGutterEnd"
|
||||||
app:layout_constraintTop_toTopOf="@id/chooseYourServerHeader" />
|
app:layout_constraintTop_toTopOf="@id/chooseYourServerHeader" />
|
||||||
|
|
||||||
|
@ -147,7 +135,7 @@
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintBottom_toTopOf="@id/createAccountInput"
|
app:layout_constraintBottom_toTopOf="@id/createAccountInput"
|
||||||
app:layout_constraintHeight_percent="0.05"
|
app:layout_constraintHeight_percent="0.05"
|
||||||
app:layout_constraintTop_toBottomOf="@id/selectedServerDescription" />
|
app:layout_constraintTop_toBottomOf="@id/selectedServerName" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
|
|
@ -16,13 +16,10 @@
|
||||||
|
|
||||||
package im.vector.app.features.onboarding
|
package im.vector.app.features.onboarding
|
||||||
|
|
||||||
import im.vector.app.R
|
|
||||||
import im.vector.app.features.login.LoginMode
|
import im.vector.app.features.login.LoginMode
|
||||||
import im.vector.app.features.onboarding.StartAuthenticationFlowUseCase.StartAuthenticationResult
|
import im.vector.app.features.onboarding.StartAuthenticationFlowUseCase.StartAuthenticationResult
|
||||||
import im.vector.app.test.fakes.FakeAuthenticationService
|
import im.vector.app.test.fakes.FakeAuthenticationService
|
||||||
import im.vector.app.test.fakes.FakeStringProvider
|
|
||||||
import im.vector.app.test.fakes.FakeUri
|
import im.vector.app.test.fakes.FakeUri
|
||||||
import im.vector.app.test.fakes.toTestString
|
|
||||||
import io.mockk.coVerifyOrder
|
import io.mockk.coVerifyOrder
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.amshove.kluent.shouldBeEqualTo
|
import org.amshove.kluent.shouldBeEqualTo
|
||||||
|
@ -33,7 +30,6 @@ import org.matrix.android.sdk.api.auth.data.LoginFlowResult
|
||||||
import org.matrix.android.sdk.api.auth.data.LoginFlowTypes
|
import org.matrix.android.sdk.api.auth.data.LoginFlowTypes
|
||||||
import org.matrix.android.sdk.api.auth.data.SsoIdentityProvider
|
import org.matrix.android.sdk.api.auth.data.SsoIdentityProvider
|
||||||
|
|
||||||
private const val MATRIX_ORG_URL = "https://any-value.org/"
|
|
||||||
private const val A_DECLARED_HOMESERVER_URL = "https://foo.bar"
|
private const val A_DECLARED_HOMESERVER_URL = "https://foo.bar"
|
||||||
private val A_HOMESERVER_CONFIG = HomeServerConnectionConfig(homeServerUri = FakeUri().instance)
|
private val A_HOMESERVER_CONFIG = HomeServerConnectionConfig(homeServerUri = FakeUri().instance)
|
||||||
private val SSO_IDENTITY_PROVIDERS = emptyList<SsoIdentityProvider>()
|
private val SSO_IDENTITY_PROVIDERS = emptyList<SsoIdentityProvider>()
|
||||||
|
@ -41,9 +37,8 @@ private val SSO_IDENTITY_PROVIDERS = emptyList<SsoIdentityProvider>()
|
||||||
class StartAuthenticationFlowUseCaseTest {
|
class StartAuthenticationFlowUseCaseTest {
|
||||||
|
|
||||||
private val fakeAuthenticationService = FakeAuthenticationService()
|
private val fakeAuthenticationService = FakeAuthenticationService()
|
||||||
private val fakeStringProvider = FakeStringProvider()
|
|
||||||
|
|
||||||
private val useCase = StartAuthenticationFlowUseCase(fakeAuthenticationService, fakeStringProvider.instance)
|
private val useCase = StartAuthenticationFlowUseCase(fakeAuthenticationService)
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
@ -106,21 +101,6 @@ class StartAuthenticationFlowUseCaseTest {
|
||||||
verifyClearsAndThenStartsLogin(A_HOMESERVER_CONFIG)
|
verifyClearsAndThenStartsLogin(A_HOMESERVER_CONFIG)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `given matrix dot org url when starting authentication flow then provides description`() = runTest {
|
|
||||||
val matrixOrgConfig = HomeServerConnectionConfig(homeServerUri = FakeUri(MATRIX_ORG_URL).instance)
|
|
||||||
fakeStringProvider.given(R.string.matrix_org_server_url, result = MATRIX_ORG_URL)
|
|
||||||
fakeAuthenticationService.givenLoginFlow(matrixOrgConfig, aLoginResult())
|
|
||||||
|
|
||||||
val result = useCase.execute(matrixOrgConfig)
|
|
||||||
|
|
||||||
result shouldBeEqualTo expectedResult(
|
|
||||||
description = R.string.ftue_auth_create_account_matrix_dot_org_server_description.toTestString(),
|
|
||||||
homeserverSourceUrl = MATRIX_ORG_URL
|
|
||||||
)
|
|
||||||
verifyClearsAndThenStartsLogin(matrixOrgConfig)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun aLoginResult(
|
private fun aLoginResult(
|
||||||
supportedLoginTypes: List<String> = emptyList()
|
supportedLoginTypes: List<String> = emptyList()
|
||||||
) = LoginFlowResult(
|
) = LoginFlowResult(
|
||||||
|
@ -134,14 +114,12 @@ class StartAuthenticationFlowUseCaseTest {
|
||||||
|
|
||||||
private fun expectedResult(
|
private fun expectedResult(
|
||||||
isHomeserverOutdated: Boolean = false,
|
isHomeserverOutdated: Boolean = false,
|
||||||
description: String? = null,
|
|
||||||
preferredLoginMode: LoginMode = LoginMode.Unsupported,
|
preferredLoginMode: LoginMode = LoginMode.Unsupported,
|
||||||
supportedLoginTypes: List<String> = emptyList(),
|
supportedLoginTypes: List<String> = emptyList(),
|
||||||
homeserverSourceUrl: String = A_HOMESERVER_CONFIG.homeServerUri.toString()
|
homeserverSourceUrl: String = A_HOMESERVER_CONFIG.homeServerUri.toString()
|
||||||
) = StartAuthenticationResult(
|
) = StartAuthenticationResult(
|
||||||
isHomeserverOutdated,
|
isHomeserverOutdated,
|
||||||
SelectedHomeserverState(
|
SelectedHomeserverState(
|
||||||
description = description,
|
|
||||||
userFacingUrl = homeserverSourceUrl,
|
userFacingUrl = homeserverSourceUrl,
|
||||||
upstreamUrl = A_DECLARED_HOMESERVER_URL,
|
upstreamUrl = A_DECLARED_HOMESERVER_URL,
|
||||||
preferredLoginMode = preferredLoginMode,
|
preferredLoginMode = preferredLoginMode,
|
||||||
|
|
Loading…
Reference in a new issue