...
 
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
......
iOS 2.9:
----------
· Stability improvements and bug fixes
iOS 2.8.9:
----------
· .srt subtitles are being displayed again
tvOS 1.1.3:
----------
· .srt subtitles are being displayed again
tvOS 1.1.2:
-----------
· Fix a crash on start when there are two devices with the same name in the network
iOS 2.8.8:
----------
· This version will not reboot your iPhone X when playing HEVC files
· We stopped the madness of doubling files!
· When passcode is enabled Touch Id won't pop up multiple times when you enter the background
· SMB Servers will show up again and are accessible
· Sharing your Media with other Services and saving to Camera Roll works again
· Subtitle font settings for .srt files can now be applied
· And as always - Stability improvements and bug fixes
iOS 2.8.7:
----------
· Audio resumes after getting calls or playing content from other media apps again
· Fixes an issue were SSA subtitles were not displayed
· Google Drive login works again
tvOS 1.1.1:
-----------
· Stability improvements and bug fixes
iOS 2.8.6:
----------
· Adjusted the UI for iPhone X
· Fixes the app termination on devices for iOS 7 and iOS 8
· Adds Full support for HEVC 4k videos
· General bug fixes
tvOS 1.1.0:
-----------
· Full support for tvOS 11 and Apple TV 4K
· Hardware decoding of H.264
· Greatly improved playback engine
· Added support for dark user interface style
· Improved support for pass-through audio playback and multi-channel audio
· Fixes an unexpected app termination when uploading specifically crafted files through Remote Playback
iOS 2.8.5:
----------
· Fixes an unexpected app termination when uploading specifically crafted files through WiFi Upload
· iOS 7 stability improvements, notably when browsing servers via UPnP or deleting locally stored media
· Fixes H.264 high level hardware decoding on devices with A10 or A11
· General stability improvements and bug fixes
iOS 2.8.4:
----------
· Fixes a not responsive UI after scrubbing the Video
· Fixes iOS 11 issues with deinterlaced videos
· Fixes instances where the Video would be black
· General stability improvements and bug fixes
iOS 2.8.3:
----------
· Hardware accelerated video filtering reducing CPU load by 30% to the previous software filters (iOS 9 or later only)
· Fixes FTP playback
· Fixes crash when playback of a H.264 encoded video ends whose dimensions are not multiples of 16
· General stability improvements and bug fixes
iOS 2.8.2:
----------
· Fixes an unexpected playback termination of H.264 content after a few minutes
· Fixes playback of 10bit H.264 content
· Fixes a crash when discovering UPnP devices on the local network
· Restored playback on iOS 7
· Dropbox support is no longer an option on iOS 7 and iOS 8
· File listings in Dropbox are now alphabetically sorted (again)
· More options for default playback speed matching the tvOS version
· Fixed aspect ratio switch and crop
· General stability improvements and bug fixes
iOS 2.8.1:
----------
· General stability improvements and bug fixes
· Fixes a crash for Local Network for versions < iOS 10
· Fixes issues with .mov playback
· Fixes aspect ratio not being applied
iOS 2.8.0:
----------
* A new Network Login view
* Hardware decoding of H264/HEVC
* Added support for NFS shares
* Added Bonjour discovery for SMB shares
* Improved search bar discovery method
* Improved sleep timer
* Edit "Select All"
* Double tap to seek in videos
* Shuffle functionality
· A new Network Login view
· Hardware decoding of H.264/HEVC
· Added support for NFS shares
· Added Bonjour discovery for SMB shares
· Improved search bar discovery method
· Improved sleep timer
· Edit "Select All"
· Double tap to seek in videos
· Shuffle functionality
iOS 2.7.7:
----------
* Updated decoders
* Added ability to rename network streams
· Updated decoders
· Added ability to rename network streams
tvOS 1.0.6:
-----------
* Updated decoders
* Added repeat mode for playback
· Updated decoders
· Added repeat mode for playback
iOS 2.7.6:
----------
* General stability improvements and bug fixes
* Fix hue video filter
* Improved stability when unlocking app using Touch ID
* Improved Dropbox stability
* Prevent ghosting of media downloaded from UPnP servers
* Prevent playing the wrong file on some UPnP, PLEX or FTP shares
· General stability improvements and bug fixes
· Fix hue video filter
· Improved stability when unlocking app using Touch ID
· Improved Dropbox stability
· Prevent ghosting of media downloaded from UPnP servers
· Prevent playing the wrong file on some UPnP, PLEX or FTP shares
tvOS 1.0.5:
-----------
* General stability improvements and bug fixes
* Prevent ghosting of media downloaded from UPnP servers
* Prevent playing the wrong file on some UPnP, PLEX or FTP shares
· General stability improvements and bug fixes
· Prevent ghosting of media downloaded from UPnP servers
· Prevent playing the wrong file on some UPnP, PLEX or FTP shares
iOS 2.7.5:
----------
* Improved SMB reliability
* Stability improvements for iOS 7
· Improved SMB reliability
· Stability improvements for iOS 7
tvOS 1.0.4:
-----------
* Improved SMB reliability
· Improved SMB reliability
iOS 2.7.3:
----------
* General stability improvements and bug fixes
* Added 3D Touch Quick Actions for iPhone 6S
* Added 'Play all' feature to OneDrive
* Added 'Play all' feature to local network shares
* Added automatic finding of external subtitles on HTTP, FTP, PLEX and UPnP
· General stability improvements and bug fixes
· Added 3D Touch Quick Actions for iPhone 6S
· Added 'Play all' feature to OneDrive
· Added 'Play all' feature to local network shares
· Added automatic finding of external subtitles on HTTP, FTP, PLEX and UPnP
- Note that SMB shares are not supported yet.
* Added filtering of files found on FTP servers to only show playable media
* Improved SMB reliability
* Fixed contrast video filter
* Fixed downloads from certain UPnP, PLEX and ftp servers
* Fixed switching library display modes on iPad
· Added filtering of files found on FTP servers to only show playable media
· Improved SMB reliability
· Fixed contrast video filter
· Fixed downloads from certain UPnP, PLEX and ftp servers
· Fixed switching library display modes on iPad
tvOS 1.0.3:
-----------
* General stability improvements and bug fixes
* Added S/PDIF pass-through option
* Added option to disable artwork retrieval
* Added automatic finding of external subtitles on HTTP, FTP, PLEX and UPnP
· General stability improvements and bug fixes
· Added S/PDIF pass-through option
· Added option to disable artwork retrieval
· Added automatic finding of external subtitles on HTTP, FTP, PLEX and UPnP
- Note that SMB shares are not supported yet.
* Added filtering of files found on FTP servers to only show playable media
· Added filtering of files found on FTP servers to only show playable media
tvOS 1.0.2:
-----------
* General stability improvements and bug fixe
* Improved SMB reliability
· General stability improvements and bug fixe
· Improved SMB reliability
tvOS 1.0.1:
-----------
* General stability improvements and bug fixes
* Improved UPnP reliability, notably with Twonky, KooRaRoo, PlayOn
· General stability improvements and bug fixes
· Improved UPnP reliability, notably with Twonky, KooRaRoo, PlayOn
tvOS 1.0.0:
-----------
* Initial release
· Initial release
2.7.2:
------
* Stability improvements
* Improved HTTP connectivity
* Improved UPnP reliability, notably with Twonky
* Fixed issues unlocking the app when a passcode was never set
* Fixed custom subtitles font sizes
* Fixed UPnP playback on iOS 7
* Note: when installing this update, a potentially configured passcode is reset.
· Stability improvements
· Improved HTTP connectivity
· Improved UPnP reliability, notably with Twonky
· Fixed issues unlocking the app when a passcode was never set
· Fixed custom subtitles font sizes
· Fixed UPnP playback on iOS 7
· Note: when installing this update, a potentially configured passcode is reset.
2.7.1:
------
* Stability improvements
* Fixed issues unlocking the app when a passcode was never set
* Fixed repeat one / repeat list
* Fixed saving playback progress for files whose names contain spaces or umlauts
* Fixed multiplying music album listings
* Show music albums with 1 track correctly in the music album's list
* Improved SMB compatibility
* UPnP reliability improvements, notably with Kodi
· Stability improvements
· Fixed issues unlocking the app when a passcode was never set
· Fixed repeat one / repeat list
· Fixed saving playback progress for files whose names contain spaces or umlauts
· Fixed multiplying music album listings
· Show music albums with 1 track correctly in the music album's list
· Improved SMB compatibility
· UPnP reliability improvements, notably with Kodi
2.7.0:
------
* Added new app for the 4th gen. Apple TV
* Dropped support for iOS 6.1. VLC requires iOS 7.0 now
* Added support for SMB file sharing (#8879)
* Added support for music albums with more than 1 disk (#14650)
* Re-wrote Apple Watch extension for watchOS 2
* Media stored in folders on remote servers is now played as a list
* Reworked networking UI
* Added support for system-wide search "CoreSpotlight"
* Added improved UI support for Right-to-Left languages
* Added support for the split-screen appearance in iOS 9 (#14840)
* Added support for Touch ID to unlock app (#13378)
* Added support for WiFi sharing using a personal hotspot (#14865)
* Added option to configure playback continuation (#14340, #14590)
* Added option to configure gestures (#15449)
* Added support for music albums with more than 1 disk (#14650)
* Display chapter duration in playback UI (#14718)
* Recently played network stream URL are now shared across all devices
* Stored login information is now shared across all devices
* Cloud login credentials are now shared across all devices
· Added new app for the 4th gen. Apple TV
· Dropped support for iOS 6.1. VLC requires iOS 7.0 now
· Added support for SMB file sharing (#8879)
· Added support for music albums with more than 1 disk (#14650)
· Re-wrote Apple Watch extension for watchOS 2
· Media stored in folders on remote servers is now played as a list
· Reworked networking UI
· Added support for system-wide search "CoreSpotlight"
· Added improved UI support for Right-to-Left languages
· Added support for the split-screen appearance in iOS 9 (#14840)
· Added support for Touch ID to unlock app (#13378)
· Added support for WiFi sharing using a personal hotspot (#14865)
· Added option to configure playback continuation (#14340, #14590)
· Added option to configure gestures (#15449)
· Added support for music albums with more than 1 disk (#14650)
· Display chapter duration in playback UI (#14718)
· Recently played network stream URL are now shared across all devices
· Stored login information is now shared across all devices
· Cloud login credentials are now shared across all devices
2.6.6:
------
* Desktop quality SSA subtitles rendering (finally!, #11297, #13365, #14112)
* Stability improvements
* New translations to Lao and Kabyle
· Desktop quality SSA subtitles rendering (finally!, #11297, #13365, #14112)
· Stability improvements
· New translations to Lao and Kabyle
2.6.5:
------
* Fixed playback of streams opened through the legacy vlc:// pseudo protocol
* Minor improvements (#14080, #14836, #14881, #15118)
* New translation to Norwegian Bokmål
* Updated translations to Afrikaans, Arabic, Bosnian, Czech, Danish, English (GB),
· Fixed playback of streams opened through the legacy vlc:// pseudo protocol
· Minor improvements (#14080, #14836, #14881, #15118)
· New translation to Norwegian Bokmål
· Updated translations to Afrikaans, Arabic, Bosnian, Czech, Danish, English (GB),
Spanish (Mexico), Persian, Hungarian, Korean, Latvian, Malay, Polish, Portuguese (Brazil),
Portuguese (Portugal), Slovenian, Turkish and Traditional Chinese
2.6.4:
------
* Fixed playback of UPnP streams broken in previous update
· Fixed playback of UPnP streams broken in previous update
2.6.3:
------
* Stability improvements and minor bug fixes (#13601, #14154, #14611, #14852, #14860, #14864)
* Fixed video playback for URLs open via third party apps (#15075)
· Stability improvements and minor bug fixes (#13601, #14154, #14611, #14852, #14860, #14864)
· Fixed video playback for URLs open via third party apps (#15075)
2.6.2:
------
* Improved playback reliability (#15000 et al)
* Added minimize button to fullscreen playback so 'Done' stops playback again
* Added option to always play video in fullscreen, on by default (#14985)
* Fixed subtitles rendering which produced incorrect umlauts or pixelated fonts (#14978 et al.,
· Improved playback reliability (#15000 et al)
· Added minimize button to fullscreen playback so 'Done' stops playback again
· Added option to always play video in fullscreen, on by default (#14985)
· Fixed subtitles rendering which produced incorrect umlauts or pixelated fonts (#14978 et al.,
#14883, #14919, #14929)
* Fixed major playback issue on iOS 7 on iPad (#14977)
* Fixed remove control events on iOS 6 (#14996)
* Fixed x-callback-url on playback close (#14984)
* Improved accessibility (#15012)
· Fixed major playback issue on iOS 7 on iPad (#14977)
· Fixed remove control events on iOS 6 (#14996)
· Fixed x-callback-url on playback close (#14984)
· Improved accessibility (#15012)
2.6.1:
------
* Reduced Apple Watch extension file size by 90%
* Minor bug fix (#14942)
· Reduced Apple Watch extension file size by 90%
· Minor bug fix (#14942)
2.6.0:
------
* Added support for Apple Watch - control VLC from your watch!
· Added support for Apple Watch - control VLC from your watch!
- playback control
- media info
- library browsing
* Added mini-player to browse the library during playback (#13367)
* Added support for looping playlist