Throw out any time that is off by more than 10 seconds in either direction and use now for message timestamp

This commit is contained in:
Garth Vander Houwen 2024-08-08 19:17:05 -07:00
parent 64c69abf44
commit ee2313ff0d
6 changed files with 10 additions and 4 deletions

View file

@ -14,7 +14,7 @@ extension ChannelEntity {
let context = PersistenceController.shared.container.viewContext
let fetchRequest = MessageEntity.fetchRequest()
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "messageTimestamp", ascending: true)]
fetchRequest.predicate = NSPredicate(format: "channel == %ld AND toUser == nil AND isEmoji == false", self.index)
fetchRequest.predicate = NSPredicate(format: "channel == %ld AND toUser == nil AND isEmoji == false", self.index)
return (try? context.fetch(fetchRequest)) ?? [MessageEntity]()
}

View file

@ -22,6 +22,7 @@ extension MyInfoEntity {
let unreadMessages = messageList.filter { ($0 as AnyObject).read == false && ($0 as AnyObject).isEmoji == false }
return unreadMessages.count
}
var hasAdmin: Bool {
let adminChannel = channels?.filter { ($0 as AnyObject).name?.lowercased() == "admin" }
return adminChannel?.count ?? 0 > 0

View file

@ -808,7 +808,12 @@ func textMessageAppPacket(
let fetchedUsers = try context.fetch(messageUsers)
let newMessage = MessageEntity(context: context)
newMessage.messageId = Int64(packet.id)
newMessage.messageTimestamp = Int32(bitPattern: packet.rxTime)
/// For message display if the rx time is off by more than 20 seconds set the timestamp to now to assist sorting
if Date().timeIntervalSince1970 < Double(packet.rxTime - 10000) || Date().timeIntervalSince1970 > Double(packet.rxTime + 10000) {
newMessage.messageTimestamp = Int32(Date().timeIntervalSince1970)
} else {
newMessage.messageTimestamp = Int32(bitPattern: packet.rxTime)
}
newMessage.receivedACK = false
newMessage.snr = packet.rxSnr
newMessage.rssi = packet.rxRssi

View file

@ -8,7 +8,7 @@ import SwiftUI
struct ContentView: View {
@ObservedObject
var appState: AppState
@ObservedObject
var router: Router

View file

@ -37,7 +37,6 @@ struct NodeList: View {
@State private var isPresentingDeleteNodeAlert = false
@State private var deleteNodeId: Int64 = 0
var boolFilters: [Bool] {[
isOnline,
isFavorite,

View file

@ -58,6 +58,7 @@ struct Routes: View {
}
do {
guard let fileContent = String(data: try Data(contentsOf: selectedFile), encoding: .utf8) else { return }
let routeName = selectedFile.lastPathComponent.dropLast(4)
let lines = fileContent.components(separatedBy: "\n")