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:
parent
40ae6909cd
commit
5f80a1b8e9
@ -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 */,
|
||||||
|
|||||||
11
Persephone/Actions/ResetAlbumListArt.swift
Normal file
11
Persephone/Actions/ResetAlbumListArt.swift
Normal 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 {}
|
||||||
@ -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()
|
||||||
|
|||||||
@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user