2023-09-03 10:00:12 -07:00
|
|
|
//
|
|
|
|
|
// MyInfoEntityExtension.swift
|
|
|
|
|
// Meshtastic
|
|
|
|
|
//
|
|
|
|
|
// Copyright(c) Garth Vander Houwen 9/3/23.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
|
|
|
|
|
extension MyInfoEntity {
|
2024-05-29 16:40:07 -05:00
|
|
|
|
2023-09-03 10:00:12 -07:00
|
|
|
var messageList: [MessageEntity] {
|
2024-07-23 19:10:00 -07:00
|
|
|
let context = PersistenceController.shared.container.viewContext
|
|
|
|
|
let fetchRequest = MessageEntity.fetchRequest()
|
2024-08-03 07:02:51 -07:00
|
|
|
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "messageTimestamp", ascending: true)]
|
2024-07-23 19:10:00 -07:00
|
|
|
fetchRequest.predicate = NSPredicate(format: "toUser == nil")
|
|
|
|
|
|
|
|
|
|
return (try? context.fetch(fetchRequest)) ?? [MessageEntity]()
|
2023-09-03 10:00:12 -07:00
|
|
|
}
|
2024-05-29 16:40:07 -05:00
|
|
|
|
2023-09-03 10:00:12 -07:00
|
|
|
var unreadMessages: Int {
|
2024-05-29 16:40:07 -05:00
|
|
|
let unreadMessages = messageList.filter { ($0 as AnyObject).read == false && ($0 as AnyObject).isEmoji == false }
|
2023-09-03 10:00:12 -07:00
|
|
|
return unreadMessages.count
|
|
|
|
|
}
|
2024-08-08 19:17:05 -07:00
|
|
|
|
2024-04-15 17:31:53 -07:00
|
|
|
var hasAdmin: Bool {
|
2024-05-29 16:40:07 -05:00
|
|
|
let adminChannel = channels?.filter { ($0 as AnyObject).name?.lowercased() == "admin" }
|
2024-04-15 17:31:53 -07:00
|
|
|
return adminChannel?.count ?? 0 > 0
|
|
|
|
|
}
|
2023-09-03 10:00:12 -07:00
|
|
|
}
|