mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 02:05:20 +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() {
|
private fun setupDelegates() {
|
||||||
// PeerManager delegates to main mesh service delegate
|
// PeerManager delegates to main mesh service delegate
|
||||||
peerManager.delegate = object : PeerManagerDelegate {
|
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>) {
|
override fun onPeerListUpdated(peerIDs: List<String>) {
|
||||||
delegate?.didUpdatePeerList(peerIDs)
|
delegate?.didUpdatePeerList(peerIDs)
|
||||||
}
|
}
|
||||||
@@ -291,10 +283,6 @@ class BluetoothMeshService(private val context: Context) {
|
|||||||
delegate?.didReceiveChannelLeave(channel, fromPeer)
|
delegate?.didReceiveChannelLeave(channel, fromPeer)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPeerDisconnected(nickname: String) {
|
|
||||||
delegate?.didDisconnectFromPeer(nickname)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDeliveryAckReceived(ack: DeliveryAck) {
|
override fun onDeliveryAckReceived(ack: DeliveryAck) {
|
||||||
delegate?.didReceiveDeliveryAck(ack)
|
delegate?.didReceiveDeliveryAck(ack)
|
||||||
}
|
}
|
||||||
@@ -1020,8 +1008,6 @@ class BluetoothMeshService(private val context: Context) {
|
|||||||
*/
|
*/
|
||||||
interface BluetoothMeshDelegate {
|
interface BluetoothMeshDelegate {
|
||||||
fun didReceiveMessage(message: BitchatMessage)
|
fun didReceiveMessage(message: BitchatMessage)
|
||||||
fun didConnectToPeer(peerID: String)
|
|
||||||
fun didDisconnectFromPeer(peerID: String)
|
|
||||||
fun didUpdatePeerList(peers: List<String>)
|
fun didUpdatePeerList(peers: List<String>)
|
||||||
fun didReceiveChannelLeave(channel: String, fromPeer: String)
|
fun didReceiveChannelLeave(channel: String, fromPeer: String)
|
||||||
fun didReceiveDeliveryAck(ack: DeliveryAck)
|
fun didReceiveDeliveryAck(ack: DeliveryAck)
|
||||||
|
|||||||
@@ -295,11 +295,7 @@ class MessageHandler(private val myPeerID: String) {
|
|||||||
delegate?.onChannelLeave(content, peerID)
|
delegate?.onChannelLeave(content, peerID)
|
||||||
} else {
|
} else {
|
||||||
// Peer disconnect
|
// Peer disconnect
|
||||||
val nickname = delegate?.getPeerNickname(peerID)
|
|
||||||
delegate?.removePeer(peerID)
|
delegate?.removePeer(peerID)
|
||||||
if (nickname != null) {
|
|
||||||
delegate?.onPeerDisconnected(nickname)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leave message relay is now handled by centralized PacketRelayManager
|
// Leave message relay is now handled by centralized PacketRelayManager
|
||||||
@@ -406,7 +402,6 @@ interface MessageHandlerDelegate {
|
|||||||
// Callbacks
|
// Callbacks
|
||||||
fun onMessageReceived(message: BitchatMessage)
|
fun onMessageReceived(message: BitchatMessage)
|
||||||
fun onChannelLeave(channel: String, fromPeer: String)
|
fun onChannelLeave(channel: String, fromPeer: String)
|
||||||
fun onPeerDisconnected(nickname: String)
|
|
||||||
fun onDeliveryAckReceived(ack: DeliveryAck)
|
fun onDeliveryAckReceived(ack: DeliveryAck)
|
||||||
fun onReadReceiptReceived(receipt: ReadReceipt)
|
fun onReadReceiptReceived(receipt: ReadReceipt)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -193,7 +193,6 @@ class PeerFingerprintManager private constructor() {
|
|||||||
val count = peerIDToFingerprint.size
|
val count = peerIDToFingerprint.size
|
||||||
peerIDToFingerprint.clear()
|
peerIDToFingerprint.clear()
|
||||||
fingerprintToPeerID.clear()
|
fingerprintToPeerID.clear()
|
||||||
Log.d(TAG, "Cleared all fingerprint mappings ($count entries)")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Utility Functions
|
// MARK: - Utility Functions
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ class PeerManager {
|
|||||||
// Handle first announcement
|
// Handle first announcement
|
||||||
if (isFirstAnnounce) {
|
if (isFirstAnnounce) {
|
||||||
announcedPeers.add(peerID)
|
announcedPeers.add(peerID)
|
||||||
delegate?.onPeerConnected(nickname)
|
|
||||||
notifyPeerListUpdate()
|
notifyPeerListUpdate()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -104,7 +103,6 @@ class PeerManager {
|
|||||||
fingerprintManager.removePeer(peerID)
|
fingerprintManager.removePeer(peerID)
|
||||||
|
|
||||||
if (notifyDelegate && nickname != null) {
|
if (notifyDelegate && nickname != null) {
|
||||||
delegate?.onPeerDisconnected(nickname)
|
|
||||||
notifyPeerListUpdate()
|
notifyPeerListUpdate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -366,7 +364,5 @@ class PeerManager {
|
|||||||
* Delegate interface for peer manager callbacks
|
* Delegate interface for peer manager callbacks
|
||||||
*/
|
*/
|
||||||
interface PeerManagerDelegate {
|
interface PeerManagerDelegate {
|
||||||
fun onPeerConnected(nickname: String)
|
|
||||||
fun onPeerDisconnected(nickname: String)
|
|
||||||
fun onPeerListUpdated(peerIDs: List<String>)
|
fun onPeerListUpdated(peerIDs: List<String>)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -376,14 +376,6 @@ class ChatViewModel(
|
|||||||
meshDelegateHandler.didReceiveMessage(message)
|
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>) {
|
override fun didUpdatePeerList(peers: List<String>) {
|
||||||
meshDelegateHandler.didUpdatePeerList(peers)
|
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>) {
|
override fun didUpdatePeerList(peers: List<String>) {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
state.setConnectedPeers(peers)
|
state.setConnectedPeers(peers)
|
||||||
|
|||||||
Reference in New Issue
Block a user