kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
feat: show names with a lock for DMs using PKC
rodzic
7e1ab62568
commit
2433cbc00a
|
@ -167,6 +167,9 @@ data class DataPacket(
|
||||||
/// special broadcast address
|
/// special broadcast address
|
||||||
const val NODENUM_BROADCAST = (0xffffffff).toInt()
|
const val NODENUM_BROADCAST = (0xffffffff).toInt()
|
||||||
|
|
||||||
|
// Public-key cryptography (PKC) channel index
|
||||||
|
const val PKC_CHANNEL_INDEX = 8
|
||||||
|
|
||||||
fun nodeNumToDefaultId(n: Int): String = "!%08x".format(n)
|
fun nodeNumToDefaultId(n: Int): String = "!%08x".format(n)
|
||||||
fun idToDefaultNodeNum(id: String?): Int? = id?.toLong(16)?.toInt()
|
fun idToDefaultNodeNum(id: String?): Int? = id?.toLong(16)?.toInt()
|
||||||
|
|
||||||
|
|
|
@ -533,7 +533,7 @@ class MeshService : Service(), Logging {
|
||||||
dataType = data.portnumValue,
|
dataType = data.portnumValue,
|
||||||
bytes = data.payload.toByteArray(),
|
bytes = data.payload.toByteArray(),
|
||||||
hopLimit = packet.hopLimit,
|
hopLimit = packet.hopLimit,
|
||||||
channel = packet.channel,
|
channel = if (packet.pkiEncrypted) DataPacket.PKC_CHANNEL_INDEX else packet.channel,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import androidx.lifecycle.asLiveData
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.repeatOnLifecycle
|
import androidx.lifecycle.repeatOnLifecycle
|
||||||
|
import com.geeksville.mesh.DataPacket
|
||||||
import com.geeksville.mesh.android.Logging
|
import com.geeksville.mesh.android.Logging
|
||||||
import com.geeksville.mesh.R
|
import com.geeksville.mesh.R
|
||||||
import com.geeksville.mesh.database.entity.QuickChatAction
|
import com.geeksville.mesh.database.entity.QuickChatAction
|
||||||
|
@ -121,10 +122,12 @@ class MessagesFragment : Fragment(), Logging {
|
||||||
contactKey = arguments?.getString("contactKey").toString()
|
contactKey = arguments?.getString("contactKey").toString()
|
||||||
val contactName = arguments?.getString("contactName").toString()
|
val contactName = arguments?.getString("contactName").toString()
|
||||||
binding.toolbar.title = contactName
|
binding.toolbar.title = contactName
|
||||||
if (contactKey[1] == '!') {
|
val channelNumber = contactKey[0].digitToIntOrNull()
|
||||||
|
if (channelNumber == DataPacket.PKC_CHANNEL_INDEX) {
|
||||||
|
binding.toolbar.title = "$contactName🔒"
|
||||||
|
} else if (channelNumber != null && contactKey.substring(1) != DataPacket.ID_BROADCAST) {
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||||
val channelNumber = contactKey[0].digitToInt()
|
|
||||||
model.channels.collect { channels ->
|
model.channels.collect { channels ->
|
||||||
val channelName =
|
val channelName =
|
||||||
channels.getChannel(channelNumber)?.name ?: "Unknown Channel"
|
channels.getChannel(channelNumber)?.name ?: "Unknown Channel"
|
||||||
|
|
Ładowanie…
Reference in New Issue