Merge branch 'main' into advanced-server-settings
This commit is contained in:
commit
1703b6345c
@ -1,18 +1,22 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
|
"filename" : "top shelf.png",
|
||||||
"idiom" : "tv",
|
"idiom" : "tv",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"filename" : "Untitled-2.png",
|
||||||
"idiom" : "tv",
|
"idiom" : "tv",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"filename" : "top shelf-1.png",
|
||||||
"idiom" : "tv-marketing",
|
"idiom" : "tv-marketing",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"filename" : "Untitled-1.png",
|
||||||
"idiom" : "tv-marketing",
|
"idiom" : "tv-marketing",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 102 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
@ -160,7 +160,7 @@ struct ConnectToServerView: View {
|
|||||||
.padding(.leading, 90)
|
.padding(.leading, 90)
|
||||||
.padding(.trailing, 90)
|
.padding(.trailing, 90)
|
||||||
.alert(item: $viewModel.errorMessage) { _ in
|
.alert(item: $viewModel.errorMessage) { _ in
|
||||||
Alert(title: Text("Error"), message: Text(viewModel.errorMessage ?? ""), dismissButton: .default(Text("Ok")))
|
Alert(title: Text("Error"), message: Text(viewModel.errorMessage as? String ?? ""), dismissButton: .default(Text("Ok")))
|
||||||
}
|
}
|
||||||
.onChange(of: uri) { uri in
|
.onChange(of: uri) { uri in
|
||||||
viewModel.uriSubject.send(uri)
|
viewModel.uriSubject.send(uri)
|
||||||
|
|||||||
@ -98,6 +98,45 @@
|
|||||||
53892770263C25230035E14B /* NextUpView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5389276F263C25230035E14B /* NextUpView.swift */; };
|
53892770263C25230035E14B /* NextUpView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5389276F263C25230035E14B /* NextUpView.swift */; };
|
||||||
53892772263C8C6F0035E14B /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53892771263C8C6F0035E14B /* LoadingView.swift */; };
|
53892772263C8C6F0035E14B /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53892771263C8C6F0035E14B /* LoadingView.swift */; };
|
||||||
5389277C263CC3DB0035E14B /* BlurHashDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5389277B263CC3DB0035E14B /* BlurHashDecode.swift */; };
|
5389277C263CC3DB0035E14B /* BlurHashDecode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5389277B263CC3DB0035E14B /* BlurHashDecode.swift */; };
|
||||||
|
53913BEF26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BC926D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF026D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BC926D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF126D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BC926D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF226D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCC26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF326D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCC26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF426D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCC26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF526D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCF26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF626D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCF26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF726D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BCF26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF826D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD226D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BF926D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD226D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFA26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD226D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFB26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD526D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFC26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD526D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFD26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD526D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFE26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD826D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913BFF26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD826D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0026D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BD826D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0126D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDB26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0226D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDB26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0326D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDB26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0426D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDE26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0526D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDE26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0626D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BDE26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0726D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE126D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0826D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE126D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0926D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE126D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0A26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE426D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0B26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE426D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0C26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE426D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0D26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE726D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0E26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE726D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C0F26D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BE726D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1026D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BEA26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1126D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BEA26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1226D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BEA26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1326D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BED26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1426D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BED26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
|
53913C1526D323FE00EB3286 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 53913BED26D323FE00EB3286 /* Localizable.strings */; };
|
||||||
5398514526B64DA100101B49 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5398514426B64DA100101B49 /* SettingsView.swift */; };
|
5398514526B64DA100101B49 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5398514426B64DA100101B49 /* SettingsView.swift */; };
|
||||||
5398514626B64DBB00101B49 /* SearchablePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 624C21742685CF60007F1390 /* SearchablePickerView.swift */; };
|
5398514626B64DBB00101B49 /* SearchablePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 624C21742685CF60007F1390 /* SearchablePickerView.swift */; };
|
||||||
5398514726B64E4100101B49 /* SearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DE4BD1267098F300739748 /* SearchBarView.swift */; };
|
5398514726B64E4100101B49 /* SearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53DE4BD1267098F300739748 /* SearchBarView.swift */; };
|
||||||
@ -325,6 +364,19 @@
|
|||||||
5389276F263C25230035E14B /* NextUpView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextUpView.swift; sourceTree = "<group>"; };
|
5389276F263C25230035E14B /* NextUpView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextUpView.swift; sourceTree = "<group>"; };
|
||||||
53892771263C8C6F0035E14B /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = "<group>"; };
|
53892771263C8C6F0035E14B /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = "<group>"; };
|
||||||
5389277B263CC3DB0035E14B /* BlurHashDecode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurHashDecode.swift; sourceTree = "<group>"; };
|
5389277B263CC3DB0035E14B /* BlurHashDecode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurHashDecode.swift; sourceTree = "<group>"; };
|
||||||
|
53913BCA26D323FE00EB3286 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BCD26D323FE00EB3286 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BD026D323FE00EB3286 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BD326D323FE00EB3286 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BD626D323FE00EB3286 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BD926D323FE00EB3286 /* sl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sl; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BDC26D323FE00EB3286 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BDF26D323FE00EB3286 /* ta */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ta; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BE226D323FE00EB3286 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BE526D323FE00EB3286 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BE826D323FE00EB3286 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BEB26D323FE00EB3286 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
53913BEE26D323FE00EB3286 /* kk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = kk; path = Localizable.strings; sourceTree = "<group>"; };
|
||||||
5398514426B64DA100101B49 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
|
5398514426B64DA100101B49 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
|
||||||
53987CA326572C1300E7EA70 /* SeasonItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeasonItemView.swift; sourceTree = "<group>"; };
|
53987CA326572C1300E7EA70 /* SeasonItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeasonItemView.swift; sourceTree = "<group>"; };
|
||||||
53987CA526572F0700E7EA70 /* SeriesItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeriesItemView.swift; sourceTree = "<group>"; };
|
53987CA526572F0700E7EA70 /* SeriesItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeriesItemView.swift; sourceTree = "<group>"; };
|
||||||
@ -506,6 +558,19 @@
|
|||||||
534D4FE126A7D7CC000A7A48 /* Translations */ = {
|
534D4FE126A7D7CC000A7A48 /* Translations */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
53913BDA26D323FE00EB3286 /* de.lproj */,
|
||||||
|
53913BE326D323FE00EB3286 /* el.lproj */,
|
||||||
|
53913BE026D323FE00EB3286 /* es.lproj */,
|
||||||
|
53913BC826D323FE00EB3286 /* fr.lproj */,
|
||||||
|
53913BE626D323FE00EB3286 /* he.lproj */,
|
||||||
|
53913BCE26D323FE00EB3286 /* it.lproj */,
|
||||||
|
53913BEC26D323FE00EB3286 /* kk.lproj */,
|
||||||
|
53913BCB26D323FE00EB3286 /* ru.lproj */,
|
||||||
|
53913BE926D323FE00EB3286 /* sk.lproj */,
|
||||||
|
53913BD726D323FE00EB3286 /* sl.lproj */,
|
||||||
|
53913BD426D323FE00EB3286 /* sv.lproj */,
|
||||||
|
53913BDD26D323FE00EB3286 /* ta.lproj */,
|
||||||
|
53913BD126D323FE00EB3286 /* vi.lproj */,
|
||||||
534D4FED26A7D7CC000A7A48 /* zh-Hans.lproj */,
|
534D4FED26A7D7CC000A7A48 /* zh-Hans.lproj */,
|
||||||
534D4FE626A7D7CC000A7A48 /* en.lproj */,
|
534D4FE626A7D7CC000A7A48 /* en.lproj */,
|
||||||
534D4FEA26A7D7CC000A7A48 /* ko.lproj */,
|
534D4FEA26A7D7CC000A7A48 /* ko.lproj */,
|
||||||
@ -682,6 +747,123 @@
|
|||||||
path = "Preview Content";
|
path = "Preview Content";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
53913BC826D323FE00EB3286 /* fr.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BC926D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = fr.lproj;
|
||||||
|
path = Translations/fr.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BCB26D323FE00EB3286 /* ru.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BCC26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = ru.lproj;
|
||||||
|
path = Translations/ru.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BCE26D323FE00EB3286 /* it.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BCF26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = it.lproj;
|
||||||
|
path = Translations/it.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BD126D323FE00EB3286 /* vi.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BD226D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = vi.lproj;
|
||||||
|
path = Translations/vi.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BD426D323FE00EB3286 /* sv.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BD526D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = sv.lproj;
|
||||||
|
path = Translations/sv.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BD726D323FE00EB3286 /* sl.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BD826D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = sl.lproj;
|
||||||
|
path = Translations/sl.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BDA26D323FE00EB3286 /* de.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BDB26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = de.lproj;
|
||||||
|
path = Translations/de.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BDD26D323FE00EB3286 /* ta.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BDE26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = ta.lproj;
|
||||||
|
path = Translations/ta.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BE026D323FE00EB3286 /* es.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BE126D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = es.lproj;
|
||||||
|
path = Translations/es.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BE326D323FE00EB3286 /* el.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BE426D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = el.lproj;
|
||||||
|
path = Translations/el.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BE626D323FE00EB3286 /* he.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BE726D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = he.lproj;
|
||||||
|
path = Translations/he.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BE926D323FE00EB3286 /* sk.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BEA26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = sk.lproj;
|
||||||
|
path = Translations/sk.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
|
53913BEC26D323FE00EB3286 /* kk.lproj */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
53913BED26D323FE00EB3286 /* Localizable.strings */,
|
||||||
|
);
|
||||||
|
name = kk.lproj;
|
||||||
|
path = Translations/kk.lproj;
|
||||||
|
sourceTree = SOURCE_ROOT;
|
||||||
|
};
|
||||||
53D5E3DB264B47EE00BADDC8 /* Frameworks */ = {
|
53D5E3DB264B47EE00BADDC8 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -920,6 +1102,19 @@
|
|||||||
en,
|
en,
|
||||||
"zh-Hans",
|
"zh-Hans",
|
||||||
ko,
|
ko,
|
||||||
|
fr,
|
||||||
|
ru,
|
||||||
|
it,
|
||||||
|
vi,
|
||||||
|
sv,
|
||||||
|
sl,
|
||||||
|
de,
|
||||||
|
ta,
|
||||||
|
es,
|
||||||
|
el,
|
||||||
|
he,
|
||||||
|
sk,
|
||||||
|
kk,
|
||||||
);
|
);
|
||||||
mainGroup = 5377CBE8263B596A003A4E83;
|
mainGroup = 5377CBE8263B596A003A4E83;
|
||||||
packageReferences = (
|
packageReferences = (
|
||||||
@ -951,11 +1146,24 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
53913C0B26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF126A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF126A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913BFC26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF426A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF426A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913C0226D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C1426D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF926D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
5310695D2684E7EE00CFFDBA /* VideoPlayer.storyboard in Resources */,
|
5310695D2684E7EE00CFFDBA /* VideoPlayer.storyboard in Resources */,
|
||||||
534D4FF726A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF726A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913BF326D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF626D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
5358706A2669D21700D05A09 /* Preview Assets.xcassets in Resources */,
|
5358706A2669D21700D05A09 /* Preview Assets.xcassets in Resources */,
|
||||||
|
53913C0526D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BFF26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0E26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF026D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0826D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C1126D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
535870672669D21700D05A09 /* Assets.xcassets in Resources */,
|
535870672669D21700D05A09 /* Assets.xcassets in Resources */,
|
||||||
5358707E2669D64F00D05A09 /* bitrates.json in Resources */,
|
5358707E2669D64F00D05A09 /* bitrates.json in Resources */,
|
||||||
);
|
);
|
||||||
@ -965,11 +1173,24 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
53913C0A26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF026A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF026A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913BFB26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF326A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF326A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913C0126D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C1326D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF826D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
5377CBFC263B596B003A4E83 /* Preview Assets.xcassets in Resources */,
|
5377CBFC263B596B003A4E83 /* Preview Assets.xcassets in Resources */,
|
||||||
534D4FF626A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF626A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913BF226D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF526D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
53313B90265EEA6D00947AA3 /* VideoPlayer.storyboard in Resources */,
|
53313B90265EEA6D00947AA3 /* VideoPlayer.storyboard in Resources */,
|
||||||
|
53913C0426D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BFE26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0D26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BEF26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0726D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C1026D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
AE8C3159265D6F90008AA076 /* bitrates.json in Resources */,
|
AE8C3159265D6F90008AA076 /* bitrates.json in Resources */,
|
||||||
5377CBF9263B596B003A4E83 /* Assets.xcassets in Resources */,
|
5377CBF9263B596B003A4E83 /* Assets.xcassets in Resources */,
|
||||||
);
|
);
|
||||||
@ -979,8 +1200,21 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
53913C1526D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF126D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0626D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BF426D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0C26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0326D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
628B95292670CABE0091AF3B /* Assets.xcassets in Resources */,
|
628B95292670CABE0091AF3B /* Assets.xcassets in Resources */,
|
||||||
|
53913BF726D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BFD26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0026D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF826A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF826A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
|
53913C0F26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C0926D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913BFA26D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
|
53913C1226D323FE00EB3286 /* Localizable.strings in Resources */,
|
||||||
534D4FF526A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF526A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
534D4FF226A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
534D4FF226A7D7CC000A7A48 /* Localizable.strings in Resources */,
|
||||||
);
|
);
|
||||||
@ -1298,6 +1532,110 @@
|
|||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
53913BC926D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BCA26D323FE00EB3286 /* fr */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BCC26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BCD26D323FE00EB3286 /* ru */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BCF26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BD026D323FE00EB3286 /* it */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BD226D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BD326D323FE00EB3286 /* vi */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BD526D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BD626D323FE00EB3286 /* sv */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BD826D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BD926D323FE00EB3286 /* sl */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BDB26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BDC26D323FE00EB3286 /* de */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BDE26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BDF26D323FE00EB3286 /* ta */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BE126D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BE226D323FE00EB3286 /* es */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BE426D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BE526D323FE00EB3286 /* el */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BE726D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BE826D323FE00EB3286 /* he */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BEA26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BEB26D323FE00EB3286 /* sk */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
53913BED26D323FE00EB3286 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
53913BEE26D323FE00EB3286 /* kk */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXVariantGroup section */
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
@ -1310,7 +1648,7 @@
|
|||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = "JellyfinPlayer tvOS/JellyfinPlayer tvOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "JellyfinPlayer tvOS/JellyfinPlayer tvOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer tvOS/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer tvOS/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@ -1341,7 +1679,7 @@
|
|||||||
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
|
||||||
CODE_SIGN_ENTITLEMENTS = "JellyfinPlayer tvOS/JellyfinPlayer tvOS.entitlements";
|
CODE_SIGN_ENTITLEMENTS = "JellyfinPlayer tvOS/JellyfinPlayer tvOS.entitlements";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer tvOS/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"JellyfinPlayer tvOS/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@ -1493,7 +1831,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = JellyfinPlayer/JellyfinPlayer.entitlements;
|
CODE_SIGN_ENTITLEMENTS = JellyfinPlayer/JellyfinPlayer.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
@ -1529,7 +1867,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = JellyfinPlayer/JellyfinPlayer.entitlements;
|
CODE_SIGN_ENTITLEMENTS = JellyfinPlayer/JellyfinPlayer.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
@ -1562,7 +1900,7 @@
|
|||||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||||
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
INFOPLIST_FILE = WidgetExtension/Info.plist;
|
INFOPLIST_FILE = WidgetExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
|
||||||
@ -1589,7 +1927,7 @@
|
|||||||
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
|
||||||
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
CODE_SIGN_ENTITLEMENTS = WidgetExtension/WidgetExtension.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 59;
|
CURRENT_PROJECT_VERSION = 60;
|
||||||
DEVELOPMENT_TEAM = 9R8RREG67J;
|
DEVELOPMENT_TEAM = 9R8RREG67J;
|
||||||
INFOPLIST_FILE = WidgetExtension/Info.plist;
|
INFOPLIST_FILE = WidgetExtension/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.1;
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19115.3" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="18122" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||||
<device id="retina6_5" orientation="landscape" appearance="light"/>
|
<device id="retina6_5" orientation="landscape" appearance="light"/>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="18093"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19107.5"/>
|
|
||||||
<capability name="Image references" minToolsVersion="12.0"/>
|
<capability name="Image references" minToolsVersion="12.0"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
||||||
@ -30,7 +29,7 @@
|
|||||||
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
<rect key="frame" x="0.0" y="0.0" width="896" height="414"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="e9f-8l-RdN" userLabel="SeekSlider">
|
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="e9f-8l-RdN" userLabel="SeekSlider">
|
||||||
<rect key="frame" x="50" y="355" width="689" height="31"/>
|
<rect key="frame" x="133" y="355" width="630" height="31"/>
|
||||||
<color key="tintColor" red="0.66666666666666663" green="0.36078431372549019" blue="0.76470588235294112" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="tintColor" red="0.66666666666666663" green="0.36078431372549019" blue="0.76470588235294112" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
<color key="thumbTintColor" red="0.66666666666666663" green="0.36078431372549019" blue="0.76470588235294112" alpha="1" colorSpace="calibratedRGB"/>
|
<color key="thumbTintColor" red="0.66666666666666663" green="0.36078431372549019" blue="0.76470588235294112" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
<connections>
|
<connections>
|
||||||
@ -39,7 +38,7 @@
|
|||||||
<action selector="seekSliderValueChanged:" destination="Y6W-OH-hqX" eventType="valueChanged" id="tfF-Zl-CdU"/>
|
<action selector="seekSliderValueChanged:" destination="Y6W-OH-hqX" eventType="valueChanged" id="tfF-Zl-CdU"/>
|
||||||
</connections>
|
</connections>
|
||||||
</slider>
|
</slider>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-:--:--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qft-iu-f1z">
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-:--:--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qft-iu-f1z" userLabel="Time Left Text">
|
||||||
<rect key="frame" x="766" y="353" width="91" height="34"/>
|
<rect key="frame" x="766" y="353" width="91" height="34"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="91" id="LbL-h0-EYA"/>
|
<constraint firstAttribute="width" constant="91" id="LbL-h0-EYA"/>
|
||||||
@ -49,6 +48,16 @@
|
|||||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="-:--:--" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="knf-PP-UIS" userLabel="Time Text">
|
||||||
|
<rect key="frame" x="39" y="353" width="91" height="34"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="width" constant="91" id="FcP-Mk-OIL"/>
|
||||||
|
<constraint firstAttribute="height" constant="34" id="yXx-PI-kXn"/>
|
||||||
|
</constraints>
|
||||||
|
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="18"/>
|
||||||
|
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t2L-Oz-fe9" userLabel="MainActionButton">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="t2L-Oz-fe9" userLabel="MainActionButton">
|
||||||
<rect key="frame" x="406.66666666666669" y="165.66666666666666" width="83" height="83"/>
|
<rect key="frame" x="406.66666666666669" y="165.66666666666666" width="83" height="83"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
@ -156,13 +165,16 @@
|
|||||||
<constraint firstItem="o8N-R1-DhT" firstAttribute="centerY" secondItem="riN-y1-ABZ" secondAttribute="centerY" id="Hs5-Bc-iPB"/>
|
<constraint firstItem="o8N-R1-DhT" firstAttribute="centerY" secondItem="riN-y1-ABZ" secondAttribute="centerY" id="Hs5-Bc-iPB"/>
|
||||||
<constraint firstAttribute="bottom" secondItem="qft-iu-f1z" secondAttribute="bottom" constant="27" id="NPi-py-0qd"/>
|
<constraint firstAttribute="bottom" secondItem="qft-iu-f1z" secondAttribute="bottom" constant="27" id="NPi-py-0qd"/>
|
||||||
<constraint firstItem="rLx-SN-RHr" firstAttribute="leading" secondItem="Qcb-Fb-qZl" secondAttribute="leading" constant="30" id="Oe7-LK-6Tl"/>
|
<constraint firstItem="rLx-SN-RHr" firstAttribute="leading" secondItem="Qcb-Fb-qZl" secondAttribute="leading" constant="30" id="Oe7-LK-6Tl"/>
|
||||||
|
<constraint firstItem="e9f-8l-RdN" firstAttribute="leading" secondItem="knf-PP-UIS" secondAttribute="trailing" constant="5" id="ShK-80-ij1"/>
|
||||||
<constraint firstItem="t2L-Oz-fe9" firstAttribute="centerY" secondItem="Qcb-Fb-qZl" secondAttribute="centerY" id="TOk-sG-UXV"/>
|
<constraint firstItem="t2L-Oz-fe9" firstAttribute="centerY" secondItem="Qcb-Fb-qZl" secondAttribute="centerY" id="TOk-sG-UXV"/>
|
||||||
|
<constraint firstItem="knf-PP-UIS" firstAttribute="leading" secondItem="Qcb-Fb-qZl" secondAttribute="leading" constant="39" id="XNC-Q4-nE0"/>
|
||||||
<constraint firstItem="o8N-R1-DhT" firstAttribute="centerX" secondItem="t2L-Oz-fe9" secondAttribute="centerX" id="a5g-8U-9S5"/>
|
<constraint firstItem="o8N-R1-DhT" firstAttribute="centerX" secondItem="t2L-Oz-fe9" secondAttribute="centerX" id="a5g-8U-9S5"/>
|
||||||
<constraint firstAttribute="bottom" secondItem="qft-iu-f1z" secondAttribute="bottom" constant="27" id="aOB-Uz-cbQ"/>
|
<constraint firstAttribute="bottom" secondItem="qft-iu-f1z" secondAttribute="bottom" constant="27" id="aOB-Uz-cbQ"/>
|
||||||
<constraint firstItem="qft-iu-f1z" firstAttribute="leading" secondItem="e9f-8l-RdN" secondAttribute="trailing" constant="29" id="auL-Vv-ZMV"/>
|
<constraint firstItem="qft-iu-f1z" firstAttribute="leading" secondItem="e9f-8l-RdN" secondAttribute="trailing" constant="5" id="auL-Vv-ZMV"/>
|
||||||
<constraint firstItem="bYM-Xp-bZO" firstAttribute="top" secondItem="An8-jF-FAY" secondAttribute="top" id="cVS-eI-vv2"/>
|
<constraint firstItem="bYM-Xp-bZO" firstAttribute="top" secondItem="An8-jF-FAY" secondAttribute="top" id="cVS-eI-vv2"/>
|
||||||
<constraint firstItem="e9f-8l-RdN" firstAttribute="leading" secondItem="Qcb-Fb-qZl" secondAttribute="leading" constant="52" id="ed3-xq-0Ug"/>
|
|
||||||
<constraint firstItem="t2L-Oz-fe9" firstAttribute="leading" secondItem="bYM-Xp-bZO" secondAttribute="trailing" constant="118.5" id="fci-L5-1f6"/>
|
<constraint firstItem="t2L-Oz-fe9" firstAttribute="leading" secondItem="bYM-Xp-bZO" secondAttribute="trailing" constant="118.5" id="fci-L5-1f6"/>
|
||||||
|
<constraint firstItem="e9f-8l-RdN" firstAttribute="centerX" secondItem="Qcb-Fb-qZl" secondAttribute="centerX" id="jFy-Sb-aYi"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="knf-PP-UIS" secondAttribute="bottom" constant="27" id="nLN-ju-9qC"/>
|
||||||
<constraint firstItem="o8N-R1-DhT" firstAttribute="leading" secondItem="rLx-SN-RHr" secondAttribute="trailing" constant="16" id="qnV-Qf-y9m"/>
|
<constraint firstItem="o8N-R1-DhT" firstAttribute="leading" secondItem="rLx-SN-RHr" secondAttribute="trailing" constant="16" id="qnV-Qf-y9m"/>
|
||||||
<constraint firstItem="rLx-SN-RHr" firstAttribute="top" secondItem="Qcb-Fb-qZl" secondAttribute="top" constant="22" id="v4G-B1-7y6"/>
|
<constraint firstItem="rLx-SN-RHr" firstAttribute="top" secondItem="Qcb-Fb-qZl" secondAttribute="top" constant="22" id="v4G-B1-7y6"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@ -197,7 +209,8 @@
|
|||||||
<outlet property="mainActionButton" destination="t2L-Oz-fe9" id="nQR-2e-64l"/>
|
<outlet property="mainActionButton" destination="t2L-Oz-fe9" id="nQR-2e-64l"/>
|
||||||
<outlet property="playerSettingsButton" destination="riN-y1-ABZ" id="I6r-z9-Jy2"/>
|
<outlet property="playerSettingsButton" destination="riN-y1-ABZ" id="I6r-z9-Jy2"/>
|
||||||
<outlet property="seekSlider" destination="e9f-8l-RdN" id="b3H-tn-TPG"/>
|
<outlet property="seekSlider" destination="e9f-8l-RdN" id="b3H-tn-TPG"/>
|
||||||
<outlet property="timeText" destination="qft-iu-f1z" id="pAX-J3-I53"/>
|
<outlet property="timeLeftText" destination="qft-iu-f1z" id="cSg-fO-9nF"/>
|
||||||
|
<outlet property="timeText" destination="knf-PP-UIS" id="KhK-BX-rqT"/>
|
||||||
<outlet property="titleLabel" destination="o8N-R1-DhT" id="E7D-iU-bMi"/>
|
<outlet property="titleLabel" destination="o8N-R1-DhT" id="E7D-iU-bMi"/>
|
||||||
<outlet property="upNextView" destination="CY9-gw-dv8" id="BP6-bc-6Vk"/>
|
<outlet property="upNextView" destination="CY9-gw-dv8" id="BP6-bc-6Vk"/>
|
||||||
<outlet property="videoContentView" destination="Tsh-rC-BwO" id="5uR-No-wLy"/>
|
<outlet property="videoContentView" destination="Tsh-rC-BwO" id="5uR-No-wLy"/>
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class PlayerViewController: UIViewController, GCKDiscoveryManagerListener, GCKRe
|
|||||||
|
|
||||||
@IBOutlet weak var upNextView: UIView!
|
@IBOutlet weak var upNextView: UIView!
|
||||||
@IBOutlet weak var timeText: UILabel!
|
@IBOutlet weak var timeText: UILabel!
|
||||||
|
@IBOutlet weak var timeLeftText: UILabel!
|
||||||
@IBOutlet weak var videoContentView: UIView!
|
@IBOutlet weak var videoContentView: UIView!
|
||||||
@IBOutlet weak var videoControlsView: UIView!
|
@IBOutlet weak var videoControlsView: UIView!
|
||||||
@IBOutlet weak var seekSlider: UISlider!
|
@IBOutlet weak var seekSlider: UISlider!
|
||||||
@ -102,16 +103,26 @@ class PlayerViewController: UIViewController, GCKDiscoveryManagerListener, GCKRe
|
|||||||
@IBAction func seekSliderValueChanged(_ sender: Any) {
|
@IBAction func seekSliderValueChanged(_ sender: Any) {
|
||||||
let videoDuration: Double = Double(manifest.runTimeTicks! / Int64(10_000_000))
|
let videoDuration: Double = Double(manifest.runTimeTicks! / Int64(10_000_000))
|
||||||
let secondsScrubbedTo = round(Double(seekSlider.value) * videoDuration)
|
let secondsScrubbedTo = round(Double(seekSlider.value) * videoDuration)
|
||||||
let scrubRemaining = videoDuration - secondsScrubbedTo
|
let secondsScrubbedRemaining = videoDuration - secondsScrubbedTo
|
||||||
let remainingTime = scrubRemaining
|
|
||||||
let hours = floor(remainingTime / 3600)
|
timeText.text = calculateTimeText(from: secondsScrubbedTo)
|
||||||
let minutes = (remainingTime.truncatingRemainder(dividingBy: 3600)) / 60
|
timeLeftText.text = calculateTimeText(from: secondsScrubbedRemaining)
|
||||||
let seconds = (remainingTime.truncatingRemainder(dividingBy: 3600)).truncatingRemainder(dividingBy: 60)
|
|
||||||
if hours != 0 {
|
|
||||||
timeText.text = "\(Int(hours)):\(String(Int(floor(minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int(floor(seconds))).leftPad(toWidth: 2, withString: "0"))"
|
|
||||||
} else {
|
|
||||||
timeText.text = "\(String(Int(floor(minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int(floor(seconds))).leftPad(toWidth: 2, withString: "0"))"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func calculateTimeText(from duration: Double) -> String {
|
||||||
|
let hours = floor(duration / 3600)
|
||||||
|
let minutes = (duration.truncatingRemainder(dividingBy: 3600)) / 60
|
||||||
|
let seconds = (duration.truncatingRemainder(dividingBy: 3600)).truncatingRemainder(dividingBy: 60)
|
||||||
|
|
||||||
|
let timeText: String
|
||||||
|
|
||||||
|
if hours != 0 {
|
||||||
|
timeText = "\(Int(hours)):\(String(Int(floor(minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int(floor(seconds))).leftPad(toWidth: 2, withString: "0"))"
|
||||||
|
} else {
|
||||||
|
timeText = "\(String(Int(floor(minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int(floor(seconds))).leftPad(toWidth: 2, withString: "0"))"
|
||||||
|
}
|
||||||
|
|
||||||
|
return timeText
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func seekSliderEnd(_ sender: Any) {
|
@IBAction func seekSliderEnd(_ sender: Any) {
|
||||||
@ -211,7 +222,7 @@ class PlayerViewController: UIViewController, GCKDiscoveryManagerListener, GCKRe
|
|||||||
|
|
||||||
@IBAction func settingsButtonTapped(_ sender: UIButton) {
|
@IBAction func settingsButtonTapped(_ sender: UIButton) {
|
||||||
optionsVC = VideoPlayerSettingsView()
|
optionsVC = VideoPlayerSettingsView()
|
||||||
optionsVC?.delegate = self
|
optionsVC?.playerDelegate = self
|
||||||
|
|
||||||
optionsVC?.modalPresentationStyle = .popover
|
optionsVC?.modalPresentationStyle = .popover
|
||||||
optionsVC?.popoverPresentationController?.sourceView = playerSettingsButton
|
optionsVC?.popoverPresentationController?.sourceView = playerSettingsButton
|
||||||
@ -791,17 +802,11 @@ extension PlayerViewController: GCKGenericChannelDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if isSeeking == false {
|
if isSeeking == false {
|
||||||
let remainingTime = (manifest.runTimeTicks! - Int64(remotePositionTicks))/10_000_000
|
let positiveSeconds = Double(remotePositionTicks/10_000_000)
|
||||||
let hours = remainingTime / 3600
|
let remainingSeconds = Double((manifest.runTimeTicks! - Int64(remotePositionTicks))/10_000_000)
|
||||||
let minutes = (remainingTime % 3600) / 60
|
|
||||||
let seconds = (remainingTime % 3600) % 60
|
timeText.text = calculateTimeText(from: positiveSeconds)
|
||||||
var timeTextStr = ""
|
timeLeftText.text = calculateTimeText(from: remainingSeconds)
|
||||||
if hours != 0 {
|
|
||||||
timeTextStr = "\(Int(hours)):\(String(Int((minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int((seconds))).leftPad(toWidth: 2, withString: "0"))"
|
|
||||||
} else {
|
|
||||||
timeTextStr = "\(String(Int((minutes))).leftPad(toWidth: 2, withString: "0")):\(String(Int((seconds))).leftPad(toWidth: 2, withString: "0"))"
|
|
||||||
}
|
|
||||||
timeText.text = timeTextStr
|
|
||||||
|
|
||||||
let playbackProgress = Float(remotePositionTicks) / Float(manifest.runTimeTicks!)
|
let playbackProgress = Float(remotePositionTicks) / Float(manifest.runTimeTicks!)
|
||||||
seekSlider.setValue(playbackProgress, animated: true)
|
seekSlider.setValue(playbackProgress, animated: true)
|
||||||
@ -984,7 +989,8 @@ extension PlayerViewController: VLCMediaPlayerDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
timeText.text = String(mediaPlayer.remainingTime.stringValue.dropFirst())
|
timeText.text = mediaPlayer.time.stringValue
|
||||||
|
timeLeftText.text = String(mediaPlayer.remainingTime.stringValue.dropFirst())
|
||||||
|
|
||||||
if CACurrentMediaTime() - controlsAppearTime > 5 {
|
if CACurrentMediaTime() - controlsAppearTime > 5 {
|
||||||
self.smallNextUpView()
|
self.smallNextUpView()
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
class VideoPlayerSettingsView: UIViewController {
|
class VideoPlayerSettingsView: UINavigationController {
|
||||||
private var contentView: UIHostingController<VideoPlayerSettings>!
|
private var contentView: UIHostingController<VideoPlayerSettings>!
|
||||||
weak var delegate: PlayerViewController?
|
weak var playerDelegate: PlayerViewController?
|
||||||
|
|
||||||
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
|
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
|
||||||
.landscape
|
.landscape
|
||||||
@ -18,18 +18,13 @@ class VideoPlayerSettingsView: UIViewController {
|
|||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
contentView = UIHostingController(rootView: VideoPlayerSettings(delegate: self.delegate ?? PlayerViewController()))
|
|
||||||
self.view.addSubview(contentView.view)
|
self.viewControllers = [UIHostingController(rootView: VideoPlayerSettings(delegate: self.playerDelegate ?? PlayerViewController()))]
|
||||||
contentView.view.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
contentView.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
|
|
||||||
contentView.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
|
|
||||||
contentView.view.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
|
|
||||||
contentView.view.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewWillDisappear(_ animated: Bool) {
|
override func viewWillDisappear(_ animated: Bool) {
|
||||||
super.viewWillDisappear(animated)
|
super.viewWillDisappear(animated)
|
||||||
self.delegate?.settingsPopoverDismissed()
|
self.playerDelegate?.settingsPopoverDismissed()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +39,6 @@ struct VideoPlayerSettings: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
NavigationView {
|
|
||||||
Form {
|
Form {
|
||||||
Picker(NSLocalizedString("Closed Captions", comment: ""), selection: $captionTrack) {
|
Picker(NSLocalizedString("Closed Captions", comment: ""), selection: $captionTrack) {
|
||||||
ForEach(delegate.subtitleTrackArray, id: \.id) { caption in
|
ForEach(delegate.subtitleTrackArray, id: \.id) { caption in
|
||||||
@ -85,7 +79,6 @@ struct VideoPlayerSettings: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}.offset(y: UIDevice.current.userInterfaceIdiom == .pad ? 14 : 0)
|
}.offset(y: UIDevice.current.userInterfaceIdiom == .pad ? 14 : 0)
|
||||||
.onAppear(perform: {
|
.onAppear(perform: {
|
||||||
captionTrack = self.delegate.selectedCaptionTrack
|
captionTrack = self.delegate.selectedCaptionTrack
|
||||||
|
|||||||
Binary file not shown.
BIN
Translations/sv.lproj/Localizable.strings
Normal file
BIN
Translations/sv.lproj/Localizable.strings
Normal file
Binary file not shown.
BIN
Translations/vi.lproj/Localizable.strings
Normal file
BIN
Translations/vi.lproj/Localizable.strings
Normal file
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user