mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Handle server connection on backgrounding
This commit is contained in:
parent
f385d853ed
commit
71f2545972
@ -35,19 +35,21 @@ extension MPDClient {
|
|||||||
|
|
||||||
self.delegate?.willDisconnect(mpdClient: self)
|
self.delegate?.willDisconnect(mpdClient: self)
|
||||||
|
|
||||||
mpd_connection_free(self.connection)
|
mpd_connection_free(self.connection)
|
||||||
self.isConnected = false
|
self.isConnected = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func connect(host: String, port: Int) {
|
func connect(host: String, port: Int) {
|
||||||
let commandOperation = BlockOperation() { [unowned self] in
|
if !isConnected {
|
||||||
self.sendCommand(command: .connect, userData: ["host": host, "port": port])
|
let commandOperation = BlockOperation() { [unowned self] in
|
||||||
|
self.sendCommand(command: .connect, userData: ["host": host, "port": port])
|
||||||
|
|
||||||
if self.isConnected {
|
if self.isConnected {
|
||||||
self.idle()
|
self.idle()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
commandQueue.addOperation(commandOperation)
|
||||||
}
|
}
|
||||||
commandQueue.addOperation(commandOperation)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func disconnect() {
|
func disconnect() {
|
||||||
|
|||||||
@ -11,7 +11,6 @@ import ReSwift
|
|||||||
struct App {
|
struct App {
|
||||||
static let store = Store<AppState>(reducer: appReducer, state: nil)
|
static let store = Store<AppState>(reducer: appReducer, state: nil)
|
||||||
static let trackTimer = TrackTimer()
|
static let trackTimer = TrackTimer()
|
||||||
//static let userNotificationsController = UserNotificationsController()
|
|
||||||
static let mpdServerDelegate = MPDServerDelegate()
|
static let mpdServerDelegate = MPDServerDelegate()
|
||||||
static let mpdServerController = MPDServerController(delegate: mpdServerDelegate)
|
static let mpdServerController = MPDServerController(delegate: mpdServerDelegate)
|
||||||
static var mpdClient: MPDClient!
|
static var mpdClient: MPDClient!
|
||||||
|
|||||||
@ -40,9 +40,6 @@ class AlbumViewController: UICollectionViewController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@objc func willDisconnect() {
|
@objc func willDisconnect() {
|
||||||
DispatchQueue.main.async {
|
|
||||||
App.store.dispatch(UpdateAlbumListAction(albums: []))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
||||||
|
|||||||
@ -0,0 +1,9 @@
|
|||||||
|
//
|
||||||
|
// AlbumDetailFooterView.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2020-4-2.
|
||||||
|
// Copyright © 2020 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
@ -29,11 +29,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||||||
// This occurs shortly after the scene enters the background, or when its session is discarded.
|
// This occurs shortly after the scene enters the background, or when its session is discarded.
|
||||||
// Release any resources associated with this scene that can be re-created the next time the scene connects.
|
// Release any resources associated with this scene that can be re-created the next time the scene connects.
|
||||||
// The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
|
// The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead).
|
||||||
|
App.mpdServerController.disconnect()
|
||||||
}
|
}
|
||||||
|
|
||||||
func sceneDidBecomeActive(_ scene: UIScene) {
|
func sceneDidBecomeActive(_ scene: UIScene) {
|
||||||
// Called when the scene has moved from an inactive state to an active state.
|
// Called when the scene has moved from an inactive state to an active state.
|
||||||
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
|
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
|
||||||
|
App.mpdServerController.connect()
|
||||||
}
|
}
|
||||||
|
|
||||||
func sceneWillResignActive(_ scene: UIScene) {
|
func sceneWillResignActive(_ scene: UIScene) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user