Merge pull request #2112 from element-hq/feature/bma/renderStateWithoutChanges

Handle `MembershipChange.NONE` rendering in the timeline #2102
This commit is contained in:
Benoit Marty 2023-12-28 12:39:05 +01:00 committed by GitHub
commit aad7e836d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 2 deletions

1
changelog.d/2102.misc Normal file
View file

@ -0,0 +1 @@
Handle `MembershipChange.NONE` rendering in the timeline.

View file

@ -104,7 +104,20 @@ class RoomMembershipContentFormatter @Inject constructor(
} else {
sp.getString(R.string.state_event_room_knock_denied, senderDisplayName, userId.value)
}
else -> {
MembershipChange.NONE -> if (senderIsYou) {
sp.getString(R.string.state_event_room_none_by_you)
} else {
sp.getString(R.string.state_event_room_none, senderDisplayName)
}
MembershipChange.ERROR -> {
Timber.v("Filtering timeline item for room membership: $membershipContent")
null
}
MembershipChange.NOT_IMPLEMENTED -> {
Timber.v("Filtering timeline item for room membership: $membershipContent")
null
}
null -> {
Timber.v("Filtering timeline item for room membership: $membershipContent")
null
}

View file

@ -39,6 +39,8 @@
<string name="state_event_room_name_changed_by_you">"You changed the room name to: %1$s"</string>
<string name="state_event_room_name_removed">"%1$s removed the room name"</string>
<string name="state_event_room_name_removed_by_you">"You removed the room name"</string>
<string name="state_event_room_none">"%1$s made no changes"</string>
<string name="state_event_room_none_by_you">"You made no changes"</string>
<string name="state_event_room_reject">"%1$s rejected the invitation"</string>
<string name="state_event_room_reject_by_you">"You rejected the invitation"</string>
<string name="state_event_room_remove">"%1$s removed %2$s"</string>

View file

@ -469,10 +469,26 @@ class DefaultRoomLastMessageFormatterTest {
assertThat(someoneDeniedYourKnock).isEqualTo("$otherName rejected your request to join")
}
@Test
@Config(qualifiers = "en")
fun `Membership change - None`() {
val otherName = "Someone"
val youContent = RoomMembershipContent(A_USER_ID, MembershipChange.NONE)
val someoneContent = RoomMembershipContent(UserId("@someone_else:domain"), MembershipChange.NONE)
val youNoneRoomEvent = createRoomEvent(sentByYou = true, senderDisplayName = null, content = youContent)
val youNoneRoom = formatter.format(youNoneRoomEvent, false)
assertThat(youNoneRoom).isEqualTo("You made no changes")
val someoneNoneRoomEvent = createRoomEvent(sentByYou = false, senderDisplayName = otherName, content = someoneContent)
val someoneNoneRoom = formatter.format(someoneNoneRoomEvent, false)
assertThat(someoneNoneRoom).isEqualTo("$otherName made no changes")
}
@Test
@Config(qualifiers = "en")
fun `Membership change - others`() {
val otherChanges = arrayOf(MembershipChange.NONE, MembershipChange.ERROR, MembershipChange.NOT_IMPLEMENTED)
val otherChanges = arrayOf(MembershipChange.ERROR, MembershipChange.NOT_IMPLEMENTED, null)
val results = otherChanges.map { change ->
val content = RoomMembershipContent(A_USER_ID, change)