mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-24 23:25:19 +00:00
remove system messages for connect / disconnect (#241)
* remove system messages for connect / disconnect * fix tests
This commit is contained in:
@@ -109,14 +109,6 @@ class BluetoothMeshService(private val context: Context) {
|
||||
private fun setupDelegates() {
|
||||
// PeerManager delegates to main mesh service delegate
|
||||
peerManager.delegate = object : PeerManagerDelegate {
|
||||
override fun onPeerConnected(nickname: String) {
|
||||
delegate?.didConnectToPeer(nickname)
|
||||
}
|
||||
|
||||
override fun onPeerDisconnected(nickname: String) {
|
||||
delegate?.didDisconnectFromPeer(nickname)
|
||||
}
|
||||
|
||||
override fun onPeerListUpdated(peerIDs: List<String>) {
|
||||
delegate?.didUpdatePeerList(peerIDs)
|
||||
}
|
||||
@@ -291,10 +283,6 @@ class BluetoothMeshService(private val context: Context) {
|
||||
delegate?.didReceiveChannelLeave(channel, fromPeer)
|
||||
}
|
||||
|
||||
override fun onPeerDisconnected(nickname: String) {
|
||||
delegate?.didDisconnectFromPeer(nickname)
|
||||
}
|
||||
|
||||
override fun onDeliveryAckReceived(ack: DeliveryAck) {
|
||||
delegate?.didReceiveDeliveryAck(ack)
|
||||
}
|
||||
@@ -1020,8 +1008,6 @@ class BluetoothMeshService(private val context: Context) {
|
||||
*/
|
||||
interface BluetoothMeshDelegate {
|
||||
fun didReceiveMessage(message: BitchatMessage)
|
||||
fun didConnectToPeer(peerID: String)
|
||||
fun didDisconnectFromPeer(peerID: String)
|
||||
fun didUpdatePeerList(peers: List<String>)
|
||||
fun didReceiveChannelLeave(channel: String, fromPeer: String)
|
||||
fun didReceiveDeliveryAck(ack: DeliveryAck)
|
||||
|
||||
@@ -295,11 +295,7 @@ class MessageHandler(private val myPeerID: String) {
|
||||
delegate?.onChannelLeave(content, peerID)
|
||||
} else {
|
||||
// Peer disconnect
|
||||
val nickname = delegate?.getPeerNickname(peerID)
|
||||
delegate?.removePeer(peerID)
|
||||
if (nickname != null) {
|
||||
delegate?.onPeerDisconnected(nickname)
|
||||
}
|
||||
}
|
||||
|
||||
// Leave message relay is now handled by centralized PacketRelayManager
|
||||
@@ -406,7 +402,6 @@ interface MessageHandlerDelegate {
|
||||
// Callbacks
|
||||
fun onMessageReceived(message: BitchatMessage)
|
||||
fun onChannelLeave(channel: String, fromPeer: String)
|
||||
fun onPeerDisconnected(nickname: String)
|
||||
fun onDeliveryAckReceived(ack: DeliveryAck)
|
||||
fun onReadReceiptReceived(receipt: ReadReceipt)
|
||||
}
|
||||
|
||||
@@ -193,7 +193,6 @@ class PeerFingerprintManager private constructor() {
|
||||
val count = peerIDToFingerprint.size
|
||||
peerIDToFingerprint.clear()
|
||||
fingerprintToPeerID.clear()
|
||||
Log.d(TAG, "Cleared all fingerprint mappings ($count entries)")
|
||||
}
|
||||
|
||||
// MARK: - Utility Functions
|
||||
|
||||
@@ -82,7 +82,6 @@ class PeerManager {
|
||||
// Handle first announcement
|
||||
if (isFirstAnnounce) {
|
||||
announcedPeers.add(peerID)
|
||||
delegate?.onPeerConnected(nickname)
|
||||
notifyPeerListUpdate()
|
||||
return true
|
||||
}
|
||||
@@ -104,7 +103,6 @@ class PeerManager {
|
||||
fingerprintManager.removePeer(peerID)
|
||||
|
||||
if (notifyDelegate && nickname != null) {
|
||||
delegate?.onPeerDisconnected(nickname)
|
||||
notifyPeerListUpdate()
|
||||
}
|
||||
}
|
||||
@@ -366,7 +364,5 @@ class PeerManager {
|
||||
* Delegate interface for peer manager callbacks
|
||||
*/
|
||||
interface PeerManagerDelegate {
|
||||
fun onPeerConnected(nickname: String)
|
||||
fun onPeerDisconnected(nickname: String)
|
||||
fun onPeerListUpdated(peerIDs: List<String>)
|
||||
}
|
||||
|
||||
@@ -376,14 +376,6 @@ class ChatViewModel(
|
||||
meshDelegateHandler.didReceiveMessage(message)
|
||||
}
|
||||
|
||||
override fun didConnectToPeer(peerID: String) {
|
||||
meshDelegateHandler.didConnectToPeer(peerID)
|
||||
}
|
||||
|
||||
override fun didDisconnectFromPeer(peerID: String) {
|
||||
meshDelegateHandler.didDisconnectFromPeer(peerID)
|
||||
}
|
||||
|
||||
override fun didUpdatePeerList(peers: List<String>) {
|
||||
meshDelegateHandler.didUpdatePeerList(peers)
|
||||
}
|
||||
|
||||
@@ -80,40 +80,6 @@ class MeshDelegateHandler(
|
||||
}
|
||||
}
|
||||
|
||||
override fun didConnectToPeer(peerID: String) {
|
||||
coroutineScope.launch {
|
||||
// FIXED: Deduplicate connection events from dual connection paths
|
||||
if (messageManager.isDuplicateSystemEvent("connect", peerID)) {
|
||||
return@launch
|
||||
}
|
||||
|
||||
val systemMessage = BitchatMessage(
|
||||
sender = "system",
|
||||
content = "$peerID connected",
|
||||
timestamp = Date(),
|
||||
isRelay = false
|
||||
)
|
||||
messageManager.addMessage(systemMessage)
|
||||
}
|
||||
}
|
||||
|
||||
override fun didDisconnectFromPeer(peerID: String) {
|
||||
coroutineScope.launch {
|
||||
// FIXED: Deduplicate disconnection events from dual connection paths
|
||||
if (messageManager.isDuplicateSystemEvent("disconnect", peerID)) {
|
||||
return@launch
|
||||
}
|
||||
|
||||
val systemMessage = BitchatMessage(
|
||||
sender = "system",
|
||||
content = "$peerID disconnected",
|
||||
timestamp = Date(),
|
||||
isRelay = false
|
||||
)
|
||||
messageManager.addMessage(systemMessage)
|
||||
}
|
||||
}
|
||||
|
||||
override fun didUpdatePeerList(peers: List<String>) {
|
||||
coroutineScope.launch {
|
||||
state.setConnectedPeers(peers)
|
||||
|
||||
Reference in New Issue
Block a user