cheogram-android

created pr with cheogram-android/offline-nick.1 on 2026-11-07T18:07:04Z · by 9e834e0d
commented on 2026-11-09T15:11:28Z · by 3c31bc8c
lgtm
cmds
checkout latest patchset:
ssh pr.pico.sh pull cheogram-android:offline-nick | git am -3
checkout specific patchset revision:
ssh pr.pico.sh pull cheogram-android:offline-nick [rev] | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh cheogram-android:offline-nick
add comment to patch request:
ssh pr.pico.sh comment cheogram-android:offline-nick "lgtm!"

Patchset cheogram-android/offline-nick.1 on 2026-11-07T18:07:04Z · commit 93b7488

Offline user still needs to know nick
Stephen Paul Weber 2026-11-07T18:05:02Z
Even if it forgets resource
Semantic diff summary
0 added, 0 modified, 0 signature changed, 0 removed across 0 analyzed files (2 files skipped: unsupported file type)
+1 -1 src/main/java/eu/siacs/conversations/entities/MucOptions.java #
......@@ -1181,7 +1181,7 @@ public class MucOptions {
11811181 null,
11821182 this.realJid,
11831183 this.occupantId,
1184- this.nick,
1184+ getNick(),
11851185 Role.NONE,
11861186 this.affiliation,
11871187 this.hats);
+25 -0 src/test/java/eu/siacs/conversations/entities/MucOptionsTest.java #
......@@ -88,6 +88,31 @@ public class MucOptionsTest {
8888 Assert.assertEquals("cachedAvatar", cachedUser.getAvatar());
8989 }
9090
91+ @Test
92+ public void testOfflineUserPreservesNickFromResource() throws Exception {
93+ final var realJid = Jid.ofLocalAndDomain("anonUser", "example.org");
94+ // Roster.getContact() creates a placeholder whose display name is the JID's local part.
95+ final var placeholderContact = mock(Contact.class);
96+ when(placeholderContact.getDisplayName()).thenReturn("anonUser");
97+ when(conversation.getAccount().getRoster().getContact(realJid))
98+ .thenReturn(placeholderContact);
99+ final var user = new MucOptions.User(
100+ mucOptions,
101+ Jid.of("testMuc@example.org/testNick"),
102+ realJid,
103+ null,
104+ null,
105+ im.conversations.android.xmpp.model.muc.Role.NONE,
106+ im.conversations.android.xmpp.model.muc.Affiliation.NONE,
107+ new HashSet<>()
108+ );
109+
110+ final var offlineUser = user.asOfflineUser();
111+
112+ Assert.assertEquals("testNick", offlineUser.getNick());
113+ Assert.assertEquals("testNick", offlineUser.getDisplayName());
114+ }
115+
91116 @Test
92117 public void testOfflineUserUsesContactNameWhenInContactList() throws Exception {
93118 final var realJid = Jid.ofLocalAndDomain("realUser", "example.org");
Back to top