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

Reimplement reset album art

This commit is contained in:
Daniel Barber 2019-04-27 17:00:04 -04:00
parent 40ae6909cd
commit 5f80a1b8e9
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
9 changed files with 34 additions and 15 deletions

View File

@ -98,6 +98,7 @@
E4B11BA92274EDE30075461B /* Loading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BA82274EDE30075461B /* Loading.swift */; }; E4B11BA92274EDE30075461B /* Loading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BA82274EDE30075461B /* Loading.swift */; };
E4B11BAD2274F2E80075461B /* UpdateAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */; }; E4B11BAD2274F2E80075461B /* UpdateAlbumArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */; };
E4B11BB02274F71A0075461B /* EnumEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BAF2274F71A0075461B /* EnumEquatable.swift */; }; E4B11BB02274F71A0075461B /* EnumEquatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BAF2274F71A0075461B /* EnumEquatable.swift */; };
E4B11BB22274F9520075461B /* ResetAlbumListArt.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BB12274F9520075461B /* ResetAlbumListArt.swift */; };
E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */; }; E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */; };
E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53D22349002009A20F3 /* MPDIdle.swift */; }; E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53D22349002009A20F3 /* MPDIdle.swift */; };
E4E8CC902204EC7F0024217A /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC8F2204EC7F0024217A /* Delegate.swift */; }; E4E8CC902204EC7F0024217A /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC8F2204EC7F0024217A /* Delegate.swift */; };
@ -287,6 +288,7 @@
E4B11BA82274EDE30075461B /* Loading.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Loading.swift; sourceTree = "<group>"; }; E4B11BA82274EDE30075461B /* Loading.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Loading.swift; sourceTree = "<group>"; };
E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateAlbumArt.swift; sourceTree = "<group>"; }; E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateAlbumArt.swift; sourceTree = "<group>"; };
E4B11BAF2274F71A0075461B /* EnumEquatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnumEquatable.swift; sourceTree = "<group>"; }; E4B11BAF2274F71A0075461B /* EnumEquatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnumEquatable.swift; sourceTree = "<group>"; };
E4B11BB12274F9520075461B /* ResetAlbumListArt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResetAlbumListArt.swift; sourceTree = "<group>"; };
E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; }; E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; };
E4C8B53D22349002009A20F3 /* MPDIdle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDIdle.swift; sourceTree = "<group>"; }; E4C8B53D22349002009A20F3 /* MPDIdle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDIdle.swift; sourceTree = "<group>"; };
E4E8CC8F2204EC7F0024217A /* Delegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; }; E4E8CC8F2204EC7F0024217A /* Delegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; };
@ -616,7 +618,7 @@
E4B11B76226CC6BE0075461B /* UpdateQueuePosAction.swift */, E4B11B76226CC6BE0075461B /* UpdateQueuePosAction.swift */,
E4B11B6E226A5C7A0075461B /* UpdateStatusAction.swift */, E4B11B6E226A5C7A0075461B /* UpdateStatusAction.swift */,
E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */, E4B11BAC2274F2E80075461B /* UpdateAlbumArt.swift */,
E4B11BAF2274F71A0075461B /* EnumEquatable.swift */, E4B11BB12274F9520075461B /* ResetAlbumListArt.swift */,
); );
path = Actions; path = Actions;
sourceTree = "<group>"; sourceTree = "<group>";
@ -624,6 +626,7 @@
E4B11BAE2274F7030075461B /* Protocols */ = { E4B11BAE2274F7030075461B /* Protocols */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
E4B11BAF2274F71A0075461B /* EnumEquatable.swift */,
); );
path = Protocols; path = Protocols;
sourceTree = "<group>"; sourceTree = "<group>";
@ -934,6 +937,7 @@
E41E5312223EF74A00173814 /* AlbumArtService+Filesystem.swift in Sources */, E41E5312223EF74A00173814 /* AlbumArtService+Filesystem.swift in Sources */,
E41E5301223BF99300173814 /* MPDClient+Queue.swift in Sources */, E41E5301223BF99300173814 /* MPDClient+Queue.swift in Sources */,
E4EB237B220F7CF1008C70C0 /* MPDAlbum.swift in Sources */, E4EB237B220F7CF1008C70C0 /* MPDAlbum.swift in Sources */,
E4B11BB22274F9520075461B /* ResetAlbumListArt.swift in Sources */,
E41E5303223BF9C300173814 /* MPDClient+Idle.swift in Sources */, E41E5303223BF9C300173814 /* MPDClient+Idle.swift in Sources */,
E4B11B53226928F20075461B /* AppState.swift in Sources */, E4B11B53226928F20075461B /* AppState.swift in Sources */,
E435E3E4221CD75D00184CFC /* NSImage.swift in Sources */, E435E3E4221CD75D00184CFC /* NSImage.swift in Sources */,

View File

@ -0,0 +1,11 @@
//
// ResetAlbumListArt.swift
// Persephone
//
// Created by Daniel Barber on 2019/4/27.
// Copyright © 2019 Dan Barber. All rights reserved.
//
import ReSwift
struct ResetAlbumListArt: Action {}

View File

@ -75,15 +75,13 @@ class AlbumViewController: NSViewController,
case "mpdLibraryDir": case "mpdLibraryDir":
albumCollectionView.reloadData() albumCollectionView.reloadData()
case "fetchMissingArtworkFromInternet": case "fetchMissingArtworkFromInternet":
// dataSource.resetCoverArt() AppDelegate.store.dispatch(ResetAlbumListArt())
albumCollectionView.reloadData()
default: default:
break break
} }
} }
func newState(state: StoreSubscriberStateType) { func newState(state: StoreSubscriberStateType) {
print("New album list state")
if dataSource.albums == [] { if dataSource.albums == [] {
dataSource.albums = state.albums dataSource.albums = state.albums
albumCollectionView.reloadData() albumCollectionView.reloadData()

View File

@ -49,7 +49,6 @@ class NotificationsController: MPDClientDelegate {
} }
func didLoadAlbums(mpdClient: MPDClient, albums: [MPDClient.MPDAlbum]) { func didLoadAlbums(mpdClient: MPDClient, albums: [MPDClient.MPDAlbum]) {
print("Albums")
DispatchQueue.main.async { DispatchQueue.main.async {
AppDelegate.store.dispatch(UpdateAlbumListAction(albums: albums)) AppDelegate.store.dispatch(UpdateAlbumListAction(albums: albums))
} }

View File

@ -39,7 +39,6 @@ class QueueViewController: NSViewController,
} }
func newState(state: StoreSubscriberStateType) { func newState(state: StoreSubscriberStateType) {
print("New queue state")
dataSource.setQueueIcon() dataSource.setQueueIcon()
queueView.reloadData() queueView.reloadData()
updateAlbumArt(state) updateAlbumArt(state)

View File

@ -48,7 +48,6 @@ class WindowController: NSWindowController, StoreSubscriber {
} }
func newState(state: StoreSubscriberStateType) { func newState(state: StoreSubscriberStateType) {
print("New player state")
self.state = state.state self.state = state.state
DispatchQueue.main.async { DispatchQueue.main.async {

View File

@ -15,14 +15,6 @@ class AlbumDataSource: NSObject, NSCollectionViewDataSource {
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int { func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return albums.count return albums.count
} }
//
// func resetCoverArt() {
// albums = AppDelegate.store.state.albumListState.albums.map {
// var album = $0
// album.coverArtFetched = false
// return album
// }
// }
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem { func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(withIdentifier: .albumViewItem, for: indexPath) let item = collectionView.makeItem(withIdentifier: .albumViewItem, for: indexPath)

View File

@ -14,10 +14,27 @@ func albumListReducer(action: Action, state: AlbumListState?) -> AlbumListState
switch action { switch action {
case let action as UpdateAlbumListAction: case let action as UpdateAlbumListAction:
state.albums = action.albums.map { Album(mpdAlbum: $0) } state.albums = action.albums.map { Album(mpdAlbum: $0) }
case let action as UpdateAlbumArt: case let action as UpdateAlbumArt:
state.albums[action.albumIndex].coverArt = .loaded(action.coverArt) state.albums[action.albumIndex].coverArt = .loaded(action.coverArt)
case is ResetAlbumListArt:
state.albums = AppDelegate.store.state.albumListState.albums.map {
var album = $0
switch album.coverArt {
case .loaded(let coverArt):
if coverArt == nil {
album.coverArt = .notAsked
}
default:
album.coverArt = .notAsked
}
return album
}
default: default:
break break
} }
return state return state