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