Add local per-member radio mute controls on desktop and Android

This commit is contained in:
evgeny committed 2026-10-07 13:35:25 +02:00
1 parent a069d11ef9
commit 7e19cbaf3a
33 files changed
+735 -27

No files matched your search

@@ -0,0 +1,24 @@
package com.utun.chat.data
import org.junit.Assert.*
import org.junit.Test
import java.nio.ByteBuffer
import java.nio.ByteOrder
class MemberRadioMuteTest {
@Test fun muteUpdatesKeepRadioSubscriptionAndOtherProperties() {
val bytes = ByteArray(MEMBER_WIRE_SIZE)
ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).putLong(0, 42)
bytes[8] = 1; bytes[10] = 0x32
val previous = ChatMember(42, "Alice", isVerified = true, directUp = true, nodeType = 4)
val muted = requireNotNull(parseMemberWire(bytes)).toChatMember(previous)
assertTrue(muted.radioMuted); assertTrue(muted.radioActive); assertTrue(muted.isAdmin)
assertTrue(muted.isVerified); assertTrue(muted.directUp); assertEquals(4, muted.nodeType)
bytes[10] = 0x12
val listening = requireNotNull(parseMemberWire(bytes)).toChatMember(muted)
assertFalse(listening.radioMuted); assertTrue(listening.radioActive); assertTrue(listening.isVerified)
bytes[10] = 0x20
val offlineRadio = requireNotNull(parseMemberWire(bytes)).toChatMember(listening)
assertTrue(offlineRadio.radioMuted); assertFalse(offlineRadio.radioActive)
}
}