From 2d16b2886b098afab257721c6534a6028bf9f1dd Mon Sep 17 00:00:00 2001 From: Ethan Pippin Date: Wed, 12 Jan 2022 13:21:31 -0700 Subject: [PATCH] lint --- Shared/ViewModels/HomeViewModel.swift | 28 +++---- .../CollectionItemViewModel.swift | 2 +- .../VideoPlayerViewModel.swift | 22 +++--- .../EpisodesRowView/EpisodesRowCard.swift | 78 +++++++++---------- .../CinematicResumeCardView.swift | 22 +++--- .../HomeCinematicView/HomeCinematicView.swift | 10 +-- Swiftfin tvOS/Views/HomeView.swift | 6 +- .../CinematicItemViewTopRow.swift | 38 +++++---- Swiftfin/Views/ContinueWatchingView.swift | 14 ++-- .../Landscape/ItemLandscapeMainView.swift | 28 +++---- .../ItemPortraitHeaderOverlayView.swift | 40 +++++----- 11 files changed, 143 insertions(+), 145 deletions(-) diff --git a/Shared/ViewModels/HomeViewModel.swift b/Shared/ViewModels/HomeViewModel.swift index 8ef6a462..1ed0c40b 100644 --- a/Shared/ViewModels/HomeViewModel.swift +++ b/Shared/ViewModels/HomeViewModel.swift @@ -184,20 +184,20 @@ final class HomeViewModel: ViewModel { }) .store(in: &cancellables) } - - func removeItemFromResume(_ item: BaseItemDto) { - guard let itemID = item.id, resumeItems.contains(where: { $0.id == itemID }) else { return } - - PlaystateAPI.markUnplayedItem(userId: SessionManager.main.currentLogin.user.id, - itemId: item.id!) - .sink(receiveCompletion: { [weak self] completion in - self?.handleAPIRequestError(completion: completion) - }, receiveValue: { _ in - self.refreshResumeItems() - self.refreshNextUpItems() - }) - .store(in: &cancellables) - } + + func removeItemFromResume(_ item: BaseItemDto) { + guard let itemID = item.id, resumeItems.contains(where: { $0.id == itemID }) else { return } + + PlaystateAPI.markUnplayedItem(userId: SessionManager.main.currentLogin.user.id, + itemId: item.id!) + .sink(receiveCompletion: { [weak self] completion in + self?.handleAPIRequestError(completion: completion) + }, receiveValue: { _ in + self.refreshResumeItems() + self.refreshNextUpItems() + }) + .store(in: &cancellables) + } // MARK: Next Up Items diff --git a/Shared/ViewModels/ItemViewModel/CollectionItemViewModel.swift b/Shared/ViewModels/ItemViewModel/CollectionItemViewModel.swift index cd14f9ce..5d094b9c 100644 --- a/Shared/ViewModels/ItemViewModel/CollectionItemViewModel.swift +++ b/Shared/ViewModels/ItemViewModel/CollectionItemViewModel.swift @@ -24,7 +24,7 @@ final class CollectionItemViewModel: ItemViewModel { private func getCollectionItems() { ItemsAPI.getItems(userId: SessionManager.main.currentLogin.user.id, parentId: item.id, - fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people]) + fields: [.primaryImageAspectRatio, .seriesPrimaryImage, .seasonUserData, .overview, .genres, .people]) .trackActivity(loading) .sink { [weak self] completion in self?.handleAPIRequestError(completion: completion) diff --git a/Shared/ViewModels/VideoPlayerViewModel/VideoPlayerViewModel.swift b/Shared/ViewModels/VideoPlayerViewModel/VideoPlayerViewModel.swift index 8f59920f..59cf368a 100644 --- a/Shared/ViewModels/VideoPlayerViewModel/VideoPlayerViewModel.swift +++ b/Shared/ViewModels/VideoPlayerViewModel/VideoPlayerViewModel.swift @@ -238,17 +238,17 @@ final class VideoPlayerViewModel: ViewModel { // MARK: Injected Values extension VideoPlayerViewModel { - - // Injects custom values that override certain settings - func injectCustomValues(startFromBeginning: Bool = false) { - - if startFromBeginning { - item.userData?.playbackPositionTicks = 0 - item.userData?.playedPercentage = 0 - sliderPercentage = 0 - sliderPercentageChanged(newValue: 0) - } - } + + // Injects custom values that override certain settings + func injectCustomValues(startFromBeginning: Bool = false) { + + if startFromBeginning { + item.userData?.playbackPositionTicks = 0 + item.userData?.playedPercentage = 0 + sliderPercentage = 0 + sliderPercentageChanged(newValue: 0) + } + } } // MARK: Adjacent Items diff --git a/Swiftfin tvOS/Components/EpisodesRowView/EpisodesRowCard.swift b/Swiftfin tvOS/Components/EpisodesRowView/EpisodesRowCard.swift index f0fdba86..0f27d13d 100644 --- a/Swiftfin tvOS/Components/EpisodesRowView/EpisodesRowCard.swift +++ b/Swiftfin tvOS/Components/EpisodesRowView/EpisodesRowCard.swift @@ -17,47 +17,47 @@ struct EpisodeRowCard: View { let episode: BaseItemDto var body: some View { - VStack { - Button { - itemRouter.route(to: \.item, episode) - } label: { - ImageView(src: episode.getBackdropImage(maxWidth: 550), - bh: episode.getBackdropImageBlurHash()) - .mask(Rectangle().frame(width: 550, height: 308)) - .frame(width: 550, height: 308) - } - .buttonStyle(CardButtonStyle()) - - VStack(alignment: .leading) { + VStack { + Button { + itemRouter.route(to: \.item, episode) + } label: { + ImageView(src: episode.getBackdropImage(maxWidth: 550), + bh: episode.getBackdropImageBlurHash()) + .mask(Rectangle().frame(width: 550, height: 308)) + .frame(width: 550, height: 308) + } + .buttonStyle(CardButtonStyle()) - VStack(alignment: .leading) { - Text(episode.getEpisodeLocator() ?? "") - .font(.caption) - .foregroundColor(.secondary) - Text(episode.name ?? "") - .font(.footnote) - .padding(.bottom, 1) + VStack(alignment: .leading) { - if episode.unaired { - Text(episode.airDateLabel ?? L10n.noOverviewAvailable) - .font(.caption) - .foregroundColor(.secondary) - .fontWeight(.light) - .lineLimit(3) - } else { - Text(episode.overview ?? "") - .font(.caption) - .fontWeight(.light) - .lineLimit(4) - .fixedSize(horizontal: false, vertical: true) - } - } + VStack(alignment: .leading) { + Text(episode.getEpisodeLocator() ?? "") + .font(.caption) + .foregroundColor(.secondary) + Text(episode.name ?? "") + .font(.footnote) + .padding(.bottom, 1) - Spacer() - } - .padding() - .frame(width: 550) - } - .focusSection() + if episode.unaired { + Text(episode.airDateLabel ?? L10n.noOverviewAvailable) + .font(.caption) + .foregroundColor(.secondary) + .fontWeight(.light) + .lineLimit(3) + } else { + Text(episode.overview ?? "") + .font(.caption) + .fontWeight(.light) + .lineLimit(4) + .fixedSize(horizontal: false, vertical: true) + } + } + + Spacer() + } + .padding() + .frame(width: 550) + } + .focusSection() } } diff --git a/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift b/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift index da737552..8586b5b4 100644 --- a/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift +++ b/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift @@ -13,8 +13,8 @@ struct CinematicResumeCardView: View { @EnvironmentObject var homeRouter: HomeCoordinator.Router - @ObservedObject - var viewModel: HomeViewModel + @ObservedObject + var viewModel: HomeViewModel let item: BaseItemDto var body: some View { @@ -55,15 +55,15 @@ struct CinematicResumeCardView: View { } .frame(width: 350, height: 210) } - .buttonStyle(CardButtonStyle()) - .padding(.top) - .contextMenu { - Button(role: .destructive) { - viewModel.removeItemFromResume(item) - } label: { - L10n.removeFromResume.text - } - } + .buttonStyle(CardButtonStyle()) + .padding(.top) + .contextMenu { + Button(role: .destructive) { + viewModel.removeItemFromResume(item) + } label: { + L10n.removeFromResume.text + } + } } .padding(.vertical) } diff --git a/Swiftfin tvOS/Components/HomeCinematicView/HomeCinematicView.swift b/Swiftfin tvOS/Components/HomeCinematicView/HomeCinematicView.swift index ac4527b2..902220b0 100644 --- a/Swiftfin tvOS/Components/HomeCinematicView/HomeCinematicView.swift +++ b/Swiftfin tvOS/Components/HomeCinematicView/HomeCinematicView.swift @@ -33,8 +33,8 @@ struct HomeCinematicView: View { @FocusState var selectedItem: BaseItemDto? - @ObservedObject - var viewModel: HomeViewModel + @ObservedObject + var viewModel: HomeViewModel @State private var updatedSelectedItem: BaseItemDto? @State @@ -43,8 +43,8 @@ struct HomeCinematicView: View { private let items: [HomeCinematicViewItem] private let backgroundViewModel = DynamicCinematicBackgroundViewModel() - init(viewModel: HomeViewModel, items: [HomeCinematicViewItem], forcedItemSubtitle: String? = nil) { - self.viewModel = viewModel + init(viewModel: HomeViewModel, items: [HomeCinematicViewItem], forcedItemSubtitle: String? = nil) { + self.viewModel = viewModel self.items = items self.forcedItemSubtitle = forcedItemSubtitle } @@ -102,7 +102,7 @@ struct HomeCinematicView: View { CinematicNextUpCardView(item: item.item, showOverlay: true) .focused($selectedItem, equals: item.item) case .resume: - CinematicResumeCardView(viewModel: viewModel, item: item.item) + CinematicResumeCardView(viewModel: viewModel, item: item.item) .focused($selectedItem, equals: item.item) case .plain: CinematicNextUpCardView(item: item.item, showOverlay: false) diff --git a/Swiftfin tvOS/Views/HomeView.swift b/Swiftfin tvOS/Views/HomeView.swift index 86f963e4..1d341e2c 100644 --- a/Swiftfin tvOS/Views/HomeView.swift +++ b/Swiftfin tvOS/Views/HomeView.swift @@ -32,8 +32,8 @@ struct HomeView: View { LazyVStack(alignment: .leading) { if viewModel.resumeItems.isEmpty { - HomeCinematicView(viewModel: viewModel, - items: viewModel.latestAddedItems.map { .init(item: $0, type: .plain) }, + HomeCinematicView(viewModel: viewModel, + items: viewModel.latestAddedItems.map { .init(item: $0, type: .plain) }, forcedItemSubtitle: L10n.recentlyAdded) if !viewModel.nextUpItems.isEmpty { @@ -42,7 +42,7 @@ struct HomeView: View { } } else { HomeCinematicView(viewModel: viewModel, - items: viewModel.resumeItems.map { .init(item: $0, type: .resume) }) + items: viewModel.resumeItems.map { .init(item: $0, type: .resume) }) if !viewModel.nextUpItems.isEmpty { NextUpView(items: viewModel.nextUpItems) diff --git a/Swiftfin tvOS/Views/ItemView/CinematicItemView/CinematicItemViewTopRow.swift b/Swiftfin tvOS/Views/ItemView/CinematicItemView/CinematicItemViewTopRow.swift index aa5df4a6..c8c4bf9a 100644 --- a/Swiftfin tvOS/Views/ItemView/CinematicItemView/CinematicItemViewTopRow.swift +++ b/Swiftfin tvOS/Views/ItemView/CinematicItemView/CinematicItemViewTopRow.swift @@ -78,26 +78,24 @@ struct CinematicItemViewTopRow: View { .cornerRadius(10) } .buttonStyle(CardButtonStyle()) - .contextMenu { - if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { - Button { - if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { - itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) - itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) - } else { - LogManager.shared.log.error("Attempted to play item but no playback information available") - } - } label: { - Label(L10n.playFromBeginning, systemImage: "gobackward") - } - - Button(role: .cancel) { - - } label: { - L10n.cancel.text - } - } - } + .contextMenu { + if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { + Button { + if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { + itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) + itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) + } else { + LogManager.shared.log.error("Attempted to play item but no playback information available") + } + } label: { + Label(L10n.playFromBeginning, systemImage: "gobackward") + } + + Button(role: .cancel) {} label: { + L10n.cancel.text + } + } + } } } diff --git a/Swiftfin/Views/ContinueWatchingView.swift b/Swiftfin/Views/ContinueWatchingView.swift index 3b81ef21..8c5c04c2 100644 --- a/Swiftfin/Views/ContinueWatchingView.swift +++ b/Swiftfin/Views/ContinueWatchingView.swift @@ -81,13 +81,13 @@ struct ContinueWatchingView: View { } } } - .contextMenu { - Button(role: .destructive) { - viewModel.removeItemFromResume(item) - } label: { - L10n.removeFromResume.text - } - } + .contextMenu { + Button(role: .destructive) { + viewModel.removeItemFromResume(item) + } label: { + L10n.removeFromResume.text + } + } } } .padding(.horizontal) diff --git a/Swiftfin/Views/ItemView/Landscape/ItemLandscapeMainView.swift b/Swiftfin/Views/ItemView/Landscape/ItemLandscapeMainView.swift index 89250904..c8c783aa 100644 --- a/Swiftfin/Views/ItemView/Landscape/ItemLandscapeMainView.swift +++ b/Swiftfin/Views/ItemView/Landscape/ItemLandscapeMainView.swift @@ -50,20 +50,20 @@ struct ItemLandscapeMainView: View { .cornerRadius(10) } .disabled(viewModel.playButtonItem == nil || viewModel.itemVideoPlayerViewModel == nil) - .contextMenu { - if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { - Button { - if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { - itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) - itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) - } else { - LogManager.shared.log.error("Attempted to play item but no playback information available") - } - } label: { - Label(L10n.playFromBeginning, systemImage: "gobackward") - } - } - } + .contextMenu { + if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { + Button { + if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { + itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) + itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) + } else { + LogManager.shared.log.error("Attempted to play item but no playback information available") + } + } label: { + Label(L10n.playFromBeginning, systemImage: "gobackward") + } + } + } Spacer() } diff --git a/Swiftfin/Views/ItemView/Portrait/ItemPortraitHeaderOverlayView.swift b/Swiftfin/Views/ItemView/Portrait/ItemPortraitHeaderOverlayView.swift index 462155d0..b7480f12 100644 --- a/Swiftfin/Views/ItemView/Portrait/ItemPortraitHeaderOverlayView.swift +++ b/Swiftfin/Views/ItemView/Portrait/ItemPortraitHeaderOverlayView.swift @@ -90,11 +90,11 @@ struct PortraitHeaderOverlayView: View { // MARK: Play Button { - if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { - itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) - } else { - LogManager.shared.log.error("Attempted to play item but no playback information available") - } + if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { + itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) + } else { + LogManager.shared.log.error("Attempted to play item but no playback information available") + } } label: { HStack { Image(systemName: "play.fill") @@ -109,21 +109,21 @@ struct PortraitHeaderOverlayView: View { .background(viewModel.playButtonItem == nil ? Color(UIColor.secondarySystemFill) : Color.jellyfinPurple) .cornerRadius(10) } - .disabled(viewModel.playButtonItem == nil) - .contextMenu { - if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { - Button { - if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { - itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) - itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) - } else { - LogManager.shared.log.error("Attempted to play item but no playback information available") - } - } label: { - Label(L10n.playFromBeginning, systemImage: "gobackward") - } - } - } + .disabled(viewModel.playButtonItem == nil) + .contextMenu { + if viewModel.playButtonItem != nil, viewModel.item.userData?.playbackPositionTicks ?? 0 > 0 { + Button { + if let itemVideoPlayerViewModel = viewModel.itemVideoPlayerViewModel { + itemVideoPlayerViewModel.injectCustomValues(startFromBeginning: true) + itemRouter.route(to: \.videoPlayer, itemVideoPlayerViewModel) + } else { + LogManager.shared.log.error("Attempted to play item but no playback information available") + } + } label: { + Label(L10n.playFromBeginning, systemImage: "gobackward") + } + } + } Spacer()