From 438ce63c5cdbedf3bbd165f63ac7647a89875463 Mon Sep 17 00:00:00 2001 From: koen Date: Sun, 9 Jan 2022 13:13:21 +0100 Subject: [PATCH 1/4] Provides subtitle size options --- Shared/Objects/SubtitleSize.swift | 59 +++++++++++++++++ .../SwiftfinStore/SwiftfinStoreDefaults.swift | 1 + Swiftfin.xcodeproj/project.pbxproj | 66 +++++++++++++++++-- Swiftfin.xcworkspace/contents.xcworkspacedata | 3 - Swiftfin/Extensions/VLCPlayer+subtitles.swift | 23 +++++++ .../Views/SettingsView/SettingsView.swift | 6 ++ .../VideoPlayer/VLCPlayerViewController.swift | 5 +- 7 files changed, 152 insertions(+), 11 deletions(-) create mode 100644 Shared/Objects/SubtitleSize.swift create mode 100644 Swiftfin/Extensions/VLCPlayer+subtitles.swift diff --git a/Shared/Objects/SubtitleSize.swift b/Shared/Objects/SubtitleSize.swift new file mode 100644 index 00000000..7b944efc --- /dev/null +++ b/Shared/Objects/SubtitleSize.swift @@ -0,0 +1,59 @@ +// + /* + * 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 2021 Aiden Vigue & Jellyfin Contributors + */ + +import Defaults + +enum SubtitleSize: Int32, CaseIterable, Defaults.Serializable { + case smallest + case smaller + case regular + case larger + case largest +} + +// MARK: - appearance + +extension SubtitleSize { + var label: String { + switch self { + case .smallest: + return "Smallest" + case .smaller: + return "Smaller" + case .regular: + return "Regular" + case .larger: + return "Larger" + case .largest: + return "Largest" + } + } +} + +// MARK: - sizing for VLC + +extension SubtitleSize { + /// Value to be passed to VLCKit (via hacky internal property, until VLCKit 4) + /// + /// note that it doesn't correspond to actual font sizes; a smaller int creates bigger text + var textRendererFontSize: Int { + switch self { + case .smallest: + return 24 + case .smaller: + return 20 + case .regular: + return 16 + case .larger: + return 12 + case .largest: + return 8 + } + } +} diff --git a/Shared/SwiftfinStore/SwiftfinStoreDefaults.swift b/Shared/SwiftfinStore/SwiftfinStoreDefaults.swift index ecb744a0..b01547ef 100644 --- a/Shared/SwiftfinStore/SwiftfinStoreDefaults.swift +++ b/Shared/SwiftfinStore/SwiftfinStoreDefaults.swift @@ -49,6 +49,7 @@ extension Defaults.Keys { static let videoPlayerJumpBackward = Key("videoPlayerJumpBackward", default: .fifteen, suite: SwiftfinStore.Defaults.generalSuite) static let autoplayEnabled = Key("autoPlayNextItem", default: true, suite: SwiftfinStore.Defaults.generalSuite) static let resumeOffset = Key("resumeOffset", default: false, suite: SwiftfinStore.Defaults.generalSuite) + static let subtitleSize = Key("subtitleSize", default: .regular, suite: SwiftfinStore.Defaults.generalSuite) // Should show video player items static let shouldShowPlayPreviousItem = Key("shouldShowPreviousItem", default: true, suite: SwiftfinStore.Defaults.generalSuite) diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index 2413e1ea..f41df93f 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -138,6 +138,10 @@ 53EE24E6265060780068F029 /* LibrarySearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53EE24E5265060780068F029 /* LibrarySearchView.swift */; }; 53F866442687A45F00DCD1D7 /* PortraitItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53F866432687A45F00DCD1D7 /* PortraitItemView.swift */; }; 53FF7F2A263CF3F500585C35 /* LatestMediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53FF7F29263CF3F500585C35 /* LatestMediaView.swift */; }; + 5D1603FC278A3D5800D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; + 5D1603FD278A40DB00D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; + 5D1603FE278A40DC00D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; + 5D160403278A41FD00D22B99 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; 5D64683D277B1649009E09AE /* PreferenceUIHostingSwizzling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D64683C277B1649009E09AE /* PreferenceUIHostingSwizzling.swift */; }; 62133890265F83A900A81A2A /* LibraryListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6213388F265F83A900A81A2A /* LibraryListView.swift */; }; 621338932660107500A81A2A /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621338922660107500A81A2A /* StringExtensions.swift */; }; @@ -558,6 +562,8 @@ 53EE24E5265060780068F029 /* LibrarySearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibrarySearchView.swift; sourceTree = ""; }; 53F866432687A45F00DCD1D7 /* PortraitItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PortraitItemView.swift; sourceTree = ""; }; 53FF7F29263CF3F500585C35 /* LatestMediaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LatestMediaView.swift; sourceTree = ""; }; + 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubtitleSize.swift; sourceTree = ""; }; + 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VLCPlayer+subtitles.swift"; sourceTree = ""; }; 5D64683C277B1649009E09AE /* PreferenceUIHostingSwizzling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferenceUIHostingSwizzling.swift; sourceTree = ""; }; 6213388F265F83A900A81A2A /* LibraryListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryListView.swift; sourceTree = ""; }; 621338922660107500A81A2A /* StringExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; @@ -953,6 +959,7 @@ E193D4DA27193CCA00900D82 /* PillStackable.swift */, E193D4D727193CAC00900D82 /* PortraitImageStackable.swift */, E10D87DD278510E300BD264C /* PosterSize.swift */, + 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */, E1D4BF832719D25A00A11E64 /* TrackLanguage.swift */, 535870AC2669D8DD00D05A09 /* Typings.swift */, E1F0204D26CCCA74001C1C3B /* VideoPlayerJumpLength.swift */, @@ -1010,6 +1017,7 @@ 62ECA01926FA6D6900E8EBB7 /* AppURLHandler */, 5377CBF8263B596B003A4E83 /* Assets.xcassets */, 53F866422687A45400DCD1D7 /* Components */, + 5D160401278A41BA00D22B99 /* Extensions */, 5377CC02263B596B003A4E83 /* Info.plist */, E13D02842788B634000FCB04 /* Swiftfin.entitlements */, 5377CBFA263B596B003A4E83 /* Preview Content */, @@ -1188,6 +1196,14 @@ path = Components; sourceTree = ""; }; + 5D160401278A41BA00D22B99 /* Extensions */ = { + isa = PBXGroup; + children = ( + 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */, + ); + path = Extensions; + sourceTree = ""; + }; 5D64683B277B15E4009E09AE /* PreferenceUIHosting */ = { isa = PBXGroup; children = ( @@ -1615,6 +1631,7 @@ buildPhases = ( 3D0F2756C71CDF6B9EEBD4E0 /* [CP] Check Pods Manifest.lock */, 6286F0A3271C0ABA00C40ED5 /* R.swift */, + C6EE6AB295A273FF14E6EF56 /* [CP] Prepare Artifacts */, 5358705C2669D21600D05A09 /* Sources */, 5358705D2669D21600D05A09 /* Frameworks */, 5358705E2669D21600D05A09 /* Resources */, @@ -1648,6 +1665,7 @@ buildPhases = ( 1C7487D3432E90546DA855B5 /* [CP] Check Pods Manifest.lock */, 6286F09E271C093000C40ED5 /* R.swift */, + AB001A5552FE000244A447A4 /* [CP] Prepare Artifacts */, 5377CBED263B596A003A4E83 /* Sources */, 5377CBEE263B596A003A4E83 /* Frameworks */, 5377CBEF263B596A003A4E83 /* Resources */, @@ -1759,7 +1777,7 @@ 536D3D82267BEA550004248C /* XCRemoteSwiftPackageReference "ParallaxView" */, 53649AAB269CFAEA00A2D8B7 /* XCRemoteSwiftPackageReference "Puppy" */, 62C29E9A26D0FE4100C1D2E7 /* XCRemoteSwiftPackageReference "stinsen" */, - E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore.git" */, + E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore" */, E13DD3D127168E65009D4DAF /* XCRemoteSwiftPackageReference "Defaults" */, E1267D42271A212C003C492E /* XCRemoteSwiftPackageReference "CombineExt" */, E1C16B89271A2180009A5D25 /* XCRemoteSwiftPackageReference "SwiftyJSON" */, @@ -1973,6 +1991,40 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; + AB001A5552FE000244A447A4 /* [CP] Prepare Artifacts */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Prepare Artifacts"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts.sh\"\n"; + showEnvVarsInLog = 0; + }; + C6EE6AB295A273FF14E6EF56 /* [CP] Prepare Artifacts */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Swiftfin tvOS/Pods-Swiftfin tvOS-artifacts-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Prepare Artifacts"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Swiftfin tvOS/Pods-Swiftfin tvOS-artifacts-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Swiftfin tvOS/Pods-Swiftfin tvOS-artifacts.sh\"\n"; + showEnvVarsInLog = 0; + }; D4D3981ADF75BCD341D590C0 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -2107,6 +2159,7 @@ E1AD104E26D96CE3003E4A08 /* BaseItemDtoExtensions.swift in Sources */, 62E632DD267D2E130063E547 /* LibrarySearchViewModel.swift in Sources */, 536D3D81267BDFC60004248C /* PortraitItemElement.swift in Sources */, + 5D1603FD278A40DB00D22B99 /* SubtitleSize.swift in Sources */, E1AA33232782648000F6439C /* OverlaySliderColor.swift in Sources */, 62E1DCC4273CE19800C9AE76 /* URLExtensions.swift in Sources */, 5398514726B64E4100101B49 /* SearchBarView.swift in Sources */, @@ -2212,6 +2265,7 @@ E13DD3EC27178A54009D4DAF /* UserSignInViewModel.swift in Sources */, 625CB5772678C34300530A6E /* ConnectToServerViewModel.swift in Sources */, C4BE07852728446F003F4AD1 /* LiveTVChannelsViewModel.swift in Sources */, + 5D160403278A41FD00D22B99 /* VLCPlayer+subtitles.swift in Sources */, 536D3D78267BD5C30004248C /* ViewModel.swift in Sources */, C4BE078B272844AF003F4AD1 /* LiveTVChannelsView.swift in Sources */, E1FCD08826C35A0D007C8DCF /* NetworkError.swift in Sources */, @@ -2251,6 +2305,7 @@ 091B5A8B2683142E00D78B61 /* UDPBroadCastConnection.swift in Sources */, 6267B3D626710B8900A7371D /* CollectionExtensions.swift in Sources */, E13DD3F5271793BB009D4DAF /* UserSignInView.swift in Sources */, + 5D1603FC278A3D5800D22B99 /* SubtitleSize.swift in Sources */, E1F0204E26CCCA74001C1C3B /* VideoPlayerJumpLength.swift in Sources */, 53649AB1269CFB1900A2D8B7 /* LogManager.swift in Sources */, E13DD3E127176BD3009D4DAF /* ServerListViewModel.swift in Sources */, @@ -2362,6 +2417,7 @@ 62E1DCC5273CE19800C9AE76 /* URLExtensions.swift in Sources */, 62EC353226766849000E9F2D /* SessionManager.swift in Sources */, 536D3D79267BD5D00004248C /* ViewModel.swift in Sources */, + 5D1603FE278A40DC00D22B99 /* SubtitleSize.swift in Sources */, E1AA332427829B5200F6439C /* OverlayType.swift in Sources */, E1D4BF8C2719F39F00A11E64 /* AppAppearance.swift in Sources */, ); @@ -2936,7 +2992,7 @@ minimumVersion = 1.0.0; }; }; - E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore.git" */ = { + E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/JohnEstropia/CoreStore.git"; requirement = { @@ -3060,17 +3116,17 @@ }; E13DD3C52716499E009D4DAF /* CoreStore */ = { isa = XCSwiftPackageProductDependency; - package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore.git" */; + package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore" */; productName = CoreStore; }; E13DD3CC27164CA7009D4DAF /* CoreStore */ = { isa = XCSwiftPackageProductDependency; - package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore.git" */; + package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore" */; productName = CoreStore; }; E13DD3CE27164E1F009D4DAF /* CoreStore */ = { isa = XCSwiftPackageProductDependency; - package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore.git" */; + package = E13DD3C42716499E009D4DAF /* XCRemoteSwiftPackageReference "CoreStore" */; productName = CoreStore; }; E13DD3D227168E65009D4DAF /* Defaults */ = { diff --git a/Swiftfin.xcworkspace/contents.xcworkspacedata b/Swiftfin.xcworkspace/contents.xcworkspacedata index a4438826..fe2f5a72 100644 --- a/Swiftfin.xcworkspace/contents.xcworkspacedata +++ b/Swiftfin.xcworkspace/contents.xcworkspacedata @@ -7,7 +7,4 @@ - - diff --git a/Swiftfin/Extensions/VLCPlayer+subtitles.swift b/Swiftfin/Extensions/VLCPlayer+subtitles.swift new file mode 100644 index 00000000..d3b27d63 --- /dev/null +++ b/Swiftfin/Extensions/VLCPlayer+subtitles.swift @@ -0,0 +1,23 @@ +// + /* + * 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 2021 Aiden Vigue & Jellyfin Contributors + */ + +import MobileVLCKit + +extension VLCMediaPlayer { + /// Applies font size to the player + /// + /// This is pretty hacky until VLCKit 4 has a public API to support this + /// Supposedly it also does not work for tvOS + func setSubtitleSize(_ size: SubtitleSize) { + perform( + Selector(("setTextRendererFontSize:")), + with: size.textRendererFontSize + ) + } +} diff --git a/Swiftfin/Views/SettingsView/SettingsView.swift b/Swiftfin/Views/SettingsView/SettingsView.swift index 81ac1b09..8929dd9a 100644 --- a/Swiftfin/Views/SettingsView/SettingsView.swift +++ b/Swiftfin/Views/SettingsView/SettingsView.swift @@ -28,6 +28,7 @@ struct SettingsView: View { @Default(.showPosterLabels) var showPosterLabels @Default(.showCastAndCrew) var showCastAndCrew @Default(.resumeOffset) var resumeOffset + @Default(.subtitleSize) var subtitleSize var body: some View { Form { @@ -127,6 +128,11 @@ struct SettingsView: View { Text(appearance.localizedName).tag(appearance.rawValue) } } + Picker("Subtitle size", selection: $subtitleSize) { + ForEach(SubtitleSize.allCases, id: \.self) { size in + Text(size.label).tag(size.rawValue) + } + } } } .navigationBarTitle("Settings", displayMode: .inline) diff --git a/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift b/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift index 7f1c6216..e089e0bd 100644 --- a/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift +++ b/Swiftfin/Views/VideoPlayer/VLCPlayerViewController.swift @@ -102,9 +102,8 @@ class VLCPlayerViewController: UIViewController { vlcMediaPlayer.delegate = self vlcMediaPlayer.drawable = videoContentView - // TODO: Custom subtitle sizes - vlcMediaPlayer.perform(Selector(("setTextRendererFontSize:")), with: 14) - + vlcMediaPlayer.setSubtitleSize(Defaults[.subtitleSize]) + setupMediaPlayer(newViewModel: viewModel) refreshJumpBackwardOverlayView(with: viewModel.jumpBackwardLength) From a94ddd1d36154075424ccd3f205c7648912bd531 Mon Sep 17 00:00:00 2001 From: koen Date: Mon, 10 Jan 2022 17:46:25 +0100 Subject: [PATCH 2/4] Added subtitle sizes in tvOS --- .../Extensions/VLCPlayer+subtitles.swift | 5 ++++- Swiftfin tvOS/Views/SettingsView/SettingsView.swift | 13 +++++++++++-- .../Views/VideoPlayer/VLCPlayerViewController.swift | 5 ++--- Swiftfin.xcodeproj/project.pbxproj | 6 +++++- 4 files changed, 22 insertions(+), 7 deletions(-) rename {Swiftfin => Shared}/Extensions/VLCPlayer+subtitles.swift (92%) diff --git a/Swiftfin/Extensions/VLCPlayer+subtitles.swift b/Shared/Extensions/VLCPlayer+subtitles.swift similarity index 92% rename from Swiftfin/Extensions/VLCPlayer+subtitles.swift rename to Shared/Extensions/VLCPlayer+subtitles.swift index d3b27d63..f1e9b6bd 100644 --- a/Swiftfin/Extensions/VLCPlayer+subtitles.swift +++ b/Shared/Extensions/VLCPlayer+subtitles.swift @@ -7,13 +7,16 @@ * Copyright 2021 Aiden Vigue & Jellyfin Contributors */ +#if os(tvOS) +import TVVLCKit +#else import MobileVLCKit +#endif extension VLCMediaPlayer { /// Applies font size to the player /// /// This is pretty hacky until VLCKit 4 has a public API to support this - /// Supposedly it also does not work for tvOS func setSubtitleSize(_ size: SubtitleSize) { perform( Selector(("setTextRendererFontSize:")), diff --git a/Swiftfin tvOS/Views/SettingsView/SettingsView.swift b/Swiftfin tvOS/Views/SettingsView/SettingsView.swift index 4b6d66bc..ab13e887 100644 --- a/Swiftfin tvOS/Views/SettingsView/SettingsView.swift +++ b/Swiftfin tvOS/Views/SettingsView/SettingsView.swift @@ -23,6 +23,7 @@ struct SettingsView: View { @Default(.tvOSCinematicViews) var tvOSCinematicViews @Default(.showPosterLabels) var showPosterLabels @Default(.resumeOffset) var resumeOffset + @Default(.subtitleSize) var subtitleSize var body: some View { GeometryReader { reader in @@ -115,11 +116,19 @@ struct SettingsView: View { Section { Toggle("Cinematic Views", isOn: $tvOSCinematicViews) - Toggle("Show Poster Labels", isOn: $showPosterLabels) - } header: { Text("Appearance") } + + Section(header: L10n.accessibility.text) { + Toggle("Show Poster Labels", isOn: $showPosterLabels) + + Picker("Subtitle size", selection: $subtitleSize) { + ForEach(SubtitleSize.allCases, id: \.self) { size in + Text(size.label).tag(size.rawValue) + } + } + } } } } diff --git a/Swiftfin tvOS/Views/VideoPlayer/VLCPlayerViewController.swift b/Swiftfin tvOS/Views/VideoPlayer/VLCPlayerViewController.swift index 26f2eb80..afd2f15c 100644 --- a/Swiftfin tvOS/Views/VideoPlayer/VLCPlayerViewController.swift +++ b/Swiftfin tvOS/Views/VideoPlayer/VLCPlayerViewController.swift @@ -395,9 +395,8 @@ extension VLCPlayerViewController { vlcMediaPlayer.delegate = self vlcMediaPlayer.drawable = videoContentView - - // TODO: Custom subtitle sizes - vlcMediaPlayer.perform(Selector(("setTextRendererFontSize:")), with: 16) + + vlcMediaPlayer.setSubtitleSize(Defaults[.subtitleSize]) stopOverlayDismissTimer() diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index 0138d076..9b01263a 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -142,6 +142,8 @@ 5D1603FD278A40DB00D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; 5D1603FE278A40DC00D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; 5D160403278A41FD00D22B99 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; + 5D32EA12278C95E30020E292 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; + 5D32EA13278C95E40020E292 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; 5D64683D277B1649009E09AE /* PreferenceUIHostingSwizzling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D64683C277B1649009E09AE /* PreferenceUIHostingSwizzling.swift */; }; 62133890265F83A900A81A2A /* LibraryListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6213388F265F83A900A81A2A /* LibraryListView.swift */; }; 621338932660107500A81A2A /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621338922660107500A81A2A /* StringExtensions.swift */; }; @@ -1206,7 +1208,6 @@ 5D160401278A41BA00D22B99 /* Extensions */ = { isa = PBXGroup; children = ( - 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */, ); path = Extensions; sourceTree = ""; @@ -1234,6 +1235,7 @@ E13DD3C727164B1E009D4DAF /* UIDeviceExtensions.swift */, E1C812C4277A90B200918266 /* URLComponentsExtensions.swift */, 62E1DCC2273CE19800C9AE76 /* URLExtensions.swift */, + 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */, 6220D0AC26D5EABB00B8E046 /* ViewExtensions.swift */, ); path = Extensions; @@ -2098,6 +2100,7 @@ E13DD3F027178F87009D4DAF /* SwiftfinNotificationCenter.swift in Sources */, 531690E7267ABD79005D8AB9 /* HomeView.swift in Sources */, E11D224327378428003F9CB3 /* ServerDetailCoordinator.swift in Sources */, + 5D32EA12278C95E30020E292 /* VLCPlayer+subtitles.swift in Sources */, E1D4BF8B2719D3D000A11E64 /* BasicAppSettingsCoordinator.swift in Sources */, E1E5D53B2783A80900692DFE /* CinematicItemViewTopRow.swift in Sources */, E1C812CB277AE40900918266 /* NativePlayerViewController.swift in Sources */, @@ -2420,6 +2423,7 @@ E1AD105426D97161003E4A08 /* BaseItemDtoExtensions.swift in Sources */, E1FCD09A26C4F35A007C8DCF /* ErrorMessage.swift in Sources */, 628B95272670CABD0091AF3B /* NextUpWidget.swift in Sources */, + 5D32EA13278C95E40020E292 /* VLCPlayer+subtitles.swift in Sources */, E13DD3F72717E87D009D4DAF /* SwiftfinNotificationCenter.swift in Sources */, E1D4BF8D2719F3A300A11E64 /* VideoPlayerJumpLength.swift in Sources */, 6220D0AF26D5EABE00B8E046 /* ViewExtensions.swift in Sources */, From 73a7e1f9001af38e692bcd1dee79c1817cc1dbdf Mon Sep 17 00:00:00 2001 From: koen Date: Mon, 10 Jan 2022 21:09:49 +0100 Subject: [PATCH 3/4] Exclude VLCKit from widget extension --- Swiftfin.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index 558a371c..f81672e4 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -143,7 +143,6 @@ 5D1603FE278A40DC00D22B99 /* SubtitleSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1603FB278A3D5700D22B99 /* SubtitleSize.swift */; }; 5D160403278A41FD00D22B99 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; 5D32EA12278C95E30020E292 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; - 5D32EA13278C95E40020E292 /* VLCPlayer+subtitles.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D160402278A41FD00D22B99 /* VLCPlayer+subtitles.swift */; }; 5D64683D277B1649009E09AE /* PreferenceUIHostingSwizzling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D64683C277B1649009E09AE /* PreferenceUIHostingSwizzling.swift */; }; 62133890265F83A900A81A2A /* LibraryListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6213388F265F83A900A81A2A /* LibraryListView.swift */; }; 621338932660107500A81A2A /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 621338922660107500A81A2A /* StringExtensions.swift */; }; @@ -2474,7 +2473,6 @@ E1AD105426D97161003E4A08 /* BaseItemDtoExtensions.swift in Sources */, E1FCD09A26C4F35A007C8DCF /* ErrorMessage.swift in Sources */, 628B95272670CABD0091AF3B /* NextUpWidget.swift in Sources */, - 5D32EA13278C95E40020E292 /* VLCPlayer+subtitles.swift in Sources */, E13DD3F72717E87D009D4DAF /* SwiftfinNotificationCenter.swift in Sources */, E1D4BF8D2719F3A300A11E64 /* VideoPlayerJumpLength.swift in Sources */, 6220D0AF26D5EABE00B8E046 /* ViewExtensions.swift in Sources */, From b0cda6f48f11e74701758af6e2afadf3302c4980 Mon Sep 17 00:00:00 2001 From: koen Date: Mon, 10 Jan 2022 21:21:27 +0100 Subject: [PATCH 4/4] Removed prepare artefacts build phase --- Swiftfin.xcodeproj/project.pbxproj | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/Swiftfin.xcodeproj/project.pbxproj b/Swiftfin.xcodeproj/project.pbxproj index f81672e4..ab281514 100644 --- a/Swiftfin.xcodeproj/project.pbxproj +++ b/Swiftfin.xcodeproj/project.pbxproj @@ -1716,7 +1716,6 @@ buildPhases = ( 1C7487D3432E90546DA855B5 /* [CP] Check Pods Manifest.lock */, 6286F09E271C093000C40ED5 /* R.swift */, - AB001A5552FE000244A447A4 /* [CP] Prepare Artifacts */, 5377CBED263B596A003A4E83 /* Sources */, 5377CBEE263B596A003A4E83 /* Frameworks */, 5377CBEF263B596A003A4E83 /* Resources */, @@ -2042,23 +2041,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AB001A5552FE000244A447A4 /* [CP] Prepare Artifacts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Prepare Artifacts"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Swiftfin iOS/Pods-Swiftfin iOS-artifacts.sh\"\n"; - showEnvVarsInLog = 0; - }; C6EE6AB295A273FF14E6EF56 /* [CP] Prepare Artifacts */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647;