cleanup
This commit is contained in:
parent
1ee02dfcb0
commit
43f03c1c9c
|
@ -11,7 +11,7 @@ import Defaults
|
||||||
import JellyfinAPI
|
import JellyfinAPI
|
||||||
|
|
||||||
struct SettingsView: View {
|
struct SettingsView: View {
|
||||||
|
|
||||||
@ObservedObject var viewModel: SettingsViewModel
|
@ObservedObject var viewModel: SettingsViewModel
|
||||||
|
|
||||||
@Default(.inNetworkBandwidth) var inNetworkStreamBitrate
|
@Default(.inNetworkBandwidth) var inNetworkStreamBitrate
|
||||||
|
|
|
@ -13,7 +13,7 @@ struct ServerDetailView: View {
|
||||||
|
|
||||||
@ObservedObject var viewModel: ServerDetailViewModel
|
@ObservedObject var viewModel: ServerDetailViewModel
|
||||||
@State var currentServerURI: String
|
@State var currentServerURI: String
|
||||||
|
|
||||||
init(viewModel: ServerDetailViewModel) {
|
init(viewModel: ServerDetailViewModel) {
|
||||||
self.viewModel = viewModel
|
self.viewModel = viewModel
|
||||||
self.currentServerURI = viewModel.server.currentURI
|
self.currentServerURI = viewModel.server.currentURI
|
||||||
|
|
|
@ -96,7 +96,7 @@ struct UserListView: View {
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: "info.circle.fill")
|
Image(systemName: "info.circle.fill")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !viewModel.users.isEmpty {
|
if !viewModel.users.isEmpty {
|
||||||
Button {
|
Button {
|
||||||
userListRouter.route(to: \.userSignIn, viewModel.server)
|
userListRouter.route(to: \.userSignIn, viewModel.server)
|
||||||
|
|
|
@ -69,7 +69,7 @@ final class MainCoordinator: NavigationCoordinatable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func didChangeServerCurrentURI(_ notification: Notification) {
|
@objc func didChangeServerCurrentURI(_ notification: Notification) {
|
||||||
guard let newCurrentServerState = notification.object as? SwiftfinStore.State.Server else { fatalError("Need to have new current login state server") }
|
guard let newCurrentServerState = notification.object as? SwiftfinStore.State.Server else { fatalError("Need to have new current login state server") }
|
||||||
guard SessionManager.main.currentLogin != nil else { return }
|
guard SessionManager.main.currentLogin != nil else { return }
|
||||||
|
@ -77,7 +77,7 @@ final class MainCoordinator: NavigationCoordinatable {
|
||||||
SessionManager.main.loginUser(server: newCurrentServerState, user: SessionManager.main.currentLogin.user)
|
SessionManager.main.loginUser(server: newCurrentServerState, user: SessionManager.main.currentLogin.user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeMainTab() -> MainTabCoordinator {
|
func makeMainTab() -> MainTabCoordinator {
|
||||||
MainTabCoordinator()
|
MainTabCoordinator()
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,17 +12,17 @@ import Stinsen
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
final class ServerDetailCoordinator: NavigationCoordinatable {
|
final class ServerDetailCoordinator: NavigationCoordinatable {
|
||||||
|
|
||||||
let stack = NavigationStack(initial: \ServerDetailCoordinator.start)
|
let stack = NavigationStack(initial: \ServerDetailCoordinator.start)
|
||||||
|
|
||||||
@Root var start = makeStart
|
@Root var start = makeStart
|
||||||
|
|
||||||
let viewModel: ServerDetailViewModel
|
let viewModel: ServerDetailViewModel
|
||||||
|
|
||||||
init(viewModel: ServerDetailViewModel) {
|
init(viewModel: ServerDetailViewModel) {
|
||||||
self.viewModel = viewModel
|
self.viewModel = viewModel
|
||||||
}
|
}
|
||||||
|
|
||||||
@ViewBuilder func makeStart() -> some View {
|
@ViewBuilder func makeStart() -> some View {
|
||||||
ServerDetailView(viewModel: viewModel)
|
ServerDetailView(viewModel: viewModel)
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,7 @@ final class SessionManager {
|
||||||
|
|
||||||
return (editServer, transaction)
|
return (editServer, transaction)
|
||||||
}
|
}
|
||||||
.handleEvents(receiveOutput: { (server, transaction) in
|
.handleEvents(receiveOutput: { (_, transaction) in
|
||||||
try? transaction.commitAndWait()
|
try? transaction.commitAndWait()
|
||||||
})
|
})
|
||||||
.map({ (server, _) in
|
.map({ (server, _) in
|
||||||
|
@ -149,7 +149,7 @@ final class SessionManager {
|
||||||
|
|
||||||
return (editServer, transaction)
|
return (editServer, transaction)
|
||||||
}
|
}
|
||||||
.handleEvents(receiveOutput: { (server, transaction) in
|
.handleEvents(receiveOutput: { (_, transaction) in
|
||||||
try? transaction.commitAndWait()
|
try? transaction.commitAndWait()
|
||||||
})
|
})
|
||||||
.map({ (server, _) in
|
.map({ (server, _) in
|
||||||
|
|
|
@ -180,9 +180,9 @@ extension SwiftfinStore.Errors: LocalizedError {
|
||||||
|
|
||||||
var title: String {
|
var title: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .existingServer(_):
|
case .existingServer:
|
||||||
return "Existing Server"
|
return "Existing Server"
|
||||||
case .existingUser(_):
|
case .existingUser:
|
||||||
return "Existing User"
|
return "Existing User"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ final class ConnectToServerViewModel: ViewModel {
|
||||||
.sink { completion in
|
.sink { completion in
|
||||||
self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer",
|
self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer",
|
||||||
completion: completion)
|
completion: completion)
|
||||||
} receiveValue: { server in
|
} receiveValue: { _ in
|
||||||
self.router?.dismissCoordinator()
|
self.router?.dismissCoordinator()
|
||||||
}
|
}
|
||||||
.store(in: &self.cancellables)
|
.store(in: &self.cancellables)
|
||||||
|
|
|
@ -25,7 +25,7 @@ final class HomeViewModel: ViewModel {
|
||||||
override init() {
|
override init() {
|
||||||
super.init()
|
super.init()
|
||||||
refresh()
|
refresh()
|
||||||
|
|
||||||
// Nov. 6, 2021
|
// Nov. 6, 2021
|
||||||
// This is a workaround since Stinsen doesn't have the ability to rebuild a root at the time of writing.
|
// This is a workaround since Stinsen doesn't have the ability to rebuild a root at the time of writing.
|
||||||
// See ServerDetailViewModel.swift for feature request issue
|
// See ServerDetailViewModel.swift for feature request issue
|
||||||
|
@ -33,36 +33,36 @@ final class HomeViewModel: ViewModel {
|
||||||
nc.addObserver(self, selector: #selector(didSignIn), name: SwiftfinNotificationCenter.Keys.didSignIn, object: nil)
|
nc.addObserver(self, selector: #selector(didSignIn), name: SwiftfinNotificationCenter.Keys.didSignIn, object: nil)
|
||||||
nc.addObserver(self, selector: #selector(didSignOut), name: SwiftfinNotificationCenter.Keys.didSignOut, object: nil)
|
nc.addObserver(self, selector: #selector(didSignOut), name: SwiftfinNotificationCenter.Keys.didSignOut, object: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func didSignIn() {
|
@objc func didSignIn() {
|
||||||
for cancellable in cancellables {
|
for cancellable in cancellables {
|
||||||
cancellable.cancel()
|
cancellable.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
librariesShowRecentlyAddedIDs = []
|
librariesShowRecentlyAddedIDs = []
|
||||||
libraries = []
|
libraries = []
|
||||||
resumeItems = []
|
resumeItems = []
|
||||||
nextUpItems = []
|
nextUpItems = []
|
||||||
|
|
||||||
refresh()
|
refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func didSignOut() {
|
@objc func didSignOut() {
|
||||||
for cancellable in cancellables {
|
for cancellable in cancellables {
|
||||||
cancellable.cancel()
|
cancellable.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
cancellables.removeAll()
|
cancellables.removeAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
func refresh() {
|
func refresh() {
|
||||||
LogManager.shared.log.debug("Refresh called.")
|
LogManager.shared.log.debug("Refresh called.")
|
||||||
UserViewsAPI.getUserViews(userId: SessionManager.main.currentLogin.user.id)
|
UserViewsAPI.getUserViews(userId: SessionManager.main.currentLogin.user.id)
|
||||||
.trackActivity(loading)
|
.trackActivity(loading)
|
||||||
.sink(receiveCompletion: { completion in
|
.sink(receiveCompletion: { completion in
|
||||||
switch completion {
|
switch completion {
|
||||||
case .finished: ()
|
case .finished: ()
|
||||||
case .failure(_):
|
case .failure:
|
||||||
self.libraries = []
|
self.libraries = []
|
||||||
self.handleAPIRequestError(completion: completion)
|
self.handleAPIRequestError(completion: completion)
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ final class HomeViewModel: ViewModel {
|
||||||
.sink(receiveCompletion: { completion in
|
.sink(receiveCompletion: { completion in
|
||||||
switch completion {
|
switch completion {
|
||||||
case .finished: ()
|
case .finished: ()
|
||||||
case .failure(_):
|
case .failure:
|
||||||
self.libraries = []
|
self.libraries = []
|
||||||
self.handleAPIRequestError(completion: completion)
|
self.handleAPIRequestError(completion: completion)
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ final class HomeViewModel: ViewModel {
|
||||||
.sink(receiveCompletion: { completion in
|
.sink(receiveCompletion: { completion in
|
||||||
switch completion {
|
switch completion {
|
||||||
case .finished: ()
|
case .finished: ()
|
||||||
case .failure(_):
|
case .failure:
|
||||||
self.resumeItems = []
|
self.resumeItems = []
|
||||||
self.handleAPIRequestError(completion: completion)
|
self.handleAPIRequestError(completion: completion)
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ final class HomeViewModel: ViewModel {
|
||||||
.sink(receiveCompletion: { completion in
|
.sink(receiveCompletion: { completion in
|
||||||
switch completion {
|
switch completion {
|
||||||
case .finished: ()
|
case .finished: ()
|
||||||
case .failure(_):
|
case .failure:
|
||||||
self.nextUpItems = []
|
self.nextUpItems = []
|
||||||
self.handleAPIRequestError(completion: completion)
|
self.handleAPIRequestError(completion: completion)
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,20 +11,20 @@ import Foundation
|
||||||
import JellyfinAPI
|
import JellyfinAPI
|
||||||
|
|
||||||
class ServerDetailViewModel: ViewModel {
|
class ServerDetailViewModel: ViewModel {
|
||||||
|
|
||||||
@Published var server: SwiftfinStore.State.Server
|
@Published var server: SwiftfinStore.State.Server
|
||||||
|
|
||||||
init(server: SwiftfinStore.State.Server) {
|
init(server: SwiftfinStore.State.Server) {
|
||||||
self.server = server
|
self.server = server
|
||||||
}
|
}
|
||||||
|
|
||||||
func setServerCurrentURI(uri: String) {
|
func setServerCurrentURI(uri: String) {
|
||||||
SessionManager.main.setServerCurrentURI(server: server, uri: uri)
|
SessionManager.main.setServerCurrentURI(server: server, uri: uri)
|
||||||
.sink { c in
|
.sink { c in
|
||||||
print(c)
|
print(c)
|
||||||
} receiveValue: { newServerState in
|
} receiveValue: { newServerState in
|
||||||
self.server = newServerState
|
self.server = newServerState
|
||||||
|
|
||||||
let nc = SwiftfinNotificationCenter.main
|
let nc = SwiftfinNotificationCenter.main
|
||||||
nc.post(name: SwiftfinNotificationCenter.Keys.didChangeServerCurrentURI, object: newServerState)
|
nc.post(name: SwiftfinNotificationCenter.Keys.didChangeServerCurrentURI, object: newServerState)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue