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:
Adam Brown 2022-07-13 09:31:33 +01:00
parent c7b54b8d3d
commit b2ee7f327f
6 changed files with 4 additions and 51 deletions

View file

@ -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,

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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,