From bdedffbb4f79c3b9dd8c9985c09666a57582100d Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Fri, 4 Mar 2022 17:53:56 +0000 Subject: [PATCH] taking the personalization feature flag into account when calculating if personalization is supported - also removes a legacy loading workaround for the account creation step, we're navigating to a new screen AccountCreated so we have to stop the loading --- .../onboarding/OnboardingViewModel.kt | 21 +++++++++++++------ .../onboarding/OnboardingViewState.kt | 5 ----- .../onboarding/ftueauth/FtueAuthVariant.kt | 10 +-------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt index 582902710f..f97f4fbfea 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt @@ -767,12 +767,7 @@ class OnboardingViewModel @AssistedInject constructor( when (isAccountCreated) { true -> { - val homeServerCapabilities = session.getHomeServerCapabilities() - val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull() - val personalizationState = state.personalizationState.copy( - supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName, - supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar - ) + val personalizationState = createPersonalizationState(session, state) setState { copy(asyncLoginAction = Success(Unit), personalizationState = personalizationState) } @@ -785,6 +780,20 @@ class OnboardingViewModel @AssistedInject constructor( } } + private suspend fun createPersonalizationState(session: Session, state: OnboardingViewState): PersonalizationState { + return when { + vectorFeatures.isOnboardingPersonalizeEnabled() -> { + val homeServerCapabilities = session.getHomeServerCapabilities() + val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull() + state.personalizationState.copy( + supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName, + supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar + ) + } + else -> state.personalizationState + } + } + private fun handleWebLoginSuccess(action: OnboardingAction.WebLoginSuccess) = withState { state -> val homeServerConnectionConfigFinal = homeServerConnectionConfigFactory.create(state.homeServerUrl) diff --git a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt index 76c6998b1f..8747de6da8 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt @@ -22,7 +22,6 @@ import com.airbnb.mvrx.Async import com.airbnb.mvrx.Loading import com.airbnb.mvrx.MavericksState import com.airbnb.mvrx.PersistState -import com.airbnb.mvrx.Success import com.airbnb.mvrx.Uninitialized import im.vector.app.features.login.LoginMode import im.vector.app.features.login.ServerType @@ -83,10 +82,6 @@ data class OnboardingViewState( asyncDisplayName is Loading || asyncProfilePicture is Loading } - - fun isAuthTaskCompleted(): Boolean { - return asyncLoginAction is Success - } } enum class OnboardingFlow { diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt index ca6d13091b..2008726ac3 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt @@ -122,17 +122,9 @@ class FtueAuthVariant( private fun updateWithState(viewState: OnboardingViewState) { isForceLoginFallbackEnabled = viewState.isForceLoginFallbackEnabled - views.loginLoading.isVisible = shouldShowLoading(viewState) + views.loginLoading.isVisible = viewState.isLoading() } - private fun shouldShowLoading(viewState: OnboardingViewState) = - if (vectorFeatures.isOnboardingPersonalizeEnabled()) { - viewState.isLoading() - } else { - // Keep loading when during success because of the delay when switching to the next Activity - viewState.isLoading() || viewState.isAuthTaskCompleted() - } - override fun setIsLoading(isLoading: Boolean) = Unit private fun handleOnboardingViewEvents(viewEvents: OnboardingViewEvents) {