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