Move Event exclusion to the module appconfig.
It has to become an android module to be able to add a dependency on : libraries:matrix:api.
This commit is contained in:
parent
db3f17fd7d
commit
e296fe2877
3 changed files with 37 additions and 25 deletions
|
|
@ -14,16 +14,13 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
plugins {
|
plugins {
|
||||||
id("java-library")
|
id("io.element.android-library")
|
||||||
id("com.android.lint")
|
|
||||||
alias(libs.plugins.kotlin.jvm)
|
|
||||||
alias(libs.plugins.anvil)
|
alias(libs.plugins.anvil)
|
||||||
alias(libs.plugins.ksp)
|
alias(libs.plugins.ksp)
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
android {
|
||||||
sourceCompatibility = JavaVersion.VERSION_17
|
namespace = "io.element.android.appconfig"
|
||||||
targetCompatibility = JavaVersion.VERSION_17
|
|
||||||
}
|
}
|
||||||
|
|
||||||
anvil {
|
anvil {
|
||||||
|
|
@ -33,4 +30,5 @@ anvil {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.dagger)
|
implementation(libs.dagger)
|
||||||
implementation(projects.libraries.di)
|
implementation(projects.libraries.di)
|
||||||
|
implementation(projects.libraries.matrix.api)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,28 @@
|
||||||
|
|
||||||
package io.element.android.appconfig
|
package io.element.android.appconfig
|
||||||
|
|
||||||
|
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||||
|
|
||||||
object TimelineConfig {
|
object TimelineConfig {
|
||||||
const val MAX_READ_RECEIPT_TO_DISPLAY = 3
|
const val MAX_READ_RECEIPT_TO_DISPLAY = 3
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event types that will be filtered out from the timeline (i.e. not displayed).
|
||||||
|
*/
|
||||||
|
val excludedEvents = listOf(
|
||||||
|
StateEventType.ROOM_ALIASES,
|
||||||
|
StateEventType.ROOM_CANONICAL_ALIAS,
|
||||||
|
StateEventType.ROOM_GUEST_ACCESS,
|
||||||
|
StateEventType.ROOM_HISTORY_VISIBILITY,
|
||||||
|
StateEventType.ROOM_JOIN_RULES,
|
||||||
|
StateEventType.ROOM_PINNED_EVENTS,
|
||||||
|
StateEventType.ROOM_POWER_LEVELS,
|
||||||
|
StateEventType.ROOM_SERVER_ACL,
|
||||||
|
StateEventType.ROOM_TOMBSTONE,
|
||||||
|
StateEventType.SPACE_CHILD,
|
||||||
|
StateEventType.SPACE_PARENT,
|
||||||
|
StateEventType.POLICY_RULE_ROOM,
|
||||||
|
StateEventType.POLICY_RULE_SERVER,
|
||||||
|
StateEventType.POLICY_RULE_USER,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl
|
package io.element.android.libraries.matrix.impl
|
||||||
|
|
||||||
|
import io.element.android.appconfig.TimelineConfig
|
||||||
import io.element.android.libraries.androidutils.file.getSizeOfFiles
|
import io.element.android.libraries.androidutils.file.getSizeOfFiles
|
||||||
import io.element.android.libraries.androidutils.file.safeDelete
|
import io.element.android.libraries.androidutils.file.safeDelete
|
||||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||||
|
|
@ -54,6 +55,7 @@ import io.element.android.libraries.matrix.impl.room.MatrixRoomInfoMapper
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomContentForwarder
|
import io.element.android.libraries.matrix.impl.room.RoomContentForwarder
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
||||||
import io.element.android.libraries.matrix.impl.room.RustMatrixRoom
|
import io.element.android.libraries.matrix.impl.room.RustMatrixRoom
|
||||||
|
import io.element.android.libraries.matrix.impl.room.map
|
||||||
import io.element.android.libraries.matrix.impl.roomdirectory.RustRoomDirectoryService
|
import io.element.android.libraries.matrix.impl.roomdirectory.RustRoomDirectoryService
|
||||||
import io.element.android.libraries.matrix.impl.roomlist.RoomListFactory
|
import io.element.android.libraries.matrix.impl.roomlist.RoomListFactory
|
||||||
import io.element.android.libraries.matrix.impl.roomlist.RustRoomListService
|
import io.element.android.libraries.matrix.impl.roomlist.RustRoomListService
|
||||||
|
|
@ -97,7 +99,6 @@ import org.matrix.rustcomponents.sdk.NotificationProcessSetup
|
||||||
import org.matrix.rustcomponents.sdk.PowerLevels
|
import org.matrix.rustcomponents.sdk.PowerLevels
|
||||||
import org.matrix.rustcomponents.sdk.Room
|
import org.matrix.rustcomponents.sdk.Room
|
||||||
import org.matrix.rustcomponents.sdk.RoomListItem
|
import org.matrix.rustcomponents.sdk.RoomListItem
|
||||||
import org.matrix.rustcomponents.sdk.StateEventType
|
|
||||||
import org.matrix.rustcomponents.sdk.TaskHandle
|
import org.matrix.rustcomponents.sdk.TaskHandle
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
|
|
@ -229,24 +230,15 @@ class RustMatrixClient(
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
private val eventFilters = TimelineEventTypeFilter.exclude(
|
private val eventFilters = TimelineConfig.excludedEvents
|
||||||
listOf(
|
.takeIf { it.isNotEmpty() }
|
||||||
StateEventType.ROOM_ALIASES,
|
?.let { listStateEventType ->
|
||||||
StateEventType.ROOM_CANONICAL_ALIAS,
|
TimelineEventTypeFilter.exclude(
|
||||||
StateEventType.ROOM_GUEST_ACCESS,
|
listStateEventType.map { stateEventType ->
|
||||||
StateEventType.ROOM_HISTORY_VISIBILITY,
|
FilterTimelineEventType.State(stateEventType.map())
|
||||||
StateEventType.ROOM_JOIN_RULES,
|
}
|
||||||
StateEventType.ROOM_PINNED_EVENTS,
|
)
|
||||||
StateEventType.ROOM_POWER_LEVELS,
|
}
|
||||||
StateEventType.ROOM_SERVER_ACL,
|
|
||||||
StateEventType.ROOM_TOMBSTONE,
|
|
||||||
StateEventType.SPACE_CHILD,
|
|
||||||
StateEventType.SPACE_PARENT,
|
|
||||||
StateEventType.POLICY_RULE_ROOM,
|
|
||||||
StateEventType.POLICY_RULE_SERVER,
|
|
||||||
StateEventType.POLICY_RULE_USER,
|
|
||||||
).map(FilterTimelineEventType::State)
|
|
||||||
)
|
|
||||||
|
|
||||||
override val mediaLoader: MatrixMediaLoader = RustMediaLoader(
|
override val mediaLoader: MatrixMediaLoader = RustMediaLoader(
|
||||||
baseCacheDirectory = baseCacheDirectory,
|
baseCacheDirectory = baseCacheDirectory,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue