Skip to content
Snippets Groups Projects
Commit 098b0449 authored by Taras's avatar Taras
Browse files

Show other posts view type only with dev mode

parent b4d84eee
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@ package org.futo.circles.core.feature.timeline.builder
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.futo.circles.core.model.Post
import org.futo.circles.core.provider.PreferencesProvider
import org.matrix.android.sdk.api.session.events.model.EventType
import org.matrix.android.sdk.api.session.room.Room
import org.matrix.android.sdk.api.session.room.getTimelineEvent
......@@ -12,7 +13,7 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import org.matrix.android.sdk.api.session.room.timeline.isEdition
import org.matrix.android.sdk.api.session.room.timeline.isReply
abstract class BaseTimelineBuilder {
abstract class BaseTimelineBuilder(private val preferencesProvider: PreferencesProvider) {
private val supportedTimelineEvens: List<String> =
listOf(EventType.MESSAGE, EventType.POLL_START.stable, EventType.POLL_START.unstable)
......@@ -48,7 +49,8 @@ abstract class BaseTimelineBuilder {
private fun List<TimelineEvent>.filterTimelineEvents(isThread: Boolean): List<TimelineEvent> =
filter {
val isSupportedEvent = it.root.getClearType() in supportedTimelineEvens
val isSupportedEvent = if (preferencesProvider.isDeveloperModeEnabled()) true
else it.root.getClearType() in supportedTimelineEvens
val isNotRemovedEvent = !it.isEdition() && !it.root.isRedacted()
if (isThread) isSupportedEvent && isNotRemovedEvent
......
......@@ -6,12 +6,15 @@ import org.futo.circles.core.mapping.nameOrId
import org.futo.circles.core.mapping.toPost
import org.futo.circles.core.model.Post
import org.futo.circles.core.provider.MatrixSessionProvider
import org.futo.circles.core.provider.PreferencesProvider
import org.matrix.android.sdk.api.session.getRoom
import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import javax.inject.Inject
class MultiTimelineBuilder @Inject constructor() : BaseTimelineBuilder() {
class MultiTimelineBuilder @Inject constructor(
preferencesProvider: PreferencesProvider
) : BaseTimelineBuilder(preferencesProvider) {
private var currentSnapshotMap: MutableMap<String, List<Post>> = mutableMapOf()
private var readReceiptMap: MutableMap<String, List<Long>> = mutableMapOf()
......
......@@ -6,11 +6,13 @@ import org.futo.circles.core.mapping.nameOrId
import org.futo.circles.core.mapping.toPost
import org.futo.circles.core.model.Post
import org.futo.circles.core.provider.MatrixSessionProvider
import org.futo.circles.core.provider.PreferencesProvider
import org.matrix.android.sdk.api.session.getRoom
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import javax.inject.Inject
class SingleTimelineBuilder @Inject constructor() : BaseTimelineBuilder() {
class SingleTimelineBuilder @Inject constructor(preferencesProvider: PreferencesProvider) :
BaseTimelineBuilder(preferencesProvider) {
private var currentSnapshotList: List<Post> = listOf()
......
......@@ -14,6 +14,7 @@ import org.futo.circles.core.feature.timeline.builder.MultiTimelineBuilder
import org.futo.circles.core.feature.timeline.builder.SingleTimelineBuilder
import org.futo.circles.core.model.Post
import org.futo.circles.core.provider.MatrixSessionProvider
import org.futo.circles.core.provider.PreferencesProvider
import org.matrix.android.sdk.api.session.getRoom
import org.matrix.android.sdk.api.session.room.Room
import org.matrix.android.sdk.api.session.room.timeline.Timeline
......@@ -27,10 +28,19 @@ abstract class BaseTimelineDataSource(
private val timelineBuilder: BaseTimelineBuilder
) {
class Factory @Inject constructor(private val savedStateHandle: SavedStateHandle) {
class Factory @Inject constructor(
private val savedStateHandle: SavedStateHandle,
private val preferencesProvider: PreferencesProvider
) {
fun create(isMultiTimelines: Boolean): BaseTimelineDataSource =
if (isMultiTimelines) MultiTimelinesDataSource(savedStateHandle, MultiTimelineBuilder())
else SingleTimelineDataSource(savedStateHandle, SingleTimelineBuilder())
if (isMultiTimelines) MultiTimelinesDataSource(
savedStateHandle,
MultiTimelineBuilder(preferencesProvider)
)
else SingleTimelineDataSource(
savedStateHandle,
SingleTimelineBuilder(preferencesProvider)
)
}
protected val roomId: String = savedStateHandle.getOrThrow("roomId")
......
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