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 9bb52fb1a5..93e2dfd154 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 @@ -641,6 +641,7 @@ class OnboardingViewModel @AssistedInject constructor( val homeServerCapabilities = session.homeServerCapabilitiesService().getHomeServerCapabilities() val capabilityOverrides = vectorOverrides.forceHomeserverCapabilities?.firstOrNull() state.personalizationState.copy( + userId = session.myUserId, displayName = state.registrationState.selectedMatrixId?.let { MatrixPatterns.extractUserNameFromId(it) }, supportsChangingDisplayName = capabilityOverrides?.canChangeDisplayName ?: homeServerCapabilities.canChangeDisplayName, supportsChangingProfilePicture = capabilityOverrides?.canChangeAvatar ?: homeServerCapabilities.canChangeAvatar 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 99678ea5c1..b078f41ae2 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 @@ -78,10 +78,11 @@ data class SelectedHomeserverState( @Parcelize data class PersonalizationState( + val userId: String = "", val supportsChangingDisplayName: Boolean = false, val supportsChangingProfilePicture: Boolean = false, val displayName: String? = null, - val selectedPictureUri: Uri? = null + val selectedPictureUri: Uri? = null, ) : Parcelable { fun supportsPersonalization() = supportsChangingDisplayName || supportsChangingProfilePicture diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthChooseProfilePictureFragment.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthChooseProfilePictureFragment.kt index 92d0aa2a0f..5450c74095 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthChooseProfilePictureFragment.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthChooseProfilePictureFragment.kt @@ -26,7 +26,6 @@ import androidx.core.view.isInvisible import com.airbnb.mvrx.withState import dagger.hilt.android.AndroidEntryPoint import im.vector.app.R -import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.dialogs.GalleryOrCameraDialogHelper import im.vector.app.core.dialogs.GalleryOrCameraDialogHelperFactory import im.vector.app.databinding.FragmentFtueProfilePictureBinding @@ -42,7 +41,6 @@ class FtueAuthChooseProfilePictureFragment : AbstractFtueAuthFragment(), GalleryOrCameraDialogHelper.Listener { - @Inject lateinit var activeSessionHolder: ActiveSessionHolder @Inject lateinit var galleryOrCameraDialogHelperFactory: GalleryOrCameraDialogHelperFactory @Inject lateinit var avatarRenderer: AvatarRenderer @@ -85,10 +83,9 @@ class FtueAuthChooseProfilePictureFragment : views.profilePictureSubmit.isEnabled = hasSetPicture views.changeProfilePictureIcon.setImageResource(if (hasSetPicture) R.drawable.ic_edit else R.drawable.ic_camera_plain) - val session = activeSessionHolder.getActiveSession() val matrixItem = MatrixItem.UserItem( - id = session.myUserId, - displayName = state.personalizationState.displayName ?: "" + id = state.personalizationState.userId, + displayName = state.personalizationState.displayName.orEmpty() ) avatarRenderer.render(matrixItem, localUri = state.personalizationState.selectedPictureUri, imageView = views.profilePictureView) } diff --git a/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt b/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt index 82adc70fe3..865f1c79d6 100644 --- a/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt +++ b/vector/src/test/java/im/vector/app/features/onboarding/OnboardingViewModelTest.kt @@ -687,7 +687,7 @@ class OnboardingViewModelTest { .assertStatesChanges( initialState, { copy(isLoading = true) }, - { copy(isLoading = false, personalizationState = A_HOMESERVER_CAPABILITIES.toPersonalisationState(A_USERNAME)) } + { copy(isLoading = false, personalizationState = A_HOMESERVER_CAPABILITIES.toPersonalisationState(A_MATRIX_ID, A_USERNAME)) } ) .assertEvents(OnboardingViewEvents.OnAccountCreated) .finish() @@ -1196,7 +1196,8 @@ class OnboardingViewModelTest { } } -private fun HomeServerCapabilities.toPersonalisationState(displayName: String? = null) = PersonalizationState( +private fun HomeServerCapabilities.toPersonalisationState(userId: String, displayName: String? = null) = PersonalizationState( + userId = userId, supportsChangingDisplayName = canChangeDisplayName, supportsChangingProfilePicture = canChangeAvatar, displayName = displayName,