瀏覽代碼

clouds: use a designated TV table view controller

Felix Paul Kühne 9 年之前
父節點
當前提交
865bba9a66

+ 11 - 0
Sources/VLCBoxTableViewController.h

@@ -9,8 +9,19 @@
  *
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
+
+#if TARGET_OS_IOS
 #import "VLCCloudStorageTableViewController.h"
 
 @interface VLCBoxTableViewController : VLCCloudStorageTableViewController
 
 @end
+
+#else
+#import "VLCCloudStorageTVTableViewController.h"
+
+@interface VLCBoxTableViewController : VLCCloudStorageTVTableViewController
+
+@end
+
+#endif

+ 6 - 4
Sources/VLCBoxTableViewController.m

@@ -41,11 +41,13 @@
 
     self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Box"]];
 
+#if TARGET_OS_IOS
     [self.cloudStorageLogo setImage:[UIImage imageNamed:@"Box"]];
 
     [self.cloudStorageLogo sizeToFit];
     self.cloudStorageLogo.center = self.view.center;
-    
+#endif
+
     // Handle logged in
     NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
     [defaultCenter addObserver:self
@@ -93,7 +95,7 @@
     [super viewWillAppear:animated];
     self.currentPath = @"";
     if([_boxController.currentListFiles count] == 0)
-        [self _requestInformationForCurrentPath];
+        [self requestInformationForCurrentPath];
 }
 
 - (void)viewWillDisappear:(BOOL)animated
@@ -138,7 +140,7 @@
         if (![self.currentPath isEqualToString:@""])
             self.currentPath = [self.currentPath stringByAppendingString:@"/"];
         self.currentPath = [self.currentPath stringByAppendingString:_selectedFile.modelID];
-        [self _requestInformationForCurrentPath];
+        [self requestInformationForCurrentPath];
     }
 }
 
@@ -227,7 +229,7 @@
 
     if (maximumOffset - currentOffset <= - self.tableView.rowHeight) {
         if (_boxController.hasMoreFiles && !self.activityIndicator.isAnimating) {
-            [self _requestInformationForCurrentPath];
+            [self requestInformationForCurrentPath];
         }
     }
 }

+ 1 - 1
Sources/VLCCloudStorageTableViewController.h

@@ -29,7 +29,7 @@
 
 - (IBAction)loginAction:(id)sender;
 
-- (void)_requestInformationForCurrentPath;
+- (void)requestInformationForCurrentPath;
 - (void)_showLoginPanel;
 - (void)updateViewAfterSessionChange;
 - (void)goBack;

+ 4 - 4
Sources/VLCCloudStorageTableViewController.m

@@ -112,12 +112,12 @@
     NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
     _refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:lastupdated attributes:attrsDictionary];
 
-    [self _requestInformationForCurrentPath];
+    [self requestInformationForCurrentPath];
 }
 
 #endif
 
-- (void)_requestInformationForCurrentPath
+- (void)requestInformationForCurrentPath
 {
     [_activityIndicator startAnimating];
     [self.controller requestDirectoryListingAtPath:self.currentPath];
@@ -198,7 +198,7 @@
 {
     if (((![self.currentPath isEqualToString:@""] && ![self.currentPath isEqualToString:@"/"]) && [self.currentPath length] > 0) && [self.controller isAuthorized]){
         self.currentPath = [self.currentPath stringByDeletingLastPathComponent];
-        [self _requestInformationForCurrentPath];
+        [self requestInformationForCurrentPath];
     } else
         [self.navigationController popViewControllerAnimated:YES];
 }
@@ -230,7 +230,7 @@
         self.currentPath = @"";
     }
     if([self.controller.currentListFiles count] == 0)
-        [self _requestInformationForCurrentPath];
+        [self requestInformationForCurrentPath];
 }
 
 - (void)logout

+ 12 - 1
Sources/VLCDropboxTableViewController.h

@@ -11,9 +11,20 @@
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
 
-#import "VLCCloudStorageTableViewController.h"
 #import "VLCDropboxController.h"
 
+#if TARGET_OS_IOS
+#import "VLCCloudStorageTableViewController.h"
+
 @interface VLCDropboxTableViewController : VLCCloudStorageTableViewController
 
 @end
+
+#else
+#import "VLCCloudStorageTVTableViewController.h"
+
+@interface VLCDropboxTableViewController : VLCCloudStorageTVTableViewController
+
+@end
+
+#endif

+ 4 - 2
Sources/VLCDropboxTableViewController.m

@@ -25,7 +25,7 @@
 #endif
 
 
-@interface VLCDropboxTableViewController () <VLCCloudStorageTableViewCell>
+@interface VLCDropboxTableViewController () <VLCCloudStorageTableViewCell, VLCCloudStorageDelegate>
 {
     VLCDropboxController *_dropboxController;
     DBMetadata *_selectedFile;
@@ -61,10 +61,12 @@
 
     self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dropbox-white"]];
 
+#if TARGET_OS_IOS
     [self.cloudStorageLogo setImage:[UIImage imageNamed:@"dropbox-white.png"]];
 
     [self.cloudStorageLogo sizeToFit];
     self.cloudStorageLogo.center = self.view.center;
+#endif
 }
 
 - (void)viewWillAppear:(BOOL)animated
@@ -113,7 +115,7 @@
     else {
         /* dive into subdirectory */
         self.currentPath = [self.currentPath stringByAppendingFormat:@"/%@", _selectedFile.filename];
-        [self _requestInformationForCurrentPath];
+        [self requestInformationForCurrentPath];
     }
     _selectedFile = nil;
 

+ 10 - 0
Sources/VLCOneDriveTableViewController.h

@@ -10,8 +10,18 @@
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
 
+#if TARGET_OS_IOS
 #import "VLCCloudStorageTableViewController.h"
 
 @interface VLCOneDriveTableViewController : VLCCloudStorageTableViewController
 
 @end
+
+#else
+#import "VLCCloudStorageTVTableViewController.h"
+
+@interface VLCOneDriveTableViewController : VLCCloudStorageTVTableViewController
+
+@end
+
+#endif

+ 2 - 0
Sources/VLCOneDriveTableViewController.m

@@ -36,10 +36,12 @@
 
     self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"OneDriveWhite"]];
 
+#if TARGET_OS_IOS
     [self.cloudStorageLogo setImage:[UIImage imageNamed:@"OneDriveWhite"]];
 
     [self.cloudStorageLogo sizeToFit];
     self.cloudStorageLogo.center = self.view.center;
+#endif
 }
 
 - (void)viewWillAppear:(BOOL)animated

+ 3 - 3
VLC for Apple TV/VLCCloudServicesTVViewController.m

@@ -31,9 +31,9 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
 
-    self.dropboxTableViewController = [[VLCDropboxTableViewController alloc] initWithNibName:@"VLCCloudStorageTableViewController" bundle:nil];
-    self.oneDriveTableViewController = [[VLCOneDriveTableViewController alloc] initWithNibName:@"VLCCloudStorageTableViewController" bundle:nil];
-    self.boxTableViewController = [[VLCBoxTableViewController alloc] initWithNibName:@"VLCCloudStorageTableViewController" bundle:nil];
+    self.dropboxTableViewController = [[VLCDropboxTableViewController alloc] initWithNibName:nil bundle:nil];
+    self.oneDriveTableViewController = [[VLCOneDriveTableViewController alloc] initWithNibName:nil bundle:nil];
+    self.boxTableViewController = [[VLCBoxTableViewController alloc] initWithNibName:nil bundle:nil];
 }
 
 - (NSString *)title

+ 25 - 0
VLC for Apple TV/VLCCloudStorageTVTableViewController.h

@@ -0,0 +1,25 @@
+/*****************************************************************************
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2015 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+#import "VLCCloudStorageController.h"
+
+@interface VLCCloudStorageTVTableViewController : UITableViewController
+
+@property (nonatomic, strong) VLCCloudStorageController *controller;
+@property (nonatomic, strong) NSString *currentPath;
+@property (nonatomic) BOOL authorizationInProgress;
+@property (nonatomic, strong) UIActivityIndicatorView *activityIndicator;
+
+- (void)updateViewAfterSessionChange;
+- (void)requestInformationForCurrentPath;
+
+@end

+ 75 - 0
VLC for Apple TV/VLCCloudStorageTVTableViewController.m

@@ -0,0 +1,75 @@
+/*****************************************************************************
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2015 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCCloudStorageTVTableViewController.h"
+#import "VLCCloudStorageTableViewCell.h"
+
+@implementation VLCCloudStorageTVTableViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+
+    self.tableView.rowHeight = [VLCCloudStorageTableViewCell heightOfCell];
+
+    self.tableView.backgroundColor = [UIColor VLCLightTextColor];
+
+    _activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
+    _activityIndicator.hidesWhenStopped = YES;
+    _activityIndicator.translatesAutoresizingMaskIntoConstraints = NO;
+
+    [self.view addSubview:_activityIndicator];
+
+    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:_activityIndicator attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]];
+    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:_activityIndicator attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0]];
+}
+
+- (void)mediaListUpdated
+{
+    [_activityIndicator stopAnimating];
+
+    [self.tableView reloadData];
+}
+
+- (void)updateViewAfterSessionChange
+{
+    if (![self.controller isAuthorized]) {
+        [_activityIndicator stopAnimating];
+        return;
+    }
+
+    //reload if we didn't come back from streaming
+    if (self.currentPath == nil)
+        self.currentPath = @"";
+
+    if([self.controller.currentListFiles count] == 0)
+        [self requestInformationForCurrentPath];
+}
+
+- (void)requestInformationForCurrentPath
+{
+    [_activityIndicator startAnimating];
+    [self.controller requestDirectoryListingAtPath:self.currentPath];
+    [_activityIndicator stopAnimating];
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return self.controller.currentListFiles.count;
+}
+
+@end

+ 0 - 41
VLC for Apple TV/VLCCloudStorageTableViewController.xib

@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder.AppleTV.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES">
-    <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCCloudStorageTableViewController">
-            <connections>
-                <outlet property="preferredFocusedView" destination="BJu-fh-cvS" id="esr-eG-51l"/>
-                <outlet property="tableView" destination="BJu-fh-cvS" id="Q4L-re-bYO"/>
-                <outlet property="view" destination="iN0-l3-epB" id="StN-hL-tvv"/>
-            </connections>
-        </placeholder>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="iN0-l3-epB">
-            <rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <subviews>
-                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="66" sectionHeaderHeight="40" sectionFooterHeight="40" translatesAutoresizingMaskIntoConstraints="NO" id="BJu-fh-cvS">
-                    <rect key="frame" x="68" y="114" width="1784" height="917"/>
-                    <animations/>
-                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="1784" id="Fbw-Lq-50b"/>
-                        <constraint firstAttribute="height" constant="917" id="U93-WZ-nro"/>
-                    </constraints>
-                    <connections>
-                        <outlet property="dataSource" destination="-1" id="KMS-Qu-Hei"/>
-                        <outlet property="delegate" destination="-1" id="LBp-MJ-kum"/>
-                    </connections>
-                </tableView>
-            </subviews>
-            <animations/>
-            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
-            <constraints>
-                <constraint firstItem="BJu-fh-cvS" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="114" id="iWm-Kv-B61"/>
-                <constraint firstItem="BJu-fh-cvS" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="tgK-kM-gPy"/>
-            </constraints>
-        </view>
-    </objects>
-</document>

+ 6 - 6
VLC for iOS.xcodeproj/project.pbxproj

@@ -59,7 +59,6 @@
 		7D00161C177056B700649F27 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 7D00161A17704DAC00649F27 /* main.js */; };
 		7D0117F1187F4BA400C5671C /* VLCFirstStepsFirstPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D0117F0187F4BA400C5671C /* VLCFirstStepsFirstPageViewController~ipad.xib */; };
 		7D0363AC1B2F325500CC0343 /* MediaLibrary.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 7D0363A71B2F325500CC0343 /* MediaLibrary.xcdatamodeld */; };
-		7D0C34E61BD94DEE0058CD19 /* VLCCloudStorageTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D0C34E51BD94DEE0058CD19 /* VLCCloudStorageTableViewController.xib */; };
 		7D0C34E71BD951080058CD19 /* NSString+SupportedMedia.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784C5183A9972009EE944 /* NSString+SupportedMedia.m */; };
 		7D0C352F1BD97BC50058CD19 /* libLiveTVSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D0C352E1BD97BC50058CD19 /* libLiveTVSDK.a */; };
 		7D0C35331BD97C100058CD19 /* VLCOneDriveController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1052ED1A4DCD1E00295F08 /* VLCOneDriveController.m */; };
@@ -74,6 +73,7 @@
 		7D13347C1BE132EA0012E919 /* VLCLocalNetworkServiceBrowserUPnP.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EFF231BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserUPnP.m */; };
 		7D13347F1BE132ED0012E919 /* VLCLocalNetworkServiceUPnP.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EFF251BDEBCE500B68579 /* VLCLocalNetworkServiceUPnP.m */; };
 		7D1334801BE132F10012E919 /* VLCNetworkServerBrowserUPnP.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EFF271BDEBCE500B68579 /* VLCNetworkServerBrowserUPnP.m */; };
+		7D1334831BE135700012E919 /* VLCCloudStorageTVTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1334821BE135700012E919 /* VLCCloudStorageTVTableViewController.m */; };
 		7D1516421868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163B1868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib */; };
 		7D1516431868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163C1868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController~iphone.xib */; };
 		7D1516461868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163F1868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController~iphone.xib */; };
@@ -142,7 +142,6 @@
 		7D5CAA8C1A4AD8E5003F2CBC /* VLCTrackSelectorHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D5CAA8B1A4AD8E5003F2CBC /* VLCTrackSelectorHeaderView.m */; };
 		7D5DD5C717590ABF001421E3 /* About Contents.html in Resources */ = {isa = PBXBuildFile; fileRef = 7D5DD5C617590ABF001421E3 /* About Contents.html */; };
 		7D6069691BD92E6900AB765C /* libSDropboxSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D5278CD1BD7DE3D00D0CA0E /* libSDropboxSDK.a */; };
-		7D60696A1BD93ABF00AB765C /* VLCCloudStorageTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */; };
 		7D60696B1BD93AC800AB765C /* VLCDropboxTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784AC183A9906009EE944 /* VLCDropboxTableViewController.m */; };
 		7D60696C1BD93BE200AB765C /* VLCCloudStorageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */; };
 		7D6069721BD94AD600AB765C /* VLCCloudStorageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D6069711BD94AD600AB765C /* VLCCloudStorageTableViewCell.xib */; };
@@ -562,7 +561,6 @@
 		7D0363A91B2F325500CC0343 /* MediaLibrary-2.5.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "MediaLibrary-2.5.xcdatamodel"; sourceTree = "<group>"; };
 		7D0363AA1B2F325500CC0343 /* MediaLibrary-2.6.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "MediaLibrary-2.6.xcdatamodel"; sourceTree = "<group>"; };
 		7D0363AB1B2F325500CC0343 /* MediaLibrary-2.7.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "MediaLibrary-2.7.xcdatamodel"; sourceTree = "<group>"; };
-		7D0C34E51BD94DEE0058CD19 /* VLCCloudStorageTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCCloudStorageTableViewController.xib; path = "VLC for Apple TV/VLCCloudStorageTableViewController.xib"; sourceTree = SOURCE_ROOT; };
 		7D0C352E1BD97BC50058CD19 /* libLiveTVSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libLiveTVSDK.a; path = "ImportedSources/OneDrive/src/build/Debug-appletvos/libLiveTVSDK.a"; sourceTree = "<group>"; };
 		7D1052E71A4DCC1100295F08 /* VLCOneDriveTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCOneDriveTableViewController.h; path = Sources/VLCOneDriveTableViewController.h; sourceTree = SOURCE_ROOT; };
 		7D1052E81A4DCC1100295F08 /* VLCOneDriveTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCOneDriveTableViewController.m; path = Sources/VLCOneDriveTableViewController.m; sourceTree = SOURCE_ROOT; };
@@ -580,6 +578,8 @@
 		7D13297A1BA313D500BE647E /* TVPrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVPrefixHeader.pch; sourceTree = "<group>"; };
 		7D13297B1BA3142100BE647E /* libTVVLCKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTVVLCKit.a; path = "ImportedSources/VLCKit/build/Debug-appletvos/libTVVLCKit.a"; sourceTree = "<group>"; };
 		7D13297D1BA3160C00BE647E /* libTVVLCKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libTVVLCKit.a; path = "ImportedSources/VLCKit/build/Debug-appletvos/libTVVLCKit.a"; sourceTree = "<group>"; };
+		7D1334811BE135700012E919 /* VLCCloudStorageTVTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCCloudStorageTVTableViewController.h; sourceTree = "<group>"; };
+		7D1334821BE135700012E919 /* VLCCloudStorageTVTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCCloudStorageTVTableViewController.m; sourceTree = "<group>"; };
 		7D15163B1868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsFifthPageViewController.xib; path = Resources/VLCFirstStepsFifthPageViewController.xib; sourceTree = SOURCE_ROOT; };
 		7D15163C1868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController~iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCFirstStepsFirstPageViewController~iphone.xib"; path = "Resources/VLCFirstStepsFirstPageViewController~iphone.xib"; sourceTree = SOURCE_ROOT; };
 		7D15163F1868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController~iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCFirstStepsSixthPageViewController~iphone.xib"; path = "Resources/VLCFirstStepsSixthPageViewController~iphone.xib"; sourceTree = SOURCE_ROOT; };
@@ -1368,6 +1368,8 @@
 			children = (
 				7D3E52881BD7B5E100309D15 /* VLCCloudServicesTVViewController.h */,
 				7D3E52891BD7B5E100309D15 /* VLCCloudServicesTVViewController.m */,
+				7D1334811BE135700012E919 /* VLCCloudStorageTVTableViewController.h */,
+				7D1334821BE135700012E919 /* VLCCloudStorageTVTableViewController.m */,
 				7D5278C31BD7DE3D00D0CA0E /* DropboxSDK.xcodeproj */,
 			);
 			name = Cloud;
@@ -1753,7 +1755,6 @@
 				7DC71D201BC83058001FACAA /* VLCAppSharesTVViewController.xib */,
 				7DC71D251BC830A5001FACAA /* VLCLocalNetworkTVViewController.xib */,
 				7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */,
-				7D0C34E51BD94DEE0058CD19 /* VLCCloudStorageTableViewController.xib */,
 				DDEAECF51BDFEAFA00756C83 /* VLCLocalNetworkServerTVCell.xib */,
 			);
 			name = xibs;
@@ -2434,7 +2435,6 @@
 				7DC71D271BC830A5001FACAA /* VLCLocalNetworkTVViewController.xib in Resources */,
 				7DC71D221BC83058001FACAA /* VLCAppSharesTVViewController.xib in Resources */,
 				7DEC8C1E1BD69710006E1093 /* About Contents.html in Resources */,
-				7D0C34E61BD94DEE0058CD19 /* VLCCloudStorageTableViewController.xib in Resources */,
 				DDEAECF61BDFEAFA00756C83 /* VLCLocalNetworkServerTVCell.xib in Resources */,
 				7D13294F1BA1F10100BE647E /* Assets.xcassets in Resources */,
 				7DEC8BE91BD68BC9006E1093 /* Settings.bundle in Resources */,
@@ -2649,6 +2649,7 @@
 				7D60696C1BD93BE200AB765C /* VLCCloudStorageTableViewCell.m in Sources */,
 				7D7EF3DD1BD5779F00CD4CEE /* VLCPlaybackController.m in Sources */,
 				DD3EFF361BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserNetService.m in Sources */,
+				7D1334831BE135700012E919 /* VLCCloudStorageTVTableViewController.m in Sources */,
 				7D13347C1BE132EA0012E919 /* VLCLocalNetworkServiceBrowserUPnP.m in Sources */,
 				DDEAECF11BDFE9E800756C83 /* VLCServerListTVTableViewController.m in Sources */,
 				7DEC8BDE1BD67899006E1093 /* VLCFullscreenMovieTVViewController.m in Sources */,
@@ -2674,7 +2675,6 @@
 				DD3EFF341BDEBCE500B68579 /* VLCLocalNetworkServiceBrowserMediaDiscoverer.m in Sources */,
 				DD3EFF421BDEBCE500B68579 /* VLCNetworkServerBrowserSharedLibrary.m in Sources */,
 				7D5278E41BD7E37300D0CA0E /* VLCCloudStorageController.m in Sources */,
-				7D60696A1BD93ABF00AB765C /* VLCCloudStorageTableViewController.m in Sources */,
 				7D3E528B1BD7B5E100309D15 /* VLCCloudServicesTVViewController.m in Sources */,
 				7DEC8C1D1BD6913A006E1093 /* VLCSettingsAboutTableViewController.m in Sources */,
 			);