Skip to content
Snippets Groups Projects
Commit 891f2461 authored by Taras's avatar Taras
Browse files

Rename to post content data source

parent 2b73bf56
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,6 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.DividerItemDecoration
......
......@@ -8,13 +8,13 @@ import org.futo.circles.core.extensions.getOrThrow
import org.futo.circles.core.extensions.launchBg
import org.futo.circles.core.model.ShareableContent
import org.futo.circles.core.timeline.post.PostOptionsDataSource
import org.futo.circles.gallery.feature.gallery.full_screen.media_item.FullScreenMediaDataSource
import org.futo.circles.core.timeline.post.PostContentDataSource
import javax.inject.Inject
@HiltViewModel
class TimelineMediaPreviewViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
private val mediaDataSource: FullScreenMediaDataSource,
private val mediaDataSource: PostContentDataSource,
private val postOptionsDataSource: PostOptionsDataSource
) : ViewModel() {
......
......@@ -6,12 +6,12 @@ import org.futo.circles.core.SingleEventLiveData
import org.futo.circles.core.extensions.Response
import org.futo.circles.core.extensions.launchBg
import org.futo.circles.core.model.SelectableRoomListItem
import org.futo.circles.gallery.feature.gallery.full_screen.media_item.FullScreenMediaDataSource
import org.futo.circles.core.timeline.post.PostContentDataSource
import javax.inject.Inject
@HiltViewModel
class SavePostToGalleryViewModel @Inject constructor(
private val mediaPreviewDataSource: FullScreenMediaDataSource,
private val mediaPreviewDataSource: PostContentDataSource,
private val savePostToGalleryDataSource: SavePostToGalleryDataSource
) : ViewModel() {
......
package org.futo.circles.gallery.feature.gallery.full_screen.media_item
package org.futo.circles.core.timeline.post
import dagger.hilt.android.scopes.ViewModelScoped
import org.futo.circles.core.mapping.toPost
import org.futo.circles.core.model.Post
import org.futo.circles.core.model.PostContent
import org.futo.circles.core.model.PostContentType
import org.futo.circles.core.provider.MatrixSessionProvider
......@@ -14,18 +15,20 @@ import javax.inject.Inject
@ViewModelScoped
class FullScreenMediaDataSource @Inject constructor() {
class PostContentDataSource @Inject constructor() {
private val session = MatrixSessionProvider.currentSession
fun getPostContent(roomId: String, eventId: String): PostContent? {
fun getPost(roomId: String, eventId: String): Post? {
val roomForMessage = session?.getRoom(roomId)
val timelineEvent = roomForMessage?.getTimelineEvent(eventId) ?: return null
val post = getPostContentTypeFor(timelineEvent)?.let { timelineEvent.toPost(it) }
?: return null
return post.content
return getPostContentTypeFor(timelineEvent)?.let { timelineEvent.toPost(it) }
}
fun getPostContent(roomId: String, eventId: String): PostContent? =
getPost(roomId, eventId)?.content
private fun getPostContentTypeFor(event: TimelineEvent): PostContentType? {
val messageType = event.root.getClearContent()?.toModel<MessageContent>()?.msgType
return PostContentType.values().firstOrNull { it.typeKey == messageType }
......
......@@ -10,13 +10,14 @@ import org.futo.circles.core.extensions.getOrThrow
import org.futo.circles.core.extensions.launchBg
import org.futo.circles.core.model.MediaContent
import org.futo.circles.core.model.PostContentType
import org.futo.circles.core.timeline.post.PostContentDataSource
import org.futo.circles.core.utils.FileUtils
import javax.inject.Inject
@HiltViewModel
class FullScreenMediaViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
private val fullScreenMediaDataSource: FullScreenMediaDataSource
private val postContentDataSource: PostContentDataSource
) : ViewModel() {
private val roomId: String = savedStateHandle.getOrThrow("roomId")
......@@ -27,7 +28,7 @@ class FullScreenMediaViewModel @Inject constructor(
fun loadData(context: Context) {
val content =
(fullScreenMediaDataSource.getPostContent(roomId, eventId) as? MediaContent) ?: return
(postContentDataSource.getPostContent(roomId, eventId) as? MediaContent) ?: return
when (content.type) {
PostContentType.IMAGE_CONTENT -> imageLiveData.postValue(content)
PostContentType.VIDEO_CONTENT -> launchBg {
......
......@@ -14,7 +14,7 @@ import org.futo.circles.core.timeline.BaseTimelineViewModel
import org.futo.circles.core.timeline.TimelineDataSource
import org.futo.circles.core.timeline.post.PostOptionsDataSource
import org.futo.circles.core.timeline.post.SendMessageDataSource
import org.futo.circles.gallery.feature.gallery.full_screen.media_item.FullScreenMediaDataSource
import org.futo.circles.core.timeline.post.PostContentDataSource
import org.futo.circles.core.model.GalleryContentListItem
import javax.inject.Inject
......@@ -23,7 +23,7 @@ class GalleryViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
timelineDataSource: TimelineDataSource,
private val sendMessageDataSource: SendMessageDataSource,
private val mediaDataSource: FullScreenMediaDataSource,
private val mediaDataSource: PostContentDataSource,
private val postOptionsDataSource: PostOptionsDataSource
) : BaseTimelineViewModel(timelineDataSource) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment