This commit is contained in:
Ethan Pippin 2021-11-10 23:03:58 -07:00
parent 1ee02dfcb0
commit 43f03c1c9c
10 changed files with 30 additions and 30 deletions

View File

@ -11,7 +11,7 @@ import Defaults
import JellyfinAPI
struct SettingsView: View {
@ObservedObject var viewModel: SettingsViewModel
@Default(.inNetworkBandwidth) var inNetworkStreamBitrate

View File

@ -13,7 +13,7 @@ struct ServerDetailView: View {
@ObservedObject var viewModel: ServerDetailViewModel
@State var currentServerURI: String
init(viewModel: ServerDetailViewModel) {
self.viewModel = viewModel
self.currentServerURI = viewModel.server.currentURI

View File

@ -96,7 +96,7 @@ struct UserListView: View {
} label: {
Image(systemName: "info.circle.fill")
}
if !viewModel.users.isEmpty {
Button {
userListRouter.route(to: \.userSignIn, viewModel.server)

View File

@ -69,7 +69,7 @@ final class MainCoordinator: NavigationCoordinatable {
}
}
}
@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 SessionManager.main.currentLogin != nil else { return }
@ -77,7 +77,7 @@ final class MainCoordinator: NavigationCoordinatable {
SessionManager.main.loginUser(server: newCurrentServerState, user: SessionManager.main.currentLogin.user)
}
}
func makeMainTab() -> MainTabCoordinator {
MainTabCoordinator()
}

View File

@ -12,17 +12,17 @@ import Stinsen
import SwiftUI
final class ServerDetailCoordinator: NavigationCoordinatable {
let stack = NavigationStack(initial: \ServerDetailCoordinator.start)
@Root var start = makeStart
let viewModel: ServerDetailViewModel
init(viewModel: ServerDetailViewModel) {
self.viewModel = viewModel
}
@ViewBuilder func makeStart() -> some View {
ServerDetailView(viewModel: viewModel)
}

View File

@ -120,7 +120,7 @@ final class SessionManager {
return (editServer, transaction)
}
.handleEvents(receiveOutput: { (server, transaction) in
.handleEvents(receiveOutput: { (_, transaction) in
try? transaction.commitAndWait()
})
.map({ (server, _) in
@ -149,7 +149,7 @@ final class SessionManager {
return (editServer, transaction)
}
.handleEvents(receiveOutput: { (server, transaction) in
.handleEvents(receiveOutput: { (_, transaction) in
try? transaction.commitAndWait()
})
.map({ (server, _) in

View File

@ -180,9 +180,9 @@ extension SwiftfinStore.Errors: LocalizedError {
var title: String {
switch self {
case .existingServer(_):
case .existingServer:
return "Existing Server"
case .existingUser(_):
case .existingUser:
return "Existing User"
}
}

View File

@ -106,7 +106,7 @@ final class ConnectToServerViewModel: ViewModel {
.sink { completion in
self.handleAPIRequestError(displayMessage: "Unable to connect to server.", logLevel: .critical, tag: "connectToServer",
completion: completion)
} receiveValue: { server in
} receiveValue: { _ in
self.router?.dismissCoordinator()
}
.store(in: &self.cancellables)

View File

@ -25,7 +25,7 @@ final class HomeViewModel: ViewModel {
override init() {
super.init()
refresh()
// Nov. 6, 2021
// 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
@ -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(didSignOut), name: SwiftfinNotificationCenter.Keys.didSignOut, object: nil)
}
@objc func didSignIn() {
for cancellable in cancellables {
cancellable.cancel()
}
librariesShowRecentlyAddedIDs = []
libraries = []
resumeItems = []
nextUpItems = []
refresh()
}
@objc func didSignOut() {
for cancellable in cancellables {
cancellable.cancel()
}
cancellables.removeAll()
}
func refresh() {
func refresh() {
LogManager.shared.log.debug("Refresh called.")
UserViewsAPI.getUserViews(userId: SessionManager.main.currentLogin.user.id)
.trackActivity(loading)
.sink(receiveCompletion: { completion in
switch completion {
case .finished: ()
case .failure(_):
case .failure:
self.libraries = []
self.handleAPIRequestError(completion: completion)
}
@ -82,7 +82,7 @@ final class HomeViewModel: ViewModel {
.sink(receiveCompletion: { completion in
switch completion {
case .finished: ()
case .failure(_):
case .failure:
self.libraries = []
self.handleAPIRequestError(completion: completion)
}
@ -110,7 +110,7 @@ final class HomeViewModel: ViewModel {
.sink(receiveCompletion: { completion in
switch completion {
case .finished: ()
case .failure(_):
case .failure:
self.resumeItems = []
self.handleAPIRequestError(completion: completion)
}
@ -127,7 +127,7 @@ final class HomeViewModel: ViewModel {
.sink(receiveCompletion: { completion in
switch completion {
case .finished: ()
case .failure(_):
case .failure:
self.nextUpItems = []
self.handleAPIRequestError(completion: completion)
}

View File

@ -11,20 +11,20 @@ import Foundation
import JellyfinAPI
class ServerDetailViewModel: ViewModel {
@Published var server: SwiftfinStore.State.Server
init(server: SwiftfinStore.State.Server) {
self.server = server
}
func setServerCurrentURI(uri: String) {
SessionManager.main.setServerCurrentURI(server: server, uri: uri)
.sink { c in
print(c)
} receiveValue: { newServerState in
self.server = newServerState
let nc = SwiftfinNotificationCenter.main
nc.post(name: SwiftfinNotificationCenter.Keys.didChangeServerCurrentURI, object: newServerState)
}