diff --git a/JellyfinPlayer.xcodeproj/project.pbxproj b/JellyfinPlayer.xcodeproj/project.pbxproj index 591aea64..d613b567 100644 --- a/JellyfinPlayer.xcodeproj/project.pbxproj +++ b/JellyfinPlayer.xcodeproj/project.pbxproj @@ -545,9 +545,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 20; - DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer/Preview Content\""; - DEVELOPMENT_TEAM = 4BHXT8RHFR; + CURRENT_PROJECT_VERSION = 22; + DEVELOPMENT_ASSET_PATHS = ""; + DEVELOPMENT_TEAM = 9R8RREG67J; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; EXCLUDED_ARCHS = ""; @@ -571,10 +571,10 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 20; + CURRENT_PROJECT_VERSION = 22; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer/Preview Content\""; - DEVELOPMENT_TEAM = 4BHXT8RHFR; + DEVELOPMENT_ASSET_PATHS = ""; + DEVELOPMENT_TEAM = 9R8RREG67J; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; EXCLUDED_ARCHS = ""; diff --git a/JellyfinPlayer/Assets.xcassets/AccentColor.colorset/Contents.json b/JellyfinPlayer/Assets.xcassets/AccentColor.colorset/Contents.json index eb878970..ed190814 100644 --- a/JellyfinPlayer/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/JellyfinPlayer/Assets.xcassets/AccentColor.colorset/Contents.json @@ -1,6 +1,15 @@ { "colors" : [ { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xC3", + "green" : "0x5C", + "red" : "0xAA" + } + }, "idiom" : "universal" } ], diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/100.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/100.png new file mode 100644 index 00000000..3344d384 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/1024.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 00000000..39934f79 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/114.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 00000000..2bf3e86d Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/120.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/120.png new file mode 100644 index 00000000..747d0a70 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/144.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/144.png new file mode 100644 index 00000000..ac27ff59 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/152.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/152.png new file mode 100644 index 00000000..416ad786 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/167.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/167.png new file mode 100644 index 00000000..45e73a86 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/180.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 00000000..2ca9c5c5 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/20.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/20.png new file mode 100644 index 00000000..ce097830 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/29.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/29.png new file mode 100644 index 00000000..bfcf1009 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/40.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 00000000..acbb7cba Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/50.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/50.png new file mode 100644 index 00000000..ffb6fd49 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/57.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 00000000..3978d6f9 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/58.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/58.png new file mode 100644 index 00000000..899d55a8 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/60.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 00000000..7a324dca Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/72.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/72.png new file mode 100644 index 00000000..a425ce88 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/76.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/76.png new file mode 100644 index 00000000..1b174312 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/80.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 00000000..8d4ea26b Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/87.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 00000000..9ef41a73 Binary files /dev/null and b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Contents.json b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Contents.json index b313d6fc..65b74d7e 100644 --- a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,114 +1 @@ -{ - "images" : [ - { - "filename" : "Icon-Spotlight-42.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-60.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "Icon-Small@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-Small@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "Icon-Spotlight-40@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-Spotlight-40@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "Icon-60@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "Icon-60@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ipad", - "scale" : "1x", - "size" : "20x20" - }, - { - "filename" : "Icon-Spotlight-41.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-Small.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "29x29" - }, - { - "filename" : "Icon-Small@2x-1.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-Spotlight-40.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "40x40" - }, - { - "filename" : "Icon-Spotlight-40@2x-1.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-76.png", - "idiom" : "ipad", - "scale" : "1x", - "size" : "76x76" - }, - { - "filename" : "Icon-76@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "76x76" - }, - { - "filename" : "Icon-iPadPro@2x.png", - "idiom" : "ipad", - "scale" : "2x", - "size" : "83.5x83.5" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} +{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]} \ No newline at end of file diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60.png deleted file mode 100644 index 4fea123d..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index cfb6ba73..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png deleted file mode 100644 index e25f7f48..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png deleted file mode 100644 index fe1980d9..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-72@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76.png deleted file mode 100644 index 7b5e329f..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index fc65b467..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@3x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@3x.png deleted file mode 100644 index 806d2a64..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-76@3x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50.png deleted file mode 100644 index 214ab957..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png deleted file mode 100644 index 4d232062..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small-50@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small.png deleted file mode 100644 index c78c0af4..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png deleted file mode 100644 index fd561818..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png deleted file mode 100644 index 06ed8a0f..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png deleted file mode 100644 index ab8345c2..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png deleted file mode 100644 index f5a60d14..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png deleted file mode 100644 index f5a60d14..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png deleted file mode 100644 index 8604a4c5..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-42.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-42.png deleted file mode 100644 index ab8345c2..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-Spotlight-42.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png b/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png deleted file mode 100644 index 2751b336..00000000 Binary files a/JellyfinPlayer/Assets.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png and /dev/null differ diff --git a/JellyfinPlayer/Assets.xcassets/Color-1.colorset/Contents.json b/JellyfinPlayer/Assets.xcassets/Color-1.colorset/Contents.json new file mode 100644 index 00000000..88fe200a --- /dev/null +++ b/JellyfinPlayer/Assets.xcassets/Color-1.colorset/Contents.json @@ -0,0 +1,29 @@ +{ + "colors" : [ + { + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/JellyfinPlayer/ContinueWatchingView.swift b/JellyfinPlayer/ContinueWatchingView.swift index 0ad87ff1..73de1eea 100644 --- a/JellyfinPlayer/ContinueWatchingView.swift +++ b/JellyfinPlayer/ContinueWatchingView.swift @@ -172,7 +172,6 @@ struct ContinueWatchingView: View { }.padding(.trailing, 5) } } - Spacer().frame(width:12) }.frame(height: 215) } else { EmptyView() diff --git a/JellyfinPlayer/Info.plist b/JellyfinPlayer/Info.plist index 1b0f697e..afa37c36 100644 --- a/JellyfinPlayer/Info.plist +++ b/JellyfinPlayer/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Jellyfin SUI + Jellyfin CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -19,7 +19,7 @@ CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion - 20 + 22 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/JellyfinPlayer/LatestMediaView.swift b/JellyfinPlayer/LatestMediaView.swift index be8b48f9..7170af52 100644 --- a/JellyfinPlayer/LatestMediaView.swift +++ b/JellyfinPlayer/LatestMediaView.swift @@ -143,7 +143,6 @@ struct LatestMediaView: View { } Spacer().frame(width: 14) } - Spacer().frame(width:14) }.frame(height: 190) }.onAppear(perform: onAppear).padding(EdgeInsets(top: -2, leading: 0, bottom: 0, trailing: 0)).frame(height: 190) } diff --git a/JellyfinPlayer/NextUpView.swift b/JellyfinPlayer/NextUpView.swift index d73065ca..7b6e7a83 100644 --- a/JellyfinPlayer/NextUpView.swift +++ b/JellyfinPlayer/NextUpView.swift @@ -106,7 +106,6 @@ struct NextUpView: View { } Spacer().frame(width: 10) } - Spacer().frame(width:14) } }.frame(height: 200) }.padding(EdgeInsets(top: -2, leading: 0, bottom: 0, trailing: 0)).frame(height: 200) diff --git a/JellyfinPlayer/Views/VideoPlayer.storyboard b/JellyfinPlayer/Views/VideoPlayer.storyboard index 677541c1..6cc32c7b 100644 --- a/JellyfinPlayer/Views/VideoPlayer.storyboard +++ b/JellyfinPlayer/Views/VideoPlayer.storyboard @@ -1,6 +1,6 @@ - + @@ -13,25 +13,23 @@ - - - + + - - - + + + - - - + + - + @@ -41,7 +39,7 @@ - + + + + - + - + @@ -151,11 +156,22 @@ + + + + + + + + + + + @@ -175,11 +191,12 @@ - + + diff --git a/JellyfinPlayer/Views/VideoPlayer.swift b/JellyfinPlayer/Views/VideoPlayer.swift index 4524dc93..79f4b189 100644 --- a/JellyfinPlayer/Views/VideoPlayer.swift +++ b/JellyfinPlayer/Views/VideoPlayer.swift @@ -31,7 +31,6 @@ struct AudioTrack { class PlaybackItem: ObservableObject { @Published var videoType: VideoType = .hls; @Published var videoUrl: URL = URL(string: "https://example.com")!; - @Published var subtitles: [Subtitle] = []; } protocol PlayerViewControllerDelegate: AnyObject { @@ -44,7 +43,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe weak var delegate: PlayerViewControllerDelegate? - var mediaPlayer = VLCMediaPlayer(options: ["--sub-margin=200"])! + var mediaPlayer = VLCMediaPlayer() var globalData = GlobalData() @IBOutlet weak var timeText: UILabel! @@ -54,6 +53,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe @IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var jumpBackButton: UIButton! @IBOutlet weak var jumpForwardButton: UIButton! + @IBOutlet weak var playerSettingsButton: UIButton! var shouldShowLoadingScreen: Bool = false; var ssTargetValueOffset: Int = 0; @@ -79,6 +79,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe sendProgressReport(eventName: "pause") mediaPlayer.pause() } + @IBAction func seekSliderValueChanged(_ sender: Any) { let videoDuration = Double(mediaPlayer.time.intValue + abs(mediaPlayer.remainingTime.intValue))/1000 let secondsScrubbedTo = round(Double(seekSlider.value) * videoDuration); @@ -154,7 +155,7 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe override func viewDidLoad() { super.viewDidLoad() - + //View has loaded. //Show loading screen usleep(10000); @@ -222,7 +223,6 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe } self.sendPlayReport() - item.subtitles = subtitleTrackArray playbackItem = item; } else { print("Direct playing!"); @@ -256,18 +256,27 @@ class PlayerViewController: UIViewController, VLCMediaDelegate, VLCMediaPlayerDe } sendPlayReport() - item.subtitles = subtitleTrackArray playbackItem = item; } - - mediaPlayer.media = VLCMedia(url: playbackItem.videoUrl) - playbackItem.subtitles.forEach() { sub in - if(sub.id != -1 && sub.delivery == "External" && sub.codec != "subrip") { - mediaPlayer.addPlaybackSlave(sub.url, type: .subtitle, enforce: false) + mediaPlayer.stop() + DispatchQueue.global(qos: .background).async { + mediaPlayer.play() + subtitleTrackArray.forEach() { sub in + if(sub.id != -1 && sub.delivery == "External" && sub.codec != "subrip") { + print("adding subs for id: \(sub.id) w/ url: \(sub.url)") + mediaPlayer.addPlaybackSlave(sub.url, type: .subtitle, enforce: false) + } } + sleep(3) + mediaPlayer.pause() + usleep(10000); + mediaPlayer.play() + mediaPlayer.currentVideoSubTitleIndex = selectedCaptionTrack; + mediaPlayer.pause() + usleep(10000); + mediaPlayer.play() + mediaPlayer.jumpForward(Int32(manifest.Progress/10000000)) } - mediaPlayer.play() - mediaPlayer.jumpForward(Int32(manifest.Progress/10000000)) } catch { }