From 24dbb78fcfbda7f8495d5d03936407f802093c84 Mon Sep 17 00:00:00 2001 From: Ethan Pippin Date: Fri, 18 Mar 2022 21:45:52 -0600 Subject: [PATCH] fix failureinitials --- Shared/Views/InitialFailureView.swift | 30 +++++++++++++++++++ Swiftfin.xcodeproj/project.pbxproj | 6 ++++ Swiftfin/Components/PortraitHStackView.swift | 4 ++- Swiftfin/Components/PortraitItemButton.swift | 4 ++- .../VideoPlayer/VLCPlayerViewController.swift | 4 +-- 5 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 Shared/Views/InitialFailureView.swift diff --git a/Shared/Views/InitialFailureView.swift b/Shared/Views/InitialFailureView.swift new file mode 100644 index 00000000..9af50ae6 --- /dev/null +++ b/Shared/Views/InitialFailureView.swift @@ -0,0 +1,30 @@ +// +// Swiftfin is subject to the terms of the Mozilla Public +// License, v2.0. If a copy of the MPL was not distributed with this +// file, you can obtain one at https://mozilla.org/MPL/2.0/. +// +// Copyright (c) 2022 Jellyfin & Jellyfin Contributors +// + +import SwiftUI + +struct InitialFailureView: View { + + let initials: String + + init(_ initials: String) { + self.initials = initials + } + + var body: some View { + ZStack { + Rectangle() + .foregroundColor(Color(UIColor.darkGray)) + + Text(initials) + .font(.largeTitle) + .foregroundColor(.secondary) + .accessibilityHidden(true) + } + } +} diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index 4975c6ff..52af3a75 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -294,6 +294,8 @@ E103A6A9278AB6FF00820EC7 /* CinematicNextUpCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E103A6A8278AB6FF00820EC7 /* CinematicNextUpCardView.swift */; }; E1047E2027E584AF00CB0D4A /* BlurHashView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1047E1F27E584AF00CB0D4A /* BlurHashView.swift */; }; E1047E2127E584AF00CB0D4A /* BlurHashView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1047E1F27E584AF00CB0D4A /* BlurHashView.swift */; }; + E1047E2327E5880000CB0D4A /* InitialFailureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1047E2227E5880000CB0D4A /* InitialFailureView.swift */; }; + E1047E2427E5880000CB0D4A /* InitialFailureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1047E2227E5880000CB0D4A /* InitialFailureView.swift */; }; E107BB9327880A8F00354E07 /* CollectionItemViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E107BB9227880A8F00354E07 /* CollectionItemViewModel.swift */; }; E107BB9427880A8F00354E07 /* CollectionItemViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E107BB9227880A8F00354E07 /* CollectionItemViewModel.swift */; }; E107BB972788104100354E07 /* CinematicCollectionItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E107BB952788104100354E07 /* CinematicCollectionItemView.swift */; }; @@ -763,6 +765,7 @@ E103A6A6278AB6D700820EC7 /* CinematicResumeCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CinematicResumeCardView.swift; sourceTree = ""; }; E103A6A8278AB6FF00820EC7 /* CinematicNextUpCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CinematicNextUpCardView.swift; sourceTree = ""; }; E1047E1F27E584AF00CB0D4A /* BlurHashView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurHashView.swift; sourceTree = ""; }; + E1047E2227E5880000CB0D4A /* InitialFailureView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialFailureView.swift; sourceTree = ""; }; E107BB9227880A8F00354E07 /* CollectionItemViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CollectionItemViewModel.swift; sourceTree = ""; }; E107BB952788104100354E07 /* CinematicCollectionItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CinematicCollectionItemView.swift; sourceTree = ""; }; E10C0940278B8DAB009DBF93 /* PortraitItemSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PortraitItemSize.swift; sourceTree = ""; }; @@ -1753,6 +1756,7 @@ children = ( E1047E1F27E584AF00CB0D4A /* BlurHashView.swift */, 531AC8BE26750DE20091C7EB /* ImageView.swift */, + E1047E2227E5880000CB0D4A /* InitialFailureView.swift */, 621338B22660A07800A81A2A /* LazyView.swift */, C4E52304272CE68800654268 /* LiveTVChannelItemElement.swift */, 53E4E648263F725B00F67C6B /* MultiSelectorView.swift */, @@ -2263,6 +2267,7 @@ 62E632DD267D2E130063E547 /* LibrarySearchViewModel.swift in Sources */, 536D3D81267BDFC60004248C /* PortraitItemElement.swift in Sources */, 5D1603FD278A40DB00D22B99 /* SubtitleSize.swift in Sources */, + E1047E2427E5880000CB0D4A /* InitialFailureView.swift in Sources */, E1AA33232782648000F6439C /* OverlaySliderColor.swift in Sources */, E103A6A7278AB6D700820EC7 /* CinematicResumeCardView.swift in Sources */, 62E1DCC4273CE19800C9AE76 /* URLExtensions.swift in Sources */, @@ -2399,6 +2404,7 @@ 62E632DA267D2BC40063E547 /* LatestMediaViewModel.swift in Sources */, E1AD105C26D9ABDD003E4A08 /* PillHStackView.swift in Sources */, 625CB56F2678C23300530A6E /* HomeView.swift in Sources */, + E1047E2327E5880000CB0D4A /* InitialFailureView.swift in Sources */, E1CEFBF527914C7700F60429 /* CustomizeViewsSettings.swift in Sources */, E1C812BC277A8E5D00918266 /* PlaybackSpeed.swift in Sources */, E1E5D5492783CDD700692DFE /* OverlaySettingsView.swift in Sources */, diff --git a/Swiftfin/Components/PortraitHStackView.swift b/Swiftfin/Components/PortraitHStackView.swift index de120c3c..e0f76706 100644 --- a/Swiftfin/Components/PortraitHStackView.swift +++ b/Swiftfin/Components/PortraitHStackView.swift @@ -45,7 +45,9 @@ struct PortraitImageHStackView: View { VStack(alignment: horizontalAlignment) { ImageView(item.imageURLConstructor(maxWidth: Int(maxWidth)), blurHash: item.blurHash, - failureInitials: item.failureInitials) + failureView: { + InitialFailureView(item.failureInitials) + }) .portraitPoster(width: maxWidth) .shadow(radius: 4, y: 2) .accessibilityIgnoresInvertColors() diff --git a/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift b/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift index cd28bb00..9407d2b2 100644 --- a/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift +++ b/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift @@ -755,7 +755,7 @@ extension VLCPlayerViewController { extension VLCPlayerViewController: VLCMediaPlayerDelegate { // MARK: mediaPlayerStateChanged - func mediaPlayerStateChanged(_ aNotification: Notification!) { + func mediaPlayerStateChanged(_ aNotification: Notification) { // Don't show buffering if paused, usually here while scrubbing if vlcMediaPlayer.state == .buffering, viewModel.playerState == .paused { return @@ -774,7 +774,7 @@ extension VLCPlayerViewController: VLCMediaPlayerDelegate { // MARK: mediaPlayerTimeChanged - func mediaPlayerTimeChanged(_ aNotification: Notification!) { + func mediaPlayerTimeChanged(_ aNotification: Notification) { if !viewModel.sliderIsScrubbing { viewModel.sliderPercentage = Double(vlcMediaPlayer.position) }