mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Unread messages for private groups
This commit is contained in:
parent
b304b81d5f
commit
775898ebcd
4 changed files with 20 additions and 3 deletions
|
|
@ -12,4 +12,10 @@ extension ChannelEntity {
|
|||
|
||||
self.value(forKey: "allPrivateMessages") as? [MessageEntity] ?? [MessageEntity]()
|
||||
}
|
||||
|
||||
var unreadMessages: Int {
|
||||
|
||||
let unreadMessages = allPrivateMessages.filter{ ($0 as AnyObject).read == false }
|
||||
return unreadMessages.count
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,6 +226,18 @@ struct ChannelMessageList: View {
|
|||
}
|
||||
}, secondaryButton: .cancel())
|
||||
}
|
||||
.onAppear {
|
||||
if !message.read {
|
||||
message.read = true
|
||||
message.toUser?.objectWillChange.send()
|
||||
do {
|
||||
try context.save()
|
||||
print("Read message \(message.messageId) ")
|
||||
} catch {
|
||||
print("Failed to read message \(message.messageId)")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ struct Contacts: View {
|
|||
|
||||
ZStack {
|
||||
Image(systemName: "circle.fill")
|
||||
.opacity(channel.allPrivateMessages.count > 0 ? 1 : 0)
|
||||
.opacity(channel.unreadMessages > 0 ? 1 : 0)
|
||||
.font(.system(size: 10))
|
||||
.foregroundColor(.accentColor)
|
||||
.brightness(0.2)
|
||||
|
|
|
|||
|
|
@ -364,8 +364,7 @@ struct UserMessageList: View {
|
|||
.toolbar {
|
||||
ToolbarItem(placement: .principal) {
|
||||
HStack {
|
||||
CircleText(text: user.shortName ?? "???", color: Color(UIColor(hex: UInt32(user.num))), circleSize: 44, fontSize: 14, textColor: UIColor(hex: UInt32(user.num)).isLight() ? .black : .white ).fixedSize()
|
||||
Text(user.longName ?? "unknown".localized).font(.headline)
|
||||
CircleText(text: user.shortName ?? "???", color: Color(UIColor(hex: UInt32(user.num))), circleSize: 44, fontSize: (user.shortName ?? "???").isEmoji() ? 32 : (user.shortName?.count ?? 0 == 4 ? 14 : (user.shortName?.count ?? 0 == 3 ? 18 : 22)), brightness: 0.0, textColor: UIColor(hex: UInt32(user.num)).isLight() ? .black : .white)
|
||||
}
|
||||
}
|
||||
ToolbarItem(placement: .navigationBarTrailing) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue