...
 
Commits (159)
Felix Paul Kühne <fkuehne@videolan.org>
Felix Paul Kühne <fkuehne@videolan.org> <fpk@Bartleby.local>
Felix Paul Kühne <fkuehne@videolan.org> <fpk@Felix-Kuhnes-MacBook.local>
Felix Paul Kühne <fkuehne@videolan.org> <fpk@felix-kuhnes-macbook.local>
<fkuehne@videolan.org> <fpk@Bartleby.local>
<fkuehne@videolan.org> <fpk@Felix-Kuhnes-MacBook.local>
<fkuehne@videolan.org> <fpk@felix-kuhnes-macbook.local>
<fkuehne@videolan.org> <felix@serioese.gmbh>
<fkuehne@videolan.org> <felix@feepk.net>
Marc Etcheverry <marc@taplightsoftware.com> <marcetcheverry@gmail.com>
......@@ -12,7 +12,7 @@
font-weight: 300; }
</style>
<div style="text-align:left; border:solid transparent 1px; padding:0.5em 1em 0.5em 1em; overflow:auto; font-size:20pt; font-family: -apple-system; color:#1f1f1f"; A:link {text-decoration: none; color:#1f1f1f}>
<p align="center">Copyright &copy; 2013-2017 VideoLAN and authors<br /><br />Written by Tobias Conradi and Felix Paul Kühne</a>,<br /><br /> based on VLC for iOS by Felix Paul Kühne, Tobias Conradi, Gleb Pinigin, Pierre Sagaspe, Carola Nitz, Soomin Lee, Jean-Baptiste Kempf, Marc Etcheverry, <br />with additions by Vincent L. Cone, David Loiret, Benjamin Adolphi, Tam&aacute;s T&iacute;m&aacute;r</a>, Shenghan Chen, Martin Storsjö, Filipe Cabecinhas, Thomas Guillem, Alessio Pollero, Christoph Miebach, Diego Fernando Nieto, Christopher Loessl, Fabio Ritrovato, Kevin Chromik, Sylver Bruneau, David Fuhrmann, Ulrich Trampe, Ron Soffer, Riccardo Angius, Adam Viaud, Ahmad Harb, Dean Lee, Jörg Bleyel, Kai Neuwerth, Konstantin Pavlov, Luis Fernandes, Shai Shamir, Steven Kabbes, Tim Byrne and Winston Weinert.</p>
<p align="center">Copyright &copy; 2013-2018 VideoLAN and authors<br /><br />Written by Tobias Conradi and Felix Paul Kühne</a>,<br /><br /> based on VLC for iOS by Felix Paul Kühne, Tobias Conradi, Carola Nitz, Gleb Pinigin, Pierre Sagaspe, Soomin Lee, Jean-Baptiste Kempf, Marc Etcheverry, <br />with additions by Vincent L. Cone, David Loiret, Benjamin Adolphi, Shenghan Chen, Tam&aacute;s T&iacute;m&aacute;r</a>, Martin Storsjö, Thomas Guillem, Filipe Cabecinhas, Alessio Pollero, Diego Fernando Nieto, Fabio Ritrovato, Christoph Miebach, Christopher Loessl, Kevin Chromik, Sylver Bruneau, Ron Soffer, Riccardo Angius, David Fuhrmann, Ulrich Trampe, Adam Viaud, Ahmad Harb, Dean Lee, Jörg Bleyel, Kai Neuwerth, Konstantin Pavlov, Luis Fernandes, Mathias Sauvestre, Shai Shamir, Steven Kabbes, Tim Byrne, Victor Gama and Winston Weinert.</p>
<p align="center">We would like to thank the following people for tests, ideas and translations:<br />
Phan Anh, Helena Arndt, Andriy Bandura, Luca Barbato, Ana Coronel, Keiji Costantini, Ludovic Fauvet, Roberto Ferraro, David González, Marián Hikaník, Christian Kosim, Alexander Lakhin, Freya Lindhorst, Adrien Maglo, Fumio Nakayama, Savvas Nesseris, Ilkka Ollakka, Alexandre Perraud, Vincenzo Reale, Anton Regnander, Thomas De Rocker, Mario Siegmann, Yaron Shahrabani, Michał Trzebiatowski, Kaya Zeren, Transifex VLC project team<br />
<br />
......@@ -23,10 +23,10 @@ VideoLAN, VLC and VLC media player are internationally registered trademarks of
<p align="center">VLC for tvOS makes use of the following libraries, fonts and frameworks:</p>
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<b>TVVLCKit</b>
<br />Copyright &copy; 2007-2017 Pierre d&rsquo;Herbemont, Felix Paul K&uuml;hne, Faustino E. Osuna, et al. - LGPLv2.1 or later
<br />Copyright &copy; 2007-2018 Pierre d&rsquo;Herbemont, Felix Paul K&uuml;hne, Faustino E. Osuna, et al. - LGPLv2.1 or later
<br /><br />
&nbsp;&nbsp;&nbsp;&nbsp;<b>libvlc</b>
<br />Copyright &copy; 1996-2017 VideoLAN and VLC Authors - LGPLv2.1 or later
<br />Copyright &copy; 1996-2018 VideoLAN and VLC Authors - LGPLv2.1 or later
<br /><br />
&nbsp;&nbsp;&nbsp;&nbsp;<b>Box iOS SDK v2</b>
<br />Copyright &copy; 2014, Box, Inc. - Apache 2 License
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "Icon-Background-large.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "Icon-Foreground-large.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -2,8 +2,11 @@
"images" : [
{
"idiom" : "tv",
"filename" : "IconFront.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "Icon-Background.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Icon-Background@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "Icon-Foreground.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Icon-Foreground@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -3,6 +3,10 @@
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "TopShelf_wide.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Top Shelf Wide@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "TopShelf.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Top Shelf@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "Box@3x.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "Dropbox@3x.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "OneDrive@3x.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
{
"images" : [
{
"orientation" : "landscape",
"idiom" : "tv",
"filename" : "launch-screen@2x.png",
"extent" : "full-screen",
"minimum-system-version" : "11.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "tv",
......
{
"images" : [
{
"idiom" : "tv",
"filename" : "TVBroadcastIcon@3x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
......@@ -2,8 +2,13 @@
"images" : [
{
"idiom" : "tv",
"filename" : "doc-icon.png",
"filename" : "Doc.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Doc@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "Icon-Foreground.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Icon-Foreground@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -2,8 +2,13 @@
"images" : [
{
"idiom" : "tv",
"filename" : "folder-icon.png",
"filename" : "Folder.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "Folder@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "ServerIcon.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "server@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "vlc-server-icon.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "vlc-server-icon@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,11 @@
"idiom" : "tv",
"filename" : "atv-xmas-cone.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "atv-xmas-cone@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "logo-transparent.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -2,8 +2,13 @@
"images" : [
{
"idiom" : "tv",
"filename" : "g3392.png",
"filename" : "powered-by-rectangle-green.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"filename" : "powered-by-rectangle-green@2x.png",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "NowPlayingFastForward.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "NowPlayingSkip10Backward.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "NowPlayingSkip10Forward.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -4,6 +4,10 @@
"idiom" : "tv",
"filename" : "About Icon.png",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
......
......@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1.0</string>
<string>1.1.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>110.0</string>
<string>113</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>
......@@ -39,5 +39,7 @@
<array>
<string>arm64</string>
</array>
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
</dict>
</plist>
......@@ -45,6 +45,16 @@
- (void)viewWillAppear:(BOOL)animated
{
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
UIColor *lightColor = [UIColor VLCLightTextColor];
self.titleLabel.textColor = lightColor;
self.metaDataLabel.textColor = lightColor;
} else {
UIColor *darkColor = [UIColor VLCDarkTextColor];
self.titleLabel.textColor = darkColor;
self.metaDataLabel.textColor = darkColor;
}
VLCPlaybackController *vpc = [VLCPlaybackController sharedInstance];
self.titleLabel.text = vpc.mediaTitle;
......
......@@ -14,6 +14,7 @@
@interface VLCPlaybackInfoSubtitlesFetcherViewController : VLCPlaybackInfoPanelTVViewController
@property (readwrite, weak, nonatomic) IBOutlet UIVisualEffectView *visualEffectView;
@property (readwrite, weak, nonatomic) IBOutlet UITableView *tableView;
@property (readwrite, weak, nonatomic) IBOutlet UILabel *titleLabel;
......
......@@ -30,6 +30,7 @@
[super viewDidLoad];
self.titleLabel.text = self.title;
self.tableView.backgroundColor = [UIColor clearColor];
_osoFetcher = [[MDFOSOFetcher alloc] init];
_osoFetcher.userAgentKey = @"VLSub 0.9";
......@@ -76,7 +77,19 @@
multiplier:1.0
constant:0.0];
[self.view addConstraint:xConstraint];
}
- (void)viewWillAppear:(BOOL)animated
{
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
self.visualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
self.titleLabel.textColor = [UIColor VLCLightTextColor];
} else {
self.visualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
self.titleLabel.textColor = [UIColor VLCDarkTextColor];
}
[super viewWillAppear:animated];
}
#pragma mark - OSO Fetcher delegation
......@@ -116,7 +129,7 @@
{
[self stopActivity];
VLCPlaybackController *vpc = [VLCPlaybackController sharedInstance];
[vpc.mediaPlayer openVideoSubTitlesFromFile:pathToFile];
[vpc.mediaPlayer addPlaybackSlave:[NSURL fileURLWithPath:pathToFile] type:VLCMediaPlaybackSlaveTypeSubtitle enforce:YES];
[self dismissViewControllerAnimated:YES completion:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:VLCPlaybackControllerPlaybackMetadataDidChange object:nil];
}
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9531" systemVersion="15C47a" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="12121" systemVersion="17B48" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
<device id="appleTV" orientation="landscape">
<adaptation id="light"/>
</device>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoSubtitlesFetcherViewController">
......@@ -10,6 +14,7 @@
<outlet property="tableView" destination="KQh-Wx-8D3" id="dMO-09-KJP"/>
<outlet property="titleLabel" destination="eRo-wP-AW8" id="R5P-l1-Qv2"/>
<outlet property="view" destination="iN0-l3-epB" id="Eym-vH-oyN"/>
<outlet property="visualEffectView" destination="oKA-TY-HnF" id="hBt-8E-I8f"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
......@@ -28,13 +33,13 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eRo-wP-AW8">
<rect key="frame" x="870" y="100" width="180" height="91"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleTitle1"/>
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="66" sectionHeaderHeight="40" sectionFooterHeight="40" translatesAutoresizingMaskIntoConstraints="NO" id="KQh-Wx-8D3">
<rect key="frame" x="460" y="230" width="1000" height="620"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="sectionIndexBackgroundColor" red="0.43529411759999997" green="0.4431372549" blue="0.47450980390000003" alpha="1" colorSpace="calibratedRGB"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="sectionIndexBackgroundColor" red="0.43529411759999997" green="0.4431372549" blue="0.47450980390000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<connections>
<outlet property="dataSource" destination="-1" id="0hS-DY-15g"/>
<outlet property="delegate" destination="-1" id="WmP-OZ-DyT"/>
......@@ -55,4 +60,9 @@
</constraints>
</view>
</objects>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<nil key="statusBar"/>
<simulatedOrientationMetrics key="orientation" orientation="landscapeRight"/>
<simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>
</document>
......@@ -19,7 +19,11 @@
if (self) {
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
label.textColor = [UIColor darkGrayColor];
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
label.textColor = [UIColor VLCLightTextColor];
} else {
label.textColor = [UIColor VLCDarkTextColor];
}
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self addSubview:label];
_titleLabel = label;
......
......@@ -39,8 +39,15 @@
[super prepareForReuse];
self.selectionMarkerVisible = NO;
self.titleLabel.text = nil;
self.selectionMarkerView.textColor = [UIColor darkGrayColor];
self.titleLabel.textColor = [UIColor darkGrayColor];
UIColor *textColor;
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
textColor = [UIColor VLCLightTextColor];
} else {
textColor = [UIColor VLCDarkTextColor];
}
self.selectionMarkerView.textColor = textColor;
self.titleLabel.textColor = textColor;
}
- (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator
......
......@@ -14,6 +14,7 @@
@interface VLCPlaybackInfoTVViewController : UIViewController <UITabBarControllerDelegate, UIGestureRecognizerDelegate>
@property (nonatomic) IBOutlet UIView *containerView;
@property (nonatomic) IBOutlet UIVisualEffectView *visualEffectView;
@property (nonatomic) IBOutlet UIView *dimmingView;
@property (nonatomic) IBOutlet NSLayoutConstraint *tabBarRegiomHeightConstraint;
@property (nonatomic) IBOutlet NSLayoutConstraint *containerHeightConstraint;
......
......@@ -77,6 +77,10 @@
- (void)viewWillAppear:(BOOL)animated
{
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
self.visualEffectView.effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
}
UITabBarController *tabBarController = self.tabBarController;
UIViewController *oldSelectedVC = tabBarController.selectedViewController;
tabBarController.viewControllers = [self tabViewControllers];
......
......@@ -107,7 +107,7 @@
NSArray *audioTrackIndexes = self.mediaPlayer.audioTrackIndexes;
NSString *trackName;
trackCell.titleLabel.font = [UIFont boldSystemFontOfSize:29.];
trackCell.titleLabel.font = [UIFont systemFontOfSize:29.];
if (row >= audioTrackIndexes.count) {
if ([[NSUserDefaults standardUserDefaults] boolForKey:kVLCSettingUseSPDIF]) {
......@@ -118,6 +118,9 @@
} else {
BOOL isSelected = [audioTrackIndexes[row] intValue] == self.mediaPlayer.currentAudioTrackIndex;
trackCell.selectionMarkerVisible = isSelected;
if (isSelected) {
trackCell.titleLabel.font = [UIFont boldSystemFontOfSize:29.];
}
trackName = self.mediaPlayer.audioTrackNames[row];
if (trackName != nil) {
......
......@@ -29,15 +29,20 @@
self.titleLabel.text = self.title;
self.titleLabel.textColor = [UIColor colorWithWhite:0.5 alpha:1.];
NSMutableAttributedString *aboutContents = [[NSMutableAttributedString alloc] initWithData:[[NSString stringWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"About Contents" ofType:@"html"]
encoding:NSUTF8StringEncoding
error:nil]
dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
documentAttributes:nil error:nil];
if ([UIScreen mainScreen].traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
[aboutContents addAttribute:NSForegroundColorAttributeName value:[UIColor VLCLightTextColor] range:NSMakeRange(0., aboutContents.length)];
}
UITextView *textView = self.blablaTextView;
textView.attributedText = [[NSAttributedString alloc] initWithData:[[NSString stringWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"About Contents" ofType:@"html"]
encoding:NSUTF8StringEncoding
error:nil]
dataUsingEncoding:NSUTF8StringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
documentAttributes:nil error:nil];
textView.attributedText = aboutContents;
textView.scrollEnabled = YES;
textView.panGestureRecognizer.allowedTouchTypes = @[ @(UITouchTypeIndirect) ];
[textView.panGestureRecognizer addTarget:self action:@selector(scrollViewPan:)];
......
......@@ -43,6 +43,8 @@
self.playURLField.placeholder = NSLocalizedString(@"ENTER_URL", nil);
self.previouslyPlayedStreamsTableView.backgroundColor = [UIColor clearColor];
/* After day 354 of the year, the usual VLC cone is replaced by another cone
* wearing a Father Xmas hat.
* Note: this icon doesn't represent an endorsement of The Coca-Cola Company
......
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="12121" systemVersion="17B48" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
<device id="appleTV" orientation="landscape">
<adaptation id="light"/>
</device>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCPlaybackInfoTVViewController">
......@@ -11,6 +15,7 @@
<outlet property="dimmingView" destination="fkF-mr-3nG" id="NO9-Ww-dkm"/>
<outlet property="tabBarRegiomHeightConstraint" destination="qQN-Xf-pTW" id="rPf-Al-chE"/>
<outlet property="view" destination="iN0-l3-epB" id="aoh-6Y-hrX"/>
<outlet property="visualEffectView" destination="ley-eR-13d" id="QNu-Ic-DqV"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
......@@ -42,7 +47,7 @@
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fkF-mr-3nG" userLabel="DimmingView">
<rect key="frame" x="0.0" y="340" width="1920" height="740"/>
<color key="backgroundColor" white="0.0" alpha="0.29999999999999999" colorSpace="calibratedWhite"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.29999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</subviews>
<constraints>
......@@ -56,4 +61,9 @@
</constraints>
</view>
</objects>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<nil key="statusBar"/>
<simulatedOrientationMetrics key="orientation" orientation="landscapeRight"/>
<simulatedScreenMetrics key="destination"/>
</simulatedMetricsContainer>
</document>
......@@ -19,7 +19,6 @@
}
- (void)showViewController:(UIViewController *)vc sender:(id)sender
{
UIViewController *presentingControllerController = self.presentingViewController;
[self.presentingViewController showViewController:vc sender:sender];
[self dismissViewControllerAnimated:YES completion:nil];
}
......
......@@ -335,8 +335,12 @@
#pragma mark - VLCLocalServerDiscoveryController
- (void)discoveryFoundSomethingNew
{
NSString * (^mapServiceName)(id<VLCLocalNetworkService>) = ^NSString *(id<VLCLocalNetworkService> service) {
return [NSString stringWithFormat:@"%@: %@", service.serviceName, service.title];
};
NSMutableArray<id<VLCLocalNetworkService>> *newNetworkServices = [NSMutableArray array];
NSMutableSet<NSString *> *addedNetworkServices = [[NSMutableSet alloc] init];
VLCLocalServerDiscoveryController *discoveryController = self.discoveryController;
NSUInteger sectionCount = [discoveryController numberOfSections];
for (NSUInteger section = 0; section < sectionCount; ++section) {
......@@ -344,16 +348,20 @@
for (NSUInteger index = 0; index < itemsCount; ++index) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:index inSection:section];
id<VLCLocalNetworkService> service = [discoveryController networkServiceForIndexPath:indexPath];
[newNetworkServices addObject:service];
if (service != nil) {
NSString *mappedName = mapServiceName(service);
if(![addedNetworkServices containsObject:mappedName]) {
[addedNetworkServices addObject:mappedName];
[newNetworkServices addObject:service];
}
}
}
}
NSArray *oldNetworkServices = self.networkServices;
GRKArrayDiff *diff = [[GRKArrayDiff alloc] initWithPreviousArray:oldNetworkServices
currentArray:newNetworkServices
identityBlock:^NSString * _Nullable(id <VLCLocalNetworkService> service) {
return [NSString stringWithFormat:@"%@: %@", service.serviceName, service.title];
}
identityBlock:mapServiceName
modifiedBlock:nil];
[diff performBatchUpdatesWithCollectionView:self.collectionView
......
This diff is collapsed.
......@@ -9,8 +9,8 @@ platform :ios, '7.0'
pod 'OBSlider', '1.1.0'
pod 'InAppSettingsKit', :git => 'git://github.com/fkuehne/InAppSettingsKit.git', :commit => '415ea6bb' #tvOS fix
pod 'upnpx', '~>1.4.0a2'
pod 'HockeySDK', '~>3.6.4'
pod 'upnpx', '~>1.4.0'
pod 'HockeySDK', '~>4.1.6', :subspecs => ['CrashOnlyLib']
pod 'XKKeychain', '~>1.0'
pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has a logout function added
pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
......@@ -20,9 +20,9 @@ pod 'VLC-LXReorderableCollectionViewFlowLayout', '0.1.3v'
pod 'VLC-WhiteRaccoon'
pod 'VLC-LiveSDK', '5.7.0x'
pod 'MediaLibraryKit-unstable'
pod 'MobileVLCKit-unstable', '3.0.0a33'
pod 'MobileVLCKit-unstable', '3.0.0a56'
pod 'GTMAppAuth'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/TheHungryBu/dropbox-sdk-obj-c.git' #update ios platform version
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/carolanitz/dropbox-sdk-obj-c.git' #update ios platform version
end
target 'VLC-iOS-no-watch' do
......@@ -30,8 +30,8 @@ platform :ios, '7.0'
pod 'OBSlider', '1.1.0'
pod 'InAppSettingsKit', :git => 'git://github.com/fkuehne/InAppSettingsKit.git', :commit => '415ea6bb' #tvOS fix
pod 'upnpx', '~>1.4.0a2'
pod 'HockeySDK', '~>3.6.4'
pod 'upnpx', '~>1.4.0'
pod 'HockeySDK', '~>4.1.6', :subspecs => ['CrashOnlyLib']
pod 'XKKeychain', '~>1.0'
pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has a logout function added
pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
......@@ -41,8 +41,8 @@ pod 'VLC-LXReorderableCollectionViewFlowLayout', '0.1.3v'
pod 'VLC-WhiteRaccoon'
pod 'VLC-LiveSDK', '5.7.0x'
pod 'MediaLibraryKit-unstable'
pod 'MobileVLCKit-unstable', '3.0.0a33'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/TheHungryBu/dropbox-sdk-obj-c.git' #update ios platform version
pod 'MobileVLCKit-unstable', '3.0.0a56'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/carolanitz/dropbox-sdk-obj-c.git' #update ios platform version
pod 'GTMAppAuth'
end
......@@ -51,8 +51,8 @@ platform :ios, '7.0'
pod 'OBSlider', '1.1.0'
pod 'InAppSettingsKit', :git => 'git://github.com/fkuehne/InAppSettingsKit.git', :commit => '415ea6bb' #tvOS fix
pod 'upnpx', '~>1.4.0a2'
pod 'HockeySDK', '~>3.6.4'
pod 'upnpx', '~>1.4.0'
pod 'HockeySDK', '~>4.1.6', :subspecs => ['CrashOnlyLib']
pod 'XKKeychain', '~>1.0'
pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has a logout function added
pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
......@@ -61,7 +61,7 @@ pod 'GoogleAPIClient/Drive'
pod 'VLC-LXReorderableCollectionViewFlowLayout', '0.1.3v'
pod 'VLC-WhiteRaccoon'
pod 'VLC-LiveSDK', '5.7.0x'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/TheHungryBu/dropbox-sdk-obj-c.git' #update ios platform version
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/carolanitz/dropbox-sdk-obj-c.git' #update ios platform version
end
......@@ -69,32 +69,32 @@ target 'VLC-tvOS' do
platform :tvos, '10.2'
pod 'XKKeychain', '~>1.0'
pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has tvOS support added
pod 'upnpx', '~>1.4.0a2'
pod 'upnpx', '~>1.4.0'
pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
pod 'MetaDataFetcherKit', '~>0.1.8'
pod "OROpenSubtitleDownloader", :git => 'https://github.com/orta/OROpenSubtitleDownloader.git', :commit => '0509eac2'
pod 'OROpenSubtitleDownloader', :git => 'https://github.com/orta/OROpenSubtitleDownloader.git', :commit => '0509eac2'
pod 'GRKArrayDiff', '~> 2.1'
pod 'VLC-WhiteRaccoon'
pod 'VLC-LiveSDK', '5.7.0x'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/TheHungryBu/dropbox-sdk-obj-c.git' #update ios platform version
pod 'HockeySDK-tvOS', '4.1.0-beta.1'
pod 'TVVLCKit-unstable', '3.0.0a33'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/carolanitz/dropbox-sdk-obj-c.git' #update ios platform version
pod 'HockeySDK-tvOS', '~>5.0.0'
pod 'TVVLCKit-unstable', '3.0.0a55'
end
target 'VLC-tvOS-Debug' do
platform :tvos, '9.0'
platform :tvos, '10.2'
pod 'XKKeychain', '~>1.0'
pod 'box-ios-sdk-v2', :git => 'git://github.com/fkuehne/box-ios-sdk-v2.git' #has tvOS support added
pod 'upnpx', '~>1.4.0a2'
pod 'upnpx', '~>1.4.0'
pod 'CocoaHTTPServer', :git => 'git://github.com/fkuehne/CocoaHTTPServer.git' # has our fixes
pod 'MetaDataFetcherKit', '~>0.1.8'
pod "OROpenSubtitleDownloader", :git => 'https://github.com/orta/OROpenSubtitleDownloader.git', :commit => '0509eac2'
pod 'OROpenSubtitleDownloader', :git => 'https://github.com/orta/OROpenSubtitleDownloader.git', :commit => '0509eac2'
pod 'GRKArrayDiff', '~> 2.1'
pod 'VLC-WhiteRaccoon'
pod 'VLC-LiveSDK', '5.7.0x'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/TheHungryBu/dropbox-sdk-obj-c.git' #update ios platform version
pod 'HockeySDK-tvOS', '4.1.0-beta.1'
pod 'ObjectiveDropboxOfficial', :git => 'git://github.com/carolanitz/dropbox-sdk-obj-c.git' #update ios platform version
pod 'HockeySDK-tvOS', '~>5.0.0'
end
......
......@@ -14,7 +14,7 @@ PODS:
- AFNetworking/Serialization (3.1.0)
- AFNetworking/UIKit (3.1.0):
- AFNetworking/NSURLSession
- AppAuth (0.9.1)
- AppAuth (0.92.0)
- box-ios-sdk-v2 (1.2.3):
- box-ios-sdk-v2/no-arc (= 1.2.3)
- box-ios-sdk-v2/no-arc (1.2.3)
......@@ -25,32 +25,32 @@ PODS:
- GoogleAPIClient/Core
- GTMSessionFetcher (~> 1.1)
- GRKArrayDiff (2.1)
- GTMAppAuth (0.6.1):
- AppAuth (~> 0.9.0)
- GTMAppAuth (0.7.0):
- AppAuth (~> 0.92.0)
- GTMSessionFetcher (~> 1.1)
- GTMSessionFetcher (1.1.11):
- GTMSessionFetcher/Full (= 1.1.11)
- GTMSessionFetcher/Core (1.1.11)
- GTMSessionFetcher/Full (1.1.11):
- GTMSessionFetcher/Core (= 1.1.11)
- HockeySDK (3.6.4)
- HockeySDK-tvOS (4.1.0-beta.1)
- GTMSessionFetcher (1.1.13):
- GTMSessionFetcher/Full (= 1.1.13)
- GTMSessionFetcher/Core (1.1.13)
- GTMSessionFetcher/Full (1.1.13):
- GTMSessionFetcher/Core (= 1.1.13)
- HockeySDK-tvOS (5.0.0)
- HockeySDK/CrashOnlyLib (4.1.6)
- InAppSettingsKit (2.2.2)
- MediaLibraryKit-unstable (2.6.4):
- MediaLibraryKit-unstable (2.6.5):
- MobileVLCKit-unstable (~> 3.0.0a8)
- MetaDataFetcherKit (0.1.8):
- AFNetworking (= 3.1.0)
- OROpenSubtitleDownloader
- MobileVLCKit-unstable (3.0.0a33)
- MobileVLCKit-unstable (3.0.0a56)
- NSData+Base64 (1.0.0)
- ObjectiveDropboxOfficial (1.0)
- ObjectiveDropboxOfficial (1.1)
- OBSlider (1.1.0)
- OROpenSubtitleDownloader (1.2.0):
- AFNetworking
- xmlrpc
- RESideMenu (4.0.7)
- TVVLCKit-unstable (3.0.0a33)
- upnpx (1.4.0a2)
- TVVLCKit-unstable (3.0.0a55)
- upnpx (1.4.0)
- VLC-LiveSDK (5.7.0x)
- VLC-LXReorderableCollectionViewFlowLayout (0.1.3v)
- VLC-WhiteRaccoon (1.0.0)
......@@ -64,18 +64,18 @@ DEPENDENCIES:
- GoogleAPIClient/Drive
- GRKArrayDiff (~> 2.1)
- GTMAppAuth
- HockeySDK (~> 3.6.4)
- HockeySDK-tvOS (= 4.1.0-beta.1)
- HockeySDK-tvOS (~> 5.0.0)
- HockeySDK/CrashOnlyLib (~> 4.1.6)
- InAppSettingsKit (from `git://github.com/fkuehne/InAppSettingsKit.git`, commit `415ea6bb`)
- MediaLibraryKit-unstable
- MetaDataFetcherKit (~> 0.1.8)
- MobileVLCKit-unstable (= 3.0.0a33)
- ObjectiveDropboxOfficial (from `git://github.com/TheHungryBu/dropbox-sdk-obj-c.git`)
- MobileVLCKit-unstable (= 3.0.0a56)
- ObjectiveDropboxOfficial (from `git://github.com/carolanitz/dropbox-sdk-obj-c.git`)
- OBSlider (= 1.1.0)
- OROpenSubtitleDownloader (from `https://github.com/orta/OROpenSubtitleDownloader.git`, commit `0509eac2`)
- RESideMenu (~> 4.0.7)
- TVVLCKit-unstable (= 3.0.0a33)
- upnpx (~> 1.4.0a2)
- TVVLCKit-unstable (= 3.0.0a55)
- upnpx (~> 1.4.0)
- VLC-LiveSDK (= 5.7.0x)
- VLC-LXReorderableCollectionViewFlowLayout (= 0.1.3v)
- VLC-WhiteRaccoon
......@@ -90,7 +90,7 @@ EXTERNAL SOURCES:
:commit: 415ea6bb
:git: git://github.com/fkuehne/InAppSettingsKit.git
ObjectiveDropboxOfficial:
:git: git://github.com/TheHungryBu/dropbox-sdk-obj-c.git
:git: git://github.com/carolanitz/dropbox-sdk-obj-c.git
OROpenSubtitleDownloader:
:commit: 0509eac2
:git: https://github.com/orta/OROpenSubtitleDownloader.git
......@@ -100,46 +100,46 @@ CHECKOUT OPTIONS:
:commit: 180f009b3b22d813ca40e4c88074e0ef228c357b
:git: git://github.com/fkuehne/box-ios-sdk-v2.git
CocoaHTTPServer:
:commit: 570343ea4207c832e08e8d368b5e6faf35307031
:commit: a73589dbb4c67a3a6e6441e1981ba1b5b70a77ad
:git: git://github.com/fkuehne/CocoaHTTPServer.git
InAppSettingsKit:
:commit: 415ea6bb
:git: git://github.com/fkuehne/InAppSettingsKit.git
ObjectiveDropboxOfficial:
:commit: 26eb3491426dfe621ecaa33931f81d0fade60978
:git: git://github.com/TheHungryBu/dropbox-sdk-obj-c.git
:commit: 153b109c26aa8546fbe99567d229d91e09d2cd3b
:git: git://github.com/carolanitz/dropbox-sdk-obj-c.git
OROpenSubtitleDownloader:
:commit: 0509eac2
:git: https://github.com/orta/OROpenSubtitleDownloader.git
SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
AppAuth: f7d9a2ce4ffe79a62a8b0c1d0938e88d9809b846
AppAuth: 3f4f1d6d85ad631d0bbf15ffcdc10c447face97a
box-ios-sdk-v2: 9423bd75373350ea40b92f3d2d6e89f81d96d634
CocoaHTTPServer: 07df8b05a8bde406fe367d22c90a24a2fd4ca49f
GoogleAPIClient: 77df755d41d70ee5a99b7b752614fbb439f19438
GRKArrayDiff: cf743e6b30f6b72a3763e1f16cc5d9da39af86a5
GTMAppAuth: ae710e1e53431e2bcdd57f9f92daa16a58a2947d
GTMSessionFetcher: 5ad62e8200fa00ed011fe5e08d27fef72c5b1429
HockeySDK: c07cdd580296737edcd0963e292c19885a53f563
HockeySDK-tvOS: fe5373e9a6e70aeca464f8491eb32b60b04fb322
GTMAppAuth: 8d724be29ab8f2f6d35b2bf929d76340c9d1f1b1
GTMSessionFetcher: 5bb1eae636127de695590f50e7d248483eb891e6
HockeySDK: 95db557d54489a570dcdefae0d02f98eecc279a3
HockeySDK-tvOS: 6b2a69f86419ebaf23225f59a64e5761ed3a0d8a
InAppSettingsKit: 76d5cfbaa3e3f8aa53fe3628516da7eb1aa6a5cb
MediaLibraryKit-unstable: b4834ad57d5d2f49f30b9edd2d7650d151fc5534
MediaLibraryKit-unstable: aaf147005a2e024ed2f4c45440bfcc19225ca776
MetaDataFetcherKit: 44c90defa89b3a72cef60e07ad9de37821dd7c5d
MobileVLCKit-unstable: 5f94ba75fee2172d4ea7ad77f3cbaa701af651c2
MobileVLCKit-unstable: 970a43f97af623c4c1d0b9fb4f0d56ac48b21f2c
NSData+Base64: 4e84902c4db907a15673474677e57763ef3903e4
ObjectiveDropboxOfficial: bd00111d92dda8a269c6ff502c97eddd4363d681
ObjectiveDropboxOfficial: e11cdf40e8965a6c24c6d6ff64905f2df43ab653
OBSlider: 490f108007bfdd5414a38650b211fe403a95b8a0
OROpenSubtitleDownloader: 154b8c08acbf8836b77ac259018dc8b5baef907e
RESideMenu: f24c508404b49c667344c54aba7e590883533958
TVVLCKit-unstable: 021024e76f7ee4c60e0888795524e8cf0c17012f
upnpx: 7cb9b092595086cdfeac2a670bd47ba5f5bd30c8
TVVLCKit-unstable: 8fae94b3637277926f1aadd4b58d899505be934f
upnpx: c695b99229e08154d23abe5c252cb64f1600f35d
VLC-LiveSDK: c9566a9edde968f969138f84cfd40b540a109b3f
VLC-LXReorderableCollectionViewFlowLayout: 0204946967b746ca183835e854826290be06e2f4
VLC-WhiteRaccoon: 1e7e59b0568959135a89d09c416d1e11a5d9a986
XKKeychain: 852ef663c56a7194c73d3c68e8d9d4f07b121d4f
xmlrpc: 109bb21d15ed6d108b2c1ac5973a6a223a50f5f4
PODFILE CHECKSUM: d7146d68324a0b3d080277da68444f3a6b0cf59d
PODFILE CHECKSUM: 49cda53c46de7ff4318c19d3ee395137b53a14a6
COCOAPODS: 1.2.1
COCOAPODS: 1.3.1
......@@ -25,7 +25,7 @@
</tr>
</table>
</p>
<p align="center">Copyright &copy; 2013-2017 VideoLAN and authors<br /><br />Written by <a href="http://about.me/fkuehne">Felix Paul Kühne</a>, <a href="http://github.com/toco">Tobias Conradi</a>, <a href="http://twitter.com/gpinigin">Gleb Pinigin</a>, <a href="http://twitter.com/iTarax">Pierre Sagaspe</a>, <a href="http://about.me/carolanitz">Carola Nitz</a>, <a href="https://github.com/thehungrybu">Soomin Lee</a>, <a href="http://jbkempf.com">Jean-Baptiste Kempf</a>, <a href="http://taplightsoftware.com">Marc Etcheverry</a>, <br />with additions by Vincent L. Cone, David Loiret, Benjamin Adolphi, <a href="http://www.tamastimar.com">Tam&aacute;s T&iacute;m&aacute;r</a>, Shenghan Chen, Martin Storsjö, Filipe Cabecinhas, Thomas Guillem, Alessio Pollero, Christoph Miebach, Diego Fernando Nieto, Christopher Loessl, Fabio Ritrovato, Kevin Chromik, Sylver Bruneau, David Fuhrmann, Ulrich Trampe, Ron Soffer, Riccardo Angius, Adam Viaud, Ahmad Harb, Dean Lee, Jörg Bleyel, Kai Neuwerth, Konstantin Pavlov, Luis Fernandes, Shai Shamir, Steven Kabbes, Tim Byrne and Winston Weinert.<br /><br />Web Interface by <a href="http://ailleurs.me">Jean-Romain Pr&eacute;vost</a>.</p>
<p align="center">Copyright &copy; 2013-2018 VideoLAN and authors<br /><br />Written by <a href="http://about.me/fkuehne">Felix Paul Kühne</a>, <a href="http://github.com/toco">Tobias Conradi</a>, <a href="http://about.me/carolanitz">Carola Nitz</a>, <a href="http://twitter.com/gpinigin">Gleb Pinigin</a>, <a href="http://twitter.com/iTarax">Pierre Sagaspe</a>, <a href="https://github.com/thehungrybu">Soomin Lee</a>, <a href="http://jbkempf.com">Jean-Baptiste Kempf</a>, <a href="http://taplightsoftware.com">Marc Etcheverry</a>, <br />with additions by Vincent L. Cone, David Loiret, Benjamin Adolphi, Shenghan Chen, <a href="http://www.tamastimar.com">Tam&aacute;s T&iacute;m&aacute;r</a>, Martin Storsjö, Thomas Guillem, Filipe Cabecinhas, Alessio Pollero, Diego Fernando Nieto, Fabio Ritrovato, Christoph Miebach, Christopher Loessl, Kevin Chromik, Sylver Bruneau, Ron Soffer, Riccardo Angius, David Fuhrmann, Ulrich Trampe, Adam Viaud, Ahmad Harb, Dean Lee, Jörg Bleyel