mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
60 lines
1.3 KiB
Swift
60 lines
1.3 KiB
Swift
//
|
|
// ViewController.swift
|
|
// Persephone-iOS
|
|
//
|
|
// Created by Daniel Barber on 2020-3-13.
|
|
// Copyright © 2020 Dan Barber. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import ReSwift
|
|
|
|
class AlbumViewController: UICollectionViewController {
|
|
let dataSource = AlbumDataSource()
|
|
|
|
let itemsPerRow: CGFloat = 2
|
|
|
|
let sectionInsets = UIEdgeInsets(
|
|
top: 20.0,
|
|
left: 20.0,
|
|
bottom: 30.0,
|
|
right: 20.0
|
|
)
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
albumCollectionView.dataSource = dataSource
|
|
|
|
App.store.subscribe(self) {
|
|
$0.select { $0.albumListState }
|
|
}
|
|
|
|
NotificationCenter.default.addObserver(self, selector: #selector(didConnect), name: .didConnect, object: nil)
|
|
}
|
|
|
|
@objc func didConnect() {
|
|
App.mpdClient.fetchAllAlbums()
|
|
}
|
|
|
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
|
guard let detailView = segue.destination as? AlbumSongListViewController,
|
|
let sender = sender as? AlbumItemCell
|
|
else { return }
|
|
|
|
detailView.setAlbum(sender.album)
|
|
}
|
|
|
|
@IBOutlet var albumCollectionView: UICollectionView!
|
|
}
|
|
|
|
extension AlbumViewController: StoreSubscriber {
|
|
typealias StoreSubscriberStateType = AlbumListState
|
|
|
|
func newState(state: StoreSubscriberStateType) {
|
|
dataSource.albums = state.albums
|
|
|
|
albumCollectionView.reloadData()
|
|
}
|
|
}
|