1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00

Touch the user notifications controller

Static lets are lazily initialised.
This commit is contained in:
Daniel Barber 2019-05-01 09:11:46 -04:00
parent 96bb9679ab
commit ef9f1e12c1
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
3 changed files with 5 additions and 19 deletions

View File

@ -10,9 +10,9 @@ import Foundation
import ReSwift
struct App {
static let store = Store<AppState>(reducer: appReducer, state: nil)
static let trackTimer = TrackTimer()
static let mpdClient = MPDClient(withDelegate: NotificationsController())
static let userNotificationsController = UserNotificationsController()
static let mpdServerController = MPDServerController()
static let mpdClient = MPDClient(withDelegate: NotificationsController())
static let trackTimer = TrackTimer()
static let store = Store<AppState>(reducer: appReducer, state: nil)
}

View File

@ -18,6 +18,7 @@ class AppDelegate: NSObject,
func applicationDidFinishLaunching(_ aNotification: Notification) {
App.mpdServerController.connect()
_ = App.userNotificationsController
mediaKeyTap = MediaKeyTap(delegate: self)
mediaKeyTap?.start()

View File

@ -9,17 +9,12 @@
import Foundation
class NotificationsController: MPDClientDelegate {
let notificationQueue = DispatchQueue.main
func didConnect(mpdClient: MPDClient) {
sendNotification(name: Notification.didConnect)
}
func didConnect(mpdClient: MPDClient) {}
func willDisconnect(mpdClient: MPDClient) {
DispatchQueue.main.async {
App.store.dispatch(UpdateAlbumListAction(albums: []))
}
sendNotification(name: Notification.willDisconnect)
}
func didUpdateStatus(mpdClient: MPDClient, status: MPDClient.MPDStatus) {
@ -57,14 +52,4 @@ class NotificationsController: MPDClientDelegate {
App.store.dispatch(UpdateAlbumListAction(albums: albums))
}
}
private func sendNotification(name: Notification.Name, userInfo: [AnyHashable : Any] = [:]) {
self.notificationQueue.async {
NotificationCenter.default.post(
name: name,
object: App.mpdClient,
userInfo: userInfo
)
}
}
}