mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-24 23:25:19 +00:00
fix timestamps
This commit is contained in:
@@ -88,12 +88,12 @@ class MessageHandler(private val myPeerID: String) {
|
||||
return
|
||||
}
|
||||
|
||||
// Create BitchatMessage - use local system time for incoming messages
|
||||
// Create BitchatMessage - preserve source packet timestamp
|
||||
val message = BitchatMessage(
|
||||
id = privateMessage.messageID,
|
||||
sender = delegate?.getPeerNickname(peerID) ?: "Unknown",
|
||||
content = privateMessage.content,
|
||||
timestamp = java.util.Date(), // Use local system time instead of packet timestamp
|
||||
timestamp = java.util.Date(packet.timestamp.toLong()),
|
||||
isRelay = false,
|
||||
originalSender = null,
|
||||
isPrivate = true,
|
||||
@@ -343,7 +343,7 @@ class MessageHandler(private val myPeerID: String) {
|
||||
sender = delegate?.getPeerNickname(peerID) ?: "unknown",
|
||||
content = String(packet.payload, Charsets.UTF_8),
|
||||
senderPeerID = peerID,
|
||||
timestamp = Date()
|
||||
timestamp = Date(packet.timestamp.toLong())
|
||||
)
|
||||
|
||||
delegate?.onMessageReceived(message)
|
||||
@@ -369,7 +369,7 @@ class MessageHandler(private val myPeerID: String) {
|
||||
sender = delegate?.getPeerNickname(peerID) ?: "unknown",
|
||||
content = String(packet.payload, Charsets.UTF_8),
|
||||
senderPeerID = peerID,
|
||||
timestamp = Date()
|
||||
timestamp = Date(packet.timestamp.toLong())
|
||||
)
|
||||
delegate?.onMessageReceived(message)
|
||||
|
||||
|
||||
@@ -680,7 +680,6 @@ class NostrGeohashService(
|
||||
private fun storeGeohashMessage(geohash: String, message: BitchatMessage) {
|
||||
val messages = geohashMessageHistory.getOrPut(geohash) { mutableListOf() }
|
||||
messages.add(message)
|
||||
messages.sortBy { it.timestamp }
|
||||
|
||||
// Limit message history to prevent memory issues
|
||||
if (messages.size > maxGeohashMessages) {
|
||||
@@ -1234,8 +1233,8 @@ class NostrGeohashService(
|
||||
val senderName = displayNameForNostrPubkeyUI(event.pubkey)
|
||||
val content = event.content
|
||||
|
||||
// Use local time instead of Nostr event time for consistent message ordering
|
||||
val messageTimestamp = Date()
|
||||
// Preserve Nostr event time to avoid reordering
|
||||
val messageTimestamp = Date(event.createdAt.toLong() * 1000L)
|
||||
// Note: mentions parsing needs peer nicknames parameter
|
||||
// val mentions = messageManager.parseMentions(content, peerNicknames, nickname)
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ object ConversationAliasResolver {
|
||||
}
|
||||
}
|
||||
if (didMerge) {
|
||||
targetList.sortBy { it.timestamp }
|
||||
// Preserve arrival order; do not sort by timestamp
|
||||
currentChats[targetPeerID] = targetList
|
||||
state.setPrivateChats(currentChats)
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ class MessageManager(private val state: ChatState) {
|
||||
fun addMessage(message: BitchatMessage) {
|
||||
val currentMessages = state.getMessagesValue().toMutableList()
|
||||
currentMessages.add(message)
|
||||
currentMessages.sortBy { it.timestamp }
|
||||
state.setMessages(currentMessages)
|
||||
}
|
||||
|
||||
@@ -39,7 +38,6 @@ class MessageManager(private val state: ChatState) {
|
||||
|
||||
val channelMessageList = currentChannelMessages[channel]?.toMutableList() ?: mutableListOf()
|
||||
channelMessageList.add(message)
|
||||
channelMessageList.sortBy { it.timestamp }
|
||||
currentChannelMessages[channel] = channelMessageList
|
||||
state.setChannelMessages(currentChannelMessages)
|
||||
|
||||
@@ -83,7 +81,6 @@ class MessageManager(private val state: ChatState) {
|
||||
|
||||
val chatMessages = currentPrivateChats[peerID]?.toMutableList() ?: mutableListOf()
|
||||
chatMessages.add(message)
|
||||
chatMessages.sortBy { it.timestamp }
|
||||
currentPrivateChats[peerID] = chatMessages
|
||||
state.setPrivateChats(currentPrivateChats)
|
||||
|
||||
@@ -103,7 +100,6 @@ class MessageManager(private val state: ChatState) {
|
||||
}
|
||||
val chatMessages = currentPrivateChats[peerID]?.toMutableList() ?: mutableListOf()
|
||||
chatMessages.add(message)
|
||||
chatMessages.sortBy { it.timestamp }
|
||||
currentPrivateChats[peerID] = chatMessages
|
||||
state.setPrivateChats(currentPrivateChats)
|
||||
}
|
||||
|
||||
@@ -501,7 +501,6 @@ class PrivateChatManager(
|
||||
}
|
||||
|
||||
if (didMerge) {
|
||||
targetList.sortBy { it.timestamp }
|
||||
currentChats[targetPeerID] = targetList
|
||||
state.setPrivateChats(currentChats)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user