wip: nickname disambiguation

This commit is contained in:
callebtc
2026-01-17 01:19:48 +07:00
parent e3056d70c0
commit a81bf4489d
10 changed files with 231 additions and 133 deletions
@@ -636,6 +636,10 @@ class BluetoothMeshService(private val context: Context) {
if (connectionManager.startServices()) {
isActive = true
// Add ourselves to peer manager for collision detection
val myNickname = try { com.bitchat.android.services.NicknameProvider.getNickname(context, myPeerID) } catch (_: Exception) { myPeerID }
peerManager.addOrUpdatePeer(myPeerID, myNickname)
// Start periodic announcements for peer discovery and connectivity
sendPeriodicBroadcastAnnounce()
Log.d(TAG, "Started periodic broadcast announcements (every 30 seconds)")
@@ -697,6 +701,14 @@ class BluetoothMeshService(private val context: Context) {
return reusable
}
/**
* Update our own nickname in peer manager and announce it
*/
fun updateSelfNickname(newNickname: String) {
peerManager.addOrUpdatePeer(myPeerID, newNickname)
sendBroadcastAnnounce()
}
/**
* Send public message
*/
@@ -1175,6 +1187,11 @@ class BluetoothMeshService(private val context: Context) {
* Get peer nicknames
*/
fun getPeerNicknames(): Map<String, String> = peerManager.getAllPeerNicknames()
/**
* Get disambiguated peer nickname (nickname#suffix if collisions exist)
*/
fun getDisambiguatedNickname(peerID: String): String = peerManager.getDisambiguatedNickname(peerID)
/**
* Get peer RSSI values