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

Move ReSwift stuff into extensions

This commit is contained in:
Daniel Barber 2019-04-27 18:06:34 -04:00
parent 81b0626017
commit 86feface73
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
4 changed files with 43 additions and 36 deletions

View File

@ -11,10 +11,9 @@ import ReSwift
import MediaKeyTap
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSubscriber {
typealias StoreSubscriberStateType = PlayerState
class AppDelegate: NSObject,
NSApplicationDelegate,
MediaKeyTapDelegate {
var preferences = Preferences()
var mediaKeyTap: MediaKeyTap?
@ -87,9 +86,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSu
AppDelegate.mpdClient.updateDatabase()
}
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
}
extension AppDelegate: StoreSubscriber {
typealias StoreSubscriberStateType = PlayerState
func newState(state: PlayerState) {
updateDatabaseMenuItem.isEnabled = !state.databaseUpdating
}
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
}

View File

@ -12,10 +12,7 @@ import Differ
class AlbumViewController: NSViewController,
NSCollectionViewDelegate,
NSCollectionViewDelegateFlowLayout,
StoreSubscriber {
typealias StoreSubscriberStateType = AlbumListState
NSCollectionViewDelegateFlowLayout {
var preferences = Preferences()
let paddingWidth: CGFloat = 40
@ -81,6 +78,13 @@ class AlbumViewController: NSViewController,
}
}
@IBOutlet var albumScrollView: NSScrollView!
@IBOutlet var albumCollectionView: NSCollectionView!
}
extension AlbumViewController: StoreSubscriber {
typealias StoreSubscriberStateType = AlbumListState
func newState(state: StoreSubscriberStateType) {
if dataSource.albums == [] {
dataSource.albums = state.albums
@ -94,7 +98,4 @@ class AlbumViewController: NSViewController,
)
}
}
@IBOutlet var albumScrollView: NSScrollView!
@IBOutlet var albumCollectionView: NSCollectionView!
}

View File

@ -10,10 +10,7 @@ import Cocoa
import ReSwift
class QueueViewController: NSViewController,
NSOutlineViewDelegate,
StoreSubscriber {
typealias StoreSubscriberStateType = QueueState
NSOutlineViewDelegate {
var dataSource = QueueDataSource()
@IBOutlet var queueView: NSOutlineView!
@ -37,12 +34,6 @@ class QueueViewController: NSViewController,
AppDelegate.store.unsubscribe(self)
}
func newState(state: StoreSubscriberStateType) {
dataSource.setQueueIcon()
queueView.reloadData()
updateAlbumArt(state)
}
override func keyDown(with event: NSEvent) {
switch event.keyCode {
@ -166,3 +157,13 @@ func cellForSongTitle(_ outlineView: NSOutlineView, with queueItem: QueueItem) -
return cellView
}
}
extension QueueViewController: StoreSubscriber {
typealias StoreSubscriberStateType = QueueState
func newState(state: StoreSubscriberStateType) {
dataSource.setQueueIcon()
queueView.reloadData()
updateAlbumArt(state)
}
}

View File

@ -9,9 +9,7 @@
import Cocoa
import ReSwift
class WindowController: NSWindowController, StoreSubscriber {
typealias StoreSubscriberStateType = PlayerState
class WindowController: NSWindowController {
enum TransportAction: Int {
case prevTrack, playPause, stop, nextTrack
}
@ -33,16 +31,6 @@ class WindowController: NSWindowController, StoreSubscriber {
trackRemaining.font = .timerFont
}
func newState(state: StoreSubscriberStateType) {
self.state = state.state
DispatchQueue.main.async {
self.setTransportControlState(state)
self.setTrackProgressControls(state)
self.setDatabaseUpdatingIndicator(state)
}
}
override func keyDown(with event: NSEvent) {
switch event.keyCode {
case NSEvent.keyCodeSpace:
@ -161,3 +149,17 @@ class WindowController: NSWindowController, StoreSubscriber {
@IBOutlet var trackRemaining: NSTextField!
@IBOutlet var databaseUpdatingIndicator: NSProgressIndicator!
}
extension WindowController: StoreSubscriber {
typealias StoreSubscriberStateType = PlayerState
func newState(state: StoreSubscriberStateType) {
self.state = state.state
DispatchQueue.main.async {
self.setTransportControlState(state)
self.setTrackProgressControls(state)
self.setDatabaseUpdatingIndicator(state)
}
}
}