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