mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
33 lines
734 B
Swift
33 lines
734 B
Swift
import Combine
|
|
import SwiftUI
|
|
|
|
class AppState: ObservableObject {
|
|
@Published
|
|
var router: Router
|
|
|
|
@Published
|
|
var unreadChannelMessages: Int
|
|
|
|
@Published
|
|
var unreadDirectMessages: Int
|
|
|
|
var totalUnreadMessages: Int {
|
|
unreadChannelMessages + unreadDirectMessages
|
|
}
|
|
|
|
private var cancellables: Set<AnyCancellable> = []
|
|
|
|
init(router: Router) {
|
|
self.router = router
|
|
self.unreadChannelMessages = 0
|
|
self.unreadDirectMessages = 0
|
|
|
|
// Keep app icon badge count in sync with messages read status
|
|
$unreadChannelMessages.combineLatest($unreadDirectMessages)
|
|
.sink(receiveValue: { badgeCounts in
|
|
UNUserNotificationCenter.current()
|
|
.setBadgeCount(badgeCounts.0 + badgeCounts.1)
|
|
})
|
|
.store(in: &cancellables)
|
|
}
|
|
}
|