release 41

This commit is contained in:
Aiden Vigue 2021-06-12 00:00:02 -07:00
parent 66d0fdad0c
commit 3d6eb2f183
No known key found for this signature in database
GPG Key ID: B9A09843AB079D5B
10 changed files with 61 additions and 50 deletions

View File

@ -17,6 +17,8 @@
53352571265EA0A0006CCA86 /* Introspect in Frameworks */ = {isa = PBXBuildFile; productRef = 53352570265EA0A0006CCA86 /* Introspect */; };
5338F74E263B61370014BF09 /* ConnectToServerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5338F74D263B61370014BF09 /* ConnectToServerView.swift */; };
5338F757263B7E2E0014BF09 /* KeychainSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 5338F756263B7E2E0014BF09 /* KeychainSwift */; };
533A8E6626748B4F00719967 /* MobileVLCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 533A8E6526748B4F00719967 /* MobileVLCKit.framework */; platformFilter = ios; };
533A8E6726748B4F00719967 /* MobileVLCKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 533A8E6526748B4F00719967 /* MobileVLCKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
535870632669D21600D05A09 /* JellyfinPlayer_tvOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 535870622669D21600D05A09 /* JellyfinPlayer_tvOSApp.swift */; };
535870652669D21600D05A09 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 535870642669D21600D05A09 /* ContentView.swift */; };
535870672669D21700D05A09 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 535870662669D21700D05A09 /* Assets.xcassets */; };
@ -59,8 +61,6 @@
53AD124E26702B8A0094A276 /* SeasonItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53987CA326572C1300E7EA70 /* SeasonItemView.swift */; };
53C4404E266C75C70049424C /* HandleAPIRequestCompletion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53C4404D266C75C70049424C /* HandleAPIRequestCompletion.swift */; };
53C4404F266C75C70049424C /* HandleAPIRequestCompletion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53C4404D266C75C70049424C /* HandleAPIRequestCompletion.swift */; };
53D5E3DD264B47EE00BADDC8 /* MobileVLCKit.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53D5E3DC264B47EE00BADDC8 /* MobileVLCKit.xcframework */; };
53D5E3DE264B47EE00BADDC8 /* MobileVLCKit.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 53D5E3DC264B47EE00BADDC8 /* MobileVLCKit.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
53DE4BD02670961400739748 /* EpisodeItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53987CA72657424A00E7EA70 /* EpisodeItemView.swift */; };
53DE4BD2267098F300739748 /* SearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DE4BD1267098F300739748 /* SearchBarView.swift */; };
53DF641E263D9C0600A7CD1A /* LibraryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DF641D263D9C0600A7CD1A /* LibraryView.swift */; };
@ -116,6 +116,17 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
533A8E6826748B4F00719967 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
533A8E6726748B4F00719967 /* MobileVLCKit.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
5358709F2669D82900D05A09 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@ -127,17 +138,6 @@
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
53D5E3DF264B47EE00BADDC8 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 12;
dstPath = "";
dstSubfolderSpec = 10;
files = (
53D5E3DE264B47EE00BADDC8 /* MobileVLCKit.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
628B95312670CABE0091AF3B /* Embed App Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@ -156,6 +156,7 @@
5321753A2671BCFC005491E6 /* SettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = "<group>"; };
53313B8F265EEA6D00947AA3 /* VideoPlayer.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = VideoPlayer.storyboard; sourceTree = "<group>"; };
5338F74D263B61370014BF09 /* ConnectToServerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectToServerView.swift; sourceTree = "<group>"; };
533A8E6526748B4F00719967 /* MobileVLCKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileVLCKit.framework; path = "Carthage/Build/MobileVLCKit.xcframework/ios-arm64_armv7_armv7s/MobileVLCKit.framework"; sourceTree = "<group>"; };
535870602669D21600D05A09 /* JellyfinPlayer tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "JellyfinPlayer tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
535870622669D21600D05A09 /* JellyfinPlayer_tvOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JellyfinPlayer_tvOSApp.swift; sourceTree = "<group>"; };
535870642669D21600D05A09 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
@ -233,8 +234,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
533A8E6626748B4F00719967 /* MobileVLCKit.framework in Frameworks */,
5338F757263B7E2E0014BF09 /* KeychainSwift in Frameworks */,
53D5E3DD264B47EE00BADDC8 /* MobileVLCKit.xcframework in Frameworks */,
53352571265EA0A0006CCA86 /* Introspect in Frameworks */,
621C638026672A30004216EA /* NukeUI in Frameworks */,
53A431BD266B0FF20016769F /* JellyfinAPI in Frameworks */,
@ -373,6 +374,7 @@
53D5E3DB264B47EE00BADDC8 /* Frameworks */ = {
isa = PBXGroup;
children = (
533A8E6526748B4F00719967 /* MobileVLCKit.framework */,
5358709C2669D82900D05A09 /* TVVLCKit.framework */,
53D5E3DC264B47EE00BADDC8 /* MobileVLCKit.xcframework */,
628B95212670CABD0091AF3B /* WidgetKit.framework */,
@ -454,9 +456,9 @@
5377CBED263B596A003A4E83 /* Sources */,
5377CBEE263B596A003A4E83 /* Frameworks */,
5377CBEF263B596A003A4E83 /* Resources */,
53D5E3DF264B47EE00BADDC8 /* Embed Frameworks */,
5302F8322658B74800647A2E /* CopyFiles */,
628B95312670CABE0091AF3B /* Embed App Extensions */,
533A8E6826748B4F00719967 /* Embed Frameworks */,
);
buildRules = (
);
@ -863,6 +865,10 @@
ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES;
EXCLUDED_ARCHS = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/MobileVLCKit.xcframework/ios-arm64_armv7_armv7s",
);
INFOPLIST_FILE = JellyfinPlayer/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
LD_RUNPATH_SEARCH_PATHS = (
@ -896,6 +902,10 @@
ENABLE_BITCODE = NO;
ENABLE_PREVIEWS = YES;
EXCLUDED_ARCHS = "";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/MobileVLCKit.xcframework/ios-arm64_armv7_armv7s",
);
INFOPLIST_FILE = JellyfinPlayer/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
LD_RUNPATH_SEARCH_PATHS = (
@ -1033,8 +1043,8 @@
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/kean/NukeUI";
requirement = {
branch = main;
kind = branch;
kind = exactVersion;
version = 0.3.0;
};
};
/* End XCRemoteSwiftPackageReference section */

View File

@ -20,16 +20,16 @@
}
},
{
"package": "JellyfinAPI",
"package": "jellyfin-sdk-swift",
"repositoryURL": "https://github.com/jellyfin/jellyfin-sdk-swift",
"state": {
"branch": "main",
"revision": "02fe19f44738341aa2ad7d9452f74ad3464a639d",
"revision": "5cdc2419f547b3f31dc96f5eccaf3f303f44184b",
"version": null
}
},
{
"package": "KeychainSwift",
"package": "keychain-swift",
"repositoryURL": "https://github.com/evgenyneu/keychain-swift",
"state": {
"branch": null,
@ -42,21 +42,21 @@
"repositoryURL": "https://github.com/kean/Nuke.git",
"state": {
"branch": null,
"revision": "e1e9d056fedafa486508759923a0db61ce46f1bc",
"version": "10.1.0"
"revision": "69ae6d5b8c4b898450432f94bd35f863d3830cfc",
"version": "10.3.0"
}
},
{
"package": "NukeUI",
"repositoryURL": "https://github.com/kean/NukeUI",
"state": {
"branch": "main",
"revision": "31ef27030d4ebf8fc5a3d5b44d66e281921883ab",
"version": null
"branch": null,
"revision": "d2580b8d22b29c6244418d8e4b568f3162191460",
"version": "0.3.0"
}
},
{
"package": "Introspect",
"package": "SwiftUI-Introspect",
"repositoryURL": "https://github.com/siteline/SwiftUI-Introspect",
"state": {
"branch": null,

View File

@ -155,7 +155,7 @@ struct ConnectToServerView: View {
Button {
isWorking = true
if !uri.contains("http") {
uri = "http://" + uri
uri = "https://" + uri
}
if uri.last == "/" {
uri = String(uri.dropLast())

View File

@ -9,7 +9,6 @@ import SwiftUI
import KeychainSwift
import Nuke
import Combine
import JellyfinAPI
import WidgetKit
@ -38,7 +37,7 @@ struct ContentView: View {
@State private var loadState: Int = 2
private var recentFilterSet: LibraryFilters = LibraryFilters(filters: [], sortOrder: [.descending], sortBy: ["DateCreated"])
func startup() {
if viewDidLoad == true {
return

View File

@ -14,7 +14,7 @@ struct LibraryListView: View {
@State var library_ids: [String] = ["favorites", "genres"]
@State var library_names: [String: String] = ["favorites": "Favorites", "genres": "Genres"]
var libraries: [String: String] = [:] // input libraries
var withFavorites: LibraryFilters = LibraryFilters(filters: [.isFavorite], sortOrder: [.descending], sortBy: ["SortName"])
var withFavorites: LibraryFilters!
init(libraries: [String: String]) {
self.libraries = libraries

View File

@ -17,12 +17,12 @@ struct LibraryView: View {
@State private var items: [BaseItemDto] = []
@State private var isLoading: Bool = false
var usingParentID: String = ""
var title: String = ""
var filters: LibraryFilters = LibraryFilters()
var personId: String = ""
var genre: String = ""
var studio: String = ""
private var usingParentID: String = ""
private var title: String = ""
private var filters: LibraryFilters = LibraryFilters()
private var personId: String = ""
private var genre: String = ""
private var studio: String = ""
@State private var totalPages: Int = 0
@State private var currentPage: Int = 0

View File

@ -25,11 +25,11 @@ struct SettingsView: View {
func onAppear() {
let defaults = UserDefaults.standard
_username.wrappedValue = globalData.user.username!
_inNetworkStreamBitrate.wrappedValue = defaults.integer(forKey: "InNetworkBandwidth")
_outOfNetworkStreamBitrate.wrappedValue = defaults.integer(forKey: "OutOfNetworkBandwidth")
_autoSelectSubtitles.wrappedValue = defaults.bool(forKey: "AutoSelectSubtitles")
_autoSelectSubtitlesLangcode.wrappedValue = defaults.string(forKey: "AutoSelectSubtitlesLangcode") ?? ""
username = globalData.user.username!
inNetworkStreamBitrate = defaults.integer(forKey: "InNetworkBandwidth")
outOfNetworkStreamBitrate = defaults.integer(forKey: "OutOfNetworkBandwidth")
autoSelectSubtitles = defaults.bool(forKey: "AutoSelectSubtitles")
autoSelectSubtitlesLangcode = defaults.string(forKey: "AutoSelectSubtitlesLangcode") ?? ""
}
var body: some View {

View File

@ -79,6 +79,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
var manifest: BaseItemDto = BaseItemDto()
var playbackItem = PlaybackItem()
//MARK: IBActions
@IBAction func seekSliderStart(_ sender: Any) {
sendProgressReport(eventName: "pause")
mediaPlayer.pause()
@ -257,6 +258,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe
dump(event)
}
//MARK: viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
// View has loaded.

View File

@ -11,7 +11,7 @@ import JellyfinAPI
struct LibraryFilters: Codable, Hashable {
var filters: [ItemFilter] = []
var sortOrder: [SortOrder] = [.descending]
var sortOrder: [APISortOrder] = [.descending]
var withGenres: [NameGuidPair] = []
var sortBy: [String] = ["SortName"]
}

View File

@ -168,14 +168,14 @@ struct NextUpEntryView: View {
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
} else {
switch family {
case .systemSmall:
small(item: entry.items.first)
case .systemMedium:
medium(items: entry.items)
case .systemLarge:
large(items: entry.items)
@unknown default:
EmptyView()
case .systemSmall:
small(item: entry.items.first)
case .systemMedium:
medium(items: entry.items)
case .systemLarge:
large(items: entry.items)
default:
EmptyView()
}
}
}