Browse Source
The same process is already done by the Rust SDK, so it's now redundant.pull/2368/head
Jorge Martín
7 months ago
6 changed files with 3 additions and 154 deletions
@ -0,0 +1,2 @@
@@ -0,0 +1,2 @@
|
||||
Remove `FilterHiddenStateEventsProcessor`, as this is already handled by the Rust SDK. |
||||
|
@ -1,42 +0,0 @@
@@ -1,42 +0,0 @@
|
||||
/* |
||||
* Copyright (c) 2024 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.matrix.impl.timeline.postprocessor |
||||
|
||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem |
||||
import io.element.android.libraries.matrix.api.timeline.item.event.StateContent |
||||
|
||||
/** |
||||
* This class is used to filter out 'hidden' state events from the timeline. |
||||
*/ |
||||
class FilterHiddenStateEventsProcessor { |
||||
fun process(items: List<MatrixTimelineItem>): List<MatrixTimelineItem> { |
||||
return items.filter { item -> |
||||
when (item) { |
||||
is MatrixTimelineItem.Event -> { |
||||
when (val content = item.event.content) { |
||||
// If it's a state event, make sure it's visible |
||||
is StateContent -> content.isVisibleInTimeline() |
||||
// We can display any other event |
||||
else -> true |
||||
} |
||||
} |
||||
is MatrixTimelineItem.Virtual -> true |
||||
is MatrixTimelineItem.Other -> true |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,77 +0,0 @@
@@ -1,77 +0,0 @@
|
||||
/* |
||||
* Copyright (c) 2024 New Vector Ltd |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package io.element.android.libraries.matrix.impl.timeline.postprocessor |
||||
|
||||
import com.google.common.truth.Truth.assertThat |
||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem |
||||
import io.element.android.libraries.matrix.api.timeline.item.event.OtherState |
||||
import io.element.android.libraries.matrix.api.timeline.item.event.StateContent |
||||
import io.element.android.libraries.matrix.api.timeline.item.virtual.VirtualTimelineItem |
||||
import io.element.android.libraries.matrix.test.timeline.anEventTimelineItem |
||||
import org.junit.Test |
||||
|
||||
class FilterHiddenStateEventsProcessorTest { |
||||
@Test |
||||
fun test() { |
||||
val items = listOf( |
||||
// These are visible because they're not state events |
||||
MatrixTimelineItem.Other, |
||||
MatrixTimelineItem.Virtual("virtual", VirtualTimelineItem.ReadMarker), |
||||
MatrixTimelineItem.Event("event", anEventTimelineItem()), |
||||
// These are visible state events |
||||
MatrixTimelineItem.Event("m.room.avatar", anEventTimelineItem(content = StateContent("", OtherState.RoomAvatar("")))), |
||||
MatrixTimelineItem.Event("m.room.create", anEventTimelineItem(content = StateContent("", OtherState.RoomCreate))), |
||||
MatrixTimelineItem.Event("m.room.encrypted", anEventTimelineItem(content = StateContent("", OtherState.RoomEncryption))), |
||||
MatrixTimelineItem.Event("m.room.name", anEventTimelineItem(content = StateContent("", OtherState.RoomName("")))), |
||||
MatrixTimelineItem.Event("m.room.third_party_invite", anEventTimelineItem(content = StateContent("", OtherState.RoomThirdPartyInvite("")))), |
||||
MatrixTimelineItem.Event("m.room.topic", anEventTimelineItem(content = StateContent("", OtherState.RoomTopic("")))), |
||||
MatrixTimelineItem.Event("m.room.custom", anEventTimelineItem(content = StateContent("", OtherState.Custom("")))), |
||||
// These ones are hidden |
||||
MatrixTimelineItem.Event("m.room.aliases", anEventTimelineItem(content = StateContent("", OtherState.RoomAliases))), |
||||
MatrixTimelineItem.Event("m.room.canonical_alias", anEventTimelineItem(content = StateContent("", OtherState.RoomCanonicalAlias))), |
||||
MatrixTimelineItem.Event("m.room.guest_access", anEventTimelineItem(content = StateContent("", OtherState.RoomGuestAccess))), |
||||
MatrixTimelineItem.Event("m.room.history_visibility", anEventTimelineItem(content = StateContent("", OtherState.RoomHistoryVisibility))), |
||||
MatrixTimelineItem.Event("m.room.join_rules", anEventTimelineItem(content = StateContent("", OtherState.RoomJoinRules))), |
||||
MatrixTimelineItem.Event("m.room.pinned_events", anEventTimelineItem(content = StateContent("", OtherState.RoomPinnedEvents))), |
||||
MatrixTimelineItem.Event("m.room.power_levels", anEventTimelineItem(content = StateContent("", OtherState.RoomPowerLevels))), |
||||
MatrixTimelineItem.Event("m.room.server_acl", anEventTimelineItem(content = StateContent("", OtherState.RoomServerAcl))), |
||||
MatrixTimelineItem.Event("m.room.tombstone", anEventTimelineItem(content = StateContent("", OtherState.RoomTombstone))), |
||||
MatrixTimelineItem.Event("m.space.child", anEventTimelineItem(content = StateContent("", OtherState.SpaceChild))), |
||||
MatrixTimelineItem.Event("m.space.parent", anEventTimelineItem(content = StateContent("", OtherState.SpaceParent))), |
||||
MatrixTimelineItem.Event("m.room.policy.rule.room", anEventTimelineItem(content = StateContent("", OtherState.PolicyRuleRoom))), |
||||
MatrixTimelineItem.Event("m.room.policy.rule.server", anEventTimelineItem(content = StateContent("", OtherState.PolicyRuleServer))), |
||||
MatrixTimelineItem.Event("m.room.policy.rule.user", anEventTimelineItem(content = StateContent("", OtherState.PolicyRuleUser))), |
||||
) |
||||
|
||||
val expected = listOf( |
||||
MatrixTimelineItem.Other, |
||||
MatrixTimelineItem.Virtual("virtual", VirtualTimelineItem.ReadMarker), |
||||
MatrixTimelineItem.Event("event", anEventTimelineItem()), |
||||
MatrixTimelineItem.Event("m.room.avatar", anEventTimelineItem(content = StateContent("", OtherState.RoomAvatar("")))), |
||||
MatrixTimelineItem.Event("m.room.create", anEventTimelineItem(content = StateContent("", OtherState.RoomCreate))), |
||||
MatrixTimelineItem.Event("m.room.encrypted", anEventTimelineItem(content = StateContent("", OtherState.RoomEncryption))), |
||||
MatrixTimelineItem.Event("m.room.name", anEventTimelineItem(content = StateContent("", OtherState.RoomName("")))), |
||||
MatrixTimelineItem.Event("m.room.third_party_invite", anEventTimelineItem(content = StateContent("", OtherState.RoomThirdPartyInvite("")))), |
||||
MatrixTimelineItem.Event("m.room.topic", anEventTimelineItem(content = StateContent("", OtherState.RoomTopic("")))), |
||||
MatrixTimelineItem.Event("m.room.custom", anEventTimelineItem(content = StateContent("", OtherState.Custom("")))), |
||||
) |
||||
|
||||
val processor = FilterHiddenStateEventsProcessor() |
||||
|
||||
assertThat(processor.process(items)).isEqualTo(expected) |
||||
} |
||||
} |
Loading…
Reference in new issue