From 3a7d8c01f6263e1855deec261f6964dfa99d69d5 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 5 Jun 2023 16:43:37 +0300 Subject: [PATCH] Fix set initial profile data on edit profile --- .../settings/profile/edit/EditProfileDialogFragment.kt | 2 +- .../settings/profile/edit/EditProfileViewModel.kt | 10 ++++++++-- .../sign_up/setup_profile/SetupProfileDataSource.kt | 5 +++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt b/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt index 8b6f65051..0a76911a7 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt @@ -63,7 +63,7 @@ class EditProfileDialogFragment : } ) viewModel.profileLiveData.observeData(this) { - it.getOrNull()?.let { user -> setInitialUserInfo(user) } + it?.let { user -> setInitialUserInfo(user) } } viewModel.threePidLiveData.observeData(this) { binding.tilContactInfo.editText?.setText(it.firstOrNull()?.value ?: "") diff --git a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt b/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt index 5dc2b5b55..af79524ac 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt @@ -7,6 +7,8 @@ import org.futo.circles.auth.feature.sign_up.setup_profile.SetupProfileDataSourc import org.futo.circles.core.SingleEventLiveData import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.launchBg +import org.matrix.android.sdk.api.session.identity.ThreePid +import org.matrix.android.sdk.api.session.user.model.User class EditProfileViewModel( private val dataSource: SetupProfileDataSource @@ -14,8 +16,12 @@ class EditProfileViewModel( val selectedImageLiveData = MutableLiveData<Uri>() val editProfileResponseLiveData = SingleEventLiveData<Response<Unit?>>() - val profileLiveData = dataSource.profileLiveData - val threePidLiveData = dataSource.threePidLiveData + val profileLiveData = SingleEventLiveData<User?>().apply { + postValue(dataSource.getUserData()) + } + val threePidLiveData = SingleEventLiveData<List<ThreePid>>().apply { + postValue(dataSource.getThreePidData()) + } val isProfileDataChangedLiveData = MutableLiveData(false) fun setImageUri(uri: Uri) { diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt index 5796be25c..49bb9b49a 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt @@ -18,8 +18,9 @@ class SetupProfileDataSource( ) } - val profileLiveData = session.userService().getUserLive(session.myUserId) - val threePidLiveData = session.profileService().getThreePidsLive(true) + fun getUserData() = session.userService().getUser(session.myUserId) + + fun getThreePidData() = session.profileService().getThreePids() suspend fun saveProfileData(profileImageUri: Uri?, displayName: String?) = createResult { profileImageUri?.let { uri -> -- GitLab