From 4649f14f4f8081b294fbde2952eaf16750b2f66f Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Mon, 31 Jul 2023 15:47:54 +0300
Subject: [PATCH] Setup initial post data in preview

---
 .../post/create/CreatePostViewModel.kt        | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/org/futo/circles/feature/timeline/post/create/CreatePostViewModel.kt b/app/src/main/java/org/futo/circles/feature/timeline/post/create/CreatePostViewModel.kt
index c107379d1..e29a220bd 100644
--- a/app/src/main/java/org/futo/circles/feature/timeline/post/create/CreatePostViewModel.kt
+++ b/app/src/main/java/org/futo/circles/feature/timeline/post/create/CreatePostViewModel.kt
@@ -5,20 +5,21 @@ import androidx.lifecycle.SavedStateHandle
 import androidx.lifecycle.ViewModel
 import dagger.hilt.android.lifecycle.HiltViewModel
 import org.futo.circles.core.extensions.getOrThrow
-import org.futo.circles.core.provider.MatrixSessionProvider
-import org.matrix.android.sdk.api.session.getRoom
-import org.matrix.android.sdk.api.session.room.getTimelineEvent
-import org.matrix.android.sdk.api.session.room.timeline.getTextEditableContent
+import org.futo.circles.core.model.PostContent
+import org.futo.circles.core.timeline.post.PostContentDataSource
 import javax.inject.Inject
 
 @HiltViewModel
-class CreatePostViewModel @Inject constructor(savedStateHandle: SavedStateHandle) : ViewModel() {
+class CreatePostViewModel @Inject constructor(
+    savedStateHandle: SavedStateHandle,
+    private val postContentDataSource: PostContentDataSource
+) : ViewModel() {
 
     private val roomId: String = savedStateHandle.getOrThrow("roomId")
     private val eventId: String? = savedStateHandle["eventId"]
     private val isEdit: Boolean = savedStateHandle.getOrThrow("isEdit")
 
-    val textToEditLiveData = MutableLiveData<String>()
+    val postToEditContentLiveData = MutableLiveData<PostContent>()
 
     init {
         if (isEdit) setEditPostInfo()
@@ -26,9 +27,7 @@ class CreatePostViewModel @Inject constructor(savedStateHandle: SavedStateHandle
 
     private fun setEditPostInfo() {
         eventId ?: return
-        val session = MatrixSessionProvider.currentSession
-        val room = session?.getRoom(roomId) ?: return
-        val event = room.getTimelineEvent(eventId) ?: return
-        textToEditLiveData.postValue(event.getTextEditableContent(false))
+        val content = postContentDataSource.getPostContent(roomId, eventId) ?: return
+        postToEditContentLiveData.value = content
     }
 }
\ No newline at end of file
-- 
GitLab