diff --git a/JellyfinPlayer/MovieItemView.swift b/JellyfinPlayer/MovieItemView.swift index d5615dad..bcef0c77 100644 --- a/JellyfinPlayer/MovieItemView.swift +++ b/JellyfinPlayer/MovieItemView.swift @@ -151,7 +151,7 @@ struct MovieItemView: View { HStack { Spacer().frame(width: 16) ForEach(viewModel.item.people!, id: \.self) { person in - if person.type! == "Actor" { + if person.type ?? "" == "Actor" { NavigationLink(destination: LazyView { LibraryView(viewModel: .init(person: person), title: person.name ?? "") }) { @@ -163,7 +163,7 @@ struct MovieItemView: View { .cornerRadius(10) Text(person.name ?? "").font(.footnote).fontWeight(.regular).lineLimit(1) .frame(width: 100).foregroundColor(Color.primary) - if person.role != "" { + if person.role != nil { Text(person.role!).font(.caption).fontWeight(.medium).lineLimit(1) .foregroundColor(Color.secondary).frame(width: 100) } diff --git a/Shared/Singleton/SessionManager.swift b/Shared/Singleton/SessionManager.swift index 1a5b23fa..ba406e73 100644 --- a/Shared/Singleton/SessionManager.swift +++ b/Shared/Singleton/SessionManager.swift @@ -164,9 +164,10 @@ final class SessionManager { keychain.accessGroup = "9R8RREG67J.me.vigue.jellyfin.sharedKeychain" keychain.delete("AccessToken_\(user?.user_id ?? "")") generateAuthHeader(with: nil, deviceID: nil) - - let deleteRequest = NSBatchDeleteRequest(objectIDs: [user.objectID]) - user = nil - _ = try? PersistenceController.shared.container.viewContext.execute(deleteRequest) + if(user != nil) { + let deleteRequest = NSBatchDeleteRequest(objectIDs: [user.objectID]) + user = nil + _ = try? PersistenceController.shared.container.viewContext.execute(deleteRequest) + } } } diff --git a/Shared/ViewModels/LibraryFilterViewModel.swift b/Shared/ViewModels/LibraryFilterViewModel.swift index 1eb81c7c..342c083a 100644 --- a/Shared/ViewModels/LibraryFilterViewModel.swift +++ b/Shared/ViewModels/LibraryFilterViewModel.swift @@ -54,8 +54,8 @@ final class LibraryFilterViewModel: ViewModel { init(filters: LibraryFilters? = nil, enabledFilterType: [FilterType] = [.tag, .genre, .sortBy, .sortOrder, .filter], parentId: String) { self.enabledFilterType = enabledFilterType - self.selectedSortBy = filters!.sortBy.first! - self.selectedSortOrder = filters!.sortOrder.first! + self.selectedSortBy = filters?.sortBy.first ?? .name; + self.selectedSortOrder = filters?.sortOrder.first ?? .descending; self.parentId = parentId super.init() diff --git a/Shared/ViewModels/LibraryListViewModel.swift b/Shared/ViewModels/LibraryListViewModel.swift index a25ae3aa..54ec7100 100644 --- a/Shared/ViewModels/LibraryListViewModel.swift +++ b/Shared/ViewModels/LibraryListViewModel.swift @@ -24,7 +24,7 @@ final class LibraryListViewModel: ViewModel { } func requestLibraries() { - UserViewsAPI.getUserViews(userId: SessionManager.current.user.user_id!) + UserViewsAPI.getUserViews(userId: SessionManager.current.user.user_id ?? "val was nil") .trackActivity(loading) .sink(receiveCompletion: { completion in self.handleAPIRequestCompletion(completion: completion)