Selaa lähdekoodia

CloudStorage:unified GDrive and DropboxtableView

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
Carola Nitz 11 vuotta sitten
vanhempi
commit
1e045b513d

+ 10 - 9
Resources/VLCDropboxTableViewController.xib

@@ -1,20 +1,21 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
     <dependencies>
         <deployment version="1296" defaultVersion="1552" identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
     </dependencies>
     <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCDropboxTableViewController">
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCCloudStorageTableViewController">
             <connections>
-                <outlet property="loginToDropboxButton" destination="20" id="27"/>
-                <outlet property="loginToDropboxView" destination="8" id="26"/>
+                <outlet property="cloudStorageLogo" destination="9" id="9Q5-Ar-xu1"/>
+                <outlet property="loginButton" destination="20" id="AIe-DC-rE2"/>
+                <outlet property="loginToCloudStorageView" destination="8" id="Hry-dm-Ayh"/>
                 <outlet property="tableView" destination="29" id="30"/>
                 <outlet property="view" destination="28" id="31"/>
             </connections>
         </placeholder>
         <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="28">
+        <view contentMode="scaleToFill" restorationIdentifier="CloudStorageTableViewController" id="28">
             <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
             <subviews>
@@ -33,12 +34,12 @@
             <simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
             <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
         </view>
-        <view contentMode="scaleToFill" id="8">
+        <view contentMode="scaleToFill" id="8" customClass="CloudStorageTableViewControllerLogin">
             <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <subviews>
                 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="dropbox-white.png" id="9">
-                    <rect key="frame" x="71" y="192" width="179" height="60"/>
+                    <rect key="frame" x="70" y="192" width="179" height="60"/>
                     <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                 </imageView>
                 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="20" customClass="VLCMenuButton">
@@ -53,7 +54,7 @@
                         <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                     </state>
                     <connections>
-                        <action selector="loginToDropboxAction:" destination="-1" eventType="touchUpInside" id="25"/>
+                        <action selector="loginAction:" destination="-1" eventType="touchUpInside" id="Ny5-mX-HmE"/>
                     </connections>
                 </button>
             </subviews>

+ 0 - 68
Resources/VLCGoogleDriveTableViewController.xib

@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
-    <dependencies>
-        <deployment version="1296" defaultVersion="1552" identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
-    </dependencies>
-    <objects>
-        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCGoogleDriveTableViewController">
-            <connections>
-                <outlet property="loginToGoogleDriveButton" destination="20" id="TtB-EO-dc5"/>
-                <outlet property="loginToGoogleDriveView" destination="8" id="6R4-FE-vqb"/>
-                <outlet property="tableView" destination="29" id="30"/>
-                <outlet property="view" destination="28" id="31"/>
-            </connections>
-        </placeholder>
-        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
-        <view contentMode="scaleToFill" id="28">
-            <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-            <subviews>
-                <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="29">
-                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
-                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                    <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
-                    <connections>
-                        <outlet property="dataSource" destination="-1" id="32"/>
-                        <outlet property="delegate" destination="-1" id="33"/>
-                    </connections>
-                </tableView>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
-            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
-            <simulatedToolbarMetrics key="simulatedBottomBarMetrics" barStyle="black"/>
-            <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
-        </view>
-        <view contentMode="scaleToFill" id="8">
-            <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
-            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-            <subviews>
-                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="DriveWhite.png" id="9">
-                    <rect key="frame" x="77" y="202" width="162" height="48"/>
-                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
-                </imageView>
-                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="20" customClass="VLCMenuButton">
-                    <rect key="frame" x="120" y="312" width="81" height="39"/>
-                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
-                    <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
-                    <state key="normal" title="Login" backgroundImage="menuButton.png">
-                        <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
-                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
-                    </state>
-                    <state key="highlighted">
-                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                    </state>
-                    <connections>
-                        <action selector="loginToGoogleDriveAction:" destination="-1" eventType="touchUpInside" id="JPk-kM-vDi"/>
-                    </connections>
-                </button>
-            </subviews>
-            <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
-            <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
-        </view>
-    </objects>
-    <resources>
-        <image name="DriveWhite.png" width="81" height="24"/>
-        <image name="menuButton.png" width="63" height="39"/>
-    </resources>
-</document>

+ 26 - 0
Sources/VLCCloudStorageTableViewController.h

@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * VLCCloudStorageTableViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *          Fabio Ritrovato <sephiroth87 # videolan.org>
+ *          Carola Nitz <nitz.carola # googlemail.com>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+@interface VLCCloudStorageTableViewController : UIViewController
+
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) IBOutlet UIView *loginToCloudStorageView;
+@property (nonatomic, strong) IBOutlet UIButton *loginButton;
+@property (nonatomic, strong) IBOutlet UIImageView *cloudStorageLogo;
+
+- (IBAction)loginAction:(id)sender;
+
+- (void)updateViewAfterSessionChange;
+
+@end

+ 40 - 0
Sources/VLCCloudStorageTableViewController.m

@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * VLCCloudStorageTableViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *          Fabio Ritrovato <sephiroth87 # videolan.org>
+ *          Carola Nitz <nitz.carola # googlemail.com>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCCloudStorageTableViewController.h"
+
+@interface VLCCloudStorageTableViewController ()
+
+@end
+
+@implementation VLCCloudStorageTableViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+    }
+    return self;
+}
+
+- (IBAction)loginAction:(id)sender
+{
+}
+
+- (void)updateViewAfterSessionChange
+{
+}
+
+
+@end

+ 2 - 9
Sources/VLCDropboxTableViewController.h

@@ -11,16 +11,9 @@
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
 
+#import "VLCCloudStorageTableViewController.h"
 #import "VLCDropboxController.h"
 
-@interface VLCDropboxTableViewController : UIViewController <VLCDropboxController>
-
-@property (nonatomic, strong) IBOutlet UITableView *tableView;
-@property (nonatomic, strong) IBOutlet UIView *loginToDropboxView;
-@property (nonatomic, strong) IBOutlet UIButton *loginToDropboxButton;
-
-- (IBAction)loginToDropboxAction:(id)sender;
-
-- (void)updateViewAfterSessionChange;
+@interface VLCDropboxTableViewController : VLCCloudStorageTableViewController
 
 @end

+ 9 - 8
Sources/VLCDropboxTableViewController.m

@@ -47,7 +47,7 @@
 - (void)viewDidLoad
 {
     [super viewDidLoad];
-
+    [[NSBundle mainBundle] loadNibNamed:@"VLCCloudStorageTableViewController" owner:self options:nil];
     self.modalPresentationStyle = UIModalPresentationFormSheet;
 
     _dropboxController = [[VLCDropboxController alloc] init];
@@ -76,8 +76,9 @@
     _downloadingBarLabel = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"DOWNLOADING",@"") style:UIBarButtonItemStylePlain target:nil action:nil];
     [_downloadingBarLabel setTitleTextAttributes:@{ UITextAttributeFont : [UIFont systemFontOfSize:11.] } forState:UIControlStateNormal];
 
-    _loginToDropboxView.backgroundColor = [UIColor colorWithWhite:.122 alpha:1.];
-    [_loginToDropboxButton setTitle:NSLocalizedString(@"DROPBOX_LOGIN", @"") forState:UIControlStateNormal];
+    self.loginToCloudStorageView.backgroundColor = [UIColor colorWithWhite:.122 alpha:1.];
+    [self.cloudStorageLogo setImage:[UIImage imageNamed:@"dropbox-white.png"]];
+    [self.loginButton setTitle:NSLocalizedString(@"DROPBOX_LOGIN", @"") forState:UIControlStateNormal];
 
     [self.navigationController.toolbar setBackgroundImage:[UIImage imageNamed:@"sudHeaderBg"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
 
@@ -242,8 +243,8 @@
     if (![[DBSession sharedSession] isLinked]) {
         [self _showLoginPanel];
         return;
-    } else if (self.loginToDropboxView.superview)
-        [self.loginToDropboxView removeFromSuperview];
+    } else if (self.loginToCloudStorageView.superview)
+        [self.loginToCloudStorageView removeFromSuperview];
 
     _currentPath = @"/";
     [self _requestInformationForCurrentPath];
@@ -253,11 +254,11 @@
 
 - (void)_showLoginPanel
 {
-    self.loginToDropboxView.frame = self.tableView.frame;
-    [self.view addSubview:self.loginToDropboxView];
+    self.loginToCloudStorageView.frame = self.tableView.frame;
+    [self.view addSubview:self.loginToCloudStorageView];
 }
 
-- (IBAction)loginToDropboxAction:(id)sender
+- (IBAction)loginAction:(id)sender
 {
     if (!_dropboxController.sessionIsLinked)
         [[DBSession sharedSession] linkFromController:self];

+ 2 - 10
Sources/VLCGoogleDriveTableViewController.h

@@ -9,19 +9,11 @@
  *
  * Refer to the COPYING file of the official project for license.
  *****************************************************************************/
-
-#import "VLCGoogleDriveController.h"
+#import "VLCCloudStorageTableViewController.h"
 #import "GTMOAuth2ViewControllerTouch.h"
 
-@interface VLCGoogleDriveTableViewController : UIViewController <VLCGoogleDriveController>
-
-@property (nonatomic, strong) IBOutlet UITableView *tableView;
-@property (nonatomic, strong) IBOutlet UIView *loginToGoogleDriveView;
-@property (nonatomic, strong) IBOutlet UIButton *loginToGoogleDriveButton;
-
+@interface VLCGoogleDriveTableViewController : VLCCloudStorageTableViewController
 
-- (IBAction)loginToGoogleDriveAction:(id)sender;
 - (void)viewController:(GTMOAuth2ViewControllerTouch *)viewController finishedWithAuth:(GTMOAuth2Authentication *)authResult error:(NSError *)error;
-- (void)updateViewAfterSessionChange;
 
 @end

+ 25 - 10
Sources/VLCGoogleDriveTableViewController.m

@@ -19,6 +19,7 @@
 #import "UIBarButtonItem+Theme.h"
 #import "VLCGoogleDriveConstants.h"
 #import "GTMOAuth2ViewControllerTouch.h"
+#import "VLCGoogleDriveController.h"
 
 @interface VLCGoogleDriveTableViewController () <VLCCloudStorageTableViewCell>
 {
@@ -46,7 +47,7 @@
 - (void)viewDidLoad
 {
     [super viewDidLoad];
-
+    [[NSBundle mainBundle] loadNibNamed:@"VLCCloudStorageTableViewController" owner:self options:nil];
     self.modalPresentationStyle = UIModalPresentationFormSheet;
 
     _googleDriveController = [VLCGoogleDriveController sharedInstance];
@@ -74,8 +75,10 @@
     _downloadingBarLabel = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"DOWNLOADING",@"") style:UIBarButtonItemStylePlain target:nil action:nil];
     [_downloadingBarLabel setTitleTextAttributes:@{ UITextAttributeFont : [UIFont systemFontOfSize:11.] } forState:UIControlStateNormal];
 
-    _loginToGoogleDriveView.backgroundColor = [UIColor colorWithWhite:.122 alpha:1.];
-    [_loginToGoogleDriveButton setTitle:NSLocalizedString(@"DROPBOX_LOGIN", @"") forState:UIControlStateNormal];
+    self.loginToCloudStorageView.backgroundColor = [UIColor colorWithWhite:.122 alpha:1.];
+    [self _setupLogo];
+
+    [self.loginButton setTitle:NSLocalizedString(@"DROPBOX_LOGIN", @"") forState:UIControlStateNormal];
 
     [self.navigationController.toolbar setBackgroundImage:[UIImage imageNamed:@"sudHeaderBg"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
 
@@ -87,6 +90,18 @@
     [self.view addSubview:_activityIndicator];
 }
 
+- (void)_setupLogo
+{
+    [self.cloudStorageLogo setImage:[UIImage imageNamed:@"driveWhite"]];
+
+    CGRect rect;
+    rect.size = [UIImage imageNamed:@"driveWhite"].size;
+    rect.origin.x = (self.loginToCloudStorageView.frame.size.width - rect.size.width) / 2;
+    rect.origin.y = self.loginButton.frame.origin.y - rect.size.height - 50;
+
+    [self.cloudStorageLogo setFrame:CGRectIntegral(rect)];
+}
+
 - (GTMOAuth2ViewControllerTouch *)createAuthController
 {
     _authController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:kGTLAuthScopeDrive
@@ -290,15 +305,15 @@
 - (void)updateViewAfterSessionChange
 {
     if(_authorizationInProgress) {
-        if (self.loginToGoogleDriveView.superview)
-            [self.loginToGoogleDriveView removeFromSuperview];
+        if (self.loginToCloudStorageView.superview)
+            [self.loginToCloudStorageView removeFromSuperview];
         return;
     }
     if (![_googleDriveController isAuthorized]) {
         [self _showLoginPanel];
         return;
-    } else if (self.loginToGoogleDriveView.superview)
-        [self.loginToGoogleDriveView removeFromSuperview];
+    } else if (self.loginToCloudStorageView.superview)
+        [self.loginToCloudStorageView removeFromSuperview];
 
     //reload if we didn't come back from streaming
     if([_googleDriveController.currentListFiles count] == 0)
@@ -309,11 +324,11 @@
 
 - (void)_showLoginPanel
 {
-    self.loginToGoogleDriveView.frame = self.tableView.frame;
-    [self.view addSubview:self.loginToGoogleDriveView];
+    self.loginToCloudStorageView.frame = self.tableView.frame;
+    [self.view addSubview:self.loginToCloudStorageView];
 }
 
-- (IBAction)loginToGoogleDriveAction:(id)sender
+- (IBAction)loginAction:(id)sender
 {
     if (![_googleDriveController isAuthorized]) {
         _authorizationInProgress = YES;

+ 12 - 10
VLC for iOS.xcodeproj/project.pbxproj

@@ -125,7 +125,6 @@
 		7D3784A7183A98F5009EE944 /* VLCSettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784A5183A98F5009EE944 /* VLCSettingsController.m */; };
 		7D3784AD183A9906009EE944 /* VLCDropboxController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784AA183A9906009EE944 /* VLCDropboxController.m */; };
 		7D3784AE183A9906009EE944 /* VLCDropboxTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784AC183A9906009EE944 /* VLCDropboxTableViewController.m */; };
-		7D3784B1183A990F009EE944 /* VLCCloudStorageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */; };
 		7D3784BE183A9938009EE944 /* UIBarButtonItem+Theme.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B3183A9938009EE944 /* UIBarButtonItem+Theme.m */; };
 		7D3784BF183A9938009EE944 /* UINavigationController+Theme.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B5183A9938009EE944 /* UINavigationController+Theme.m */; };
 		7D3784C0183A9938009EE944 /* VLCLinearProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B7183A9938009EE944 /* VLCLinearProgressIndicator.m */; };
@@ -226,12 +225,11 @@
 		7DBBF19A183AB4300009A339 /* VLCCloudStorageTableViewCell~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF185183AB4300009A339 /* VLCCloudStorageTableViewCell~ipad.xib */; };
 		7DBBF19B183AB4300009A339 /* VLCCloudStorageTableViewCell~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF186183AB4300009A339 /* VLCCloudStorageTableViewCell~iphone.xib */; };
 		7DBBF19C183AB4300009A339 /* VLCDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF187183AB4300009A339 /* VLCDownloadViewController.xib */; };
-		7DBBF19D183AB4300009A339 /* VLCDropboxTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF188183AB4300009A339 /* VLCDropboxTableViewController.xib */; };
+		7DBBF19D183AB4300009A339 /* VLCCloudStorageTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF188183AB4300009A339 /* VLCCloudStorageTableViewController.xib */; };
 		7DBBF19E183AB4300009A339 /* VLCEmptyLibraryView~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF189183AB4300009A339 /* VLCEmptyLibraryView~ipad.xib */; };
 		7DBBF19F183AB4300009A339 /* VLCEmptyLibraryView~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18A183AB4300009A339 /* VLCEmptyLibraryView~iphone.xib */; };
 		7DBBF1A0183AB4300009A339 /* VLCFuturePlaylistCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18B183AB4300009A339 /* VLCFuturePlaylistCollectionViewCell.xib */; };
 		7DBBF1A1183AB4300009A339 /* VLCFuturePlaylistTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18C183AB4300009A339 /* VLCFuturePlaylistTableViewCell.xib */; };
-		7DBBF1A2183AB4300009A339 /* VLCGoogleDriveTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18D183AB4300009A339 /* VLCGoogleDriveTableViewController.xib */; };
 		7DBBF1A3183AB4300009A339 /* VLCLocalNetworkListCell~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18E183AB4300009A339 /* VLCLocalNetworkListCell~ipad.xib */; };
 		7DBBF1A4183AB4300009A339 /* VLCLocalNetworkListCell~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF18F183AB4300009A339 /* VLCLocalNetworkListCell~iphone.xib */; };
 		7DBBF1A5183AB4300009A339 /* VLCMovieViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF190183AB4300009A339 /* VLCMovieViewController~ipad.xib */; };
@@ -281,8 +279,10 @@
 		7DF1166D176CC69A009EC05C /* volumeballslider@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF1166B176CC69A009EC05C /* volumeballslider@2x.png */; };
 		7DF7CA0717650C2A00C61739 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DF7CA0617650C2A00C61739 /* AVFoundation.framework */; };
 		7DF7E791175F47DC0018858D /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DF7E790175F47DC0018858D /* MediaPlayer.framework */; };
+		9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */; };
 		9B2E0CF417FB71E90098E3DF /* libGTLTouchStaticLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9B2E0CF317FB71E80098E3DF /* libGTLTouchStaticLib.a */; };
 		9B5BEF2917FBAEA50016F9CB /* GTLDrive_Sources.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */; };
+		9BE4D1CE183D76950006346C /* VLCCloudStorageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */; };
 		A7035BBE174519600057DFA7 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = A7035BBD174519600057DFA7 /* iTunesArtwork */; };
 		A7924696170F0BA90036AAF2 /* libMediaLibraryKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A7924695170F0BA90036AAF2 /* libMediaLibraryKit.a */; };
 		A79246A7170F0ED20036AAF2 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A7924698170F0ED20036AAF2 /* Default-568h@2x.png */; };
@@ -696,12 +696,11 @@
 		7DBBF185183AB4300009A339 /* VLCCloudStorageTableViewCell~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCCloudStorageTableViewCell~ipad.xib"; path = "Resources/VLCCloudStorageTableViewCell~ipad.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF186183AB4300009A339 /* VLCCloudStorageTableViewCell~iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCCloudStorageTableViewCell~iphone.xib"; path = "Resources/VLCCloudStorageTableViewCell~iphone.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF187183AB4300009A339 /* VLCDownloadViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCDownloadViewController.xib; path = Resources/VLCDownloadViewController.xib; sourceTree = SOURCE_ROOT; };
-		7DBBF188183AB4300009A339 /* VLCDropboxTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCDropboxTableViewController.xib; path = Resources/VLCDropboxTableViewController.xib; sourceTree = SOURCE_ROOT; };
+		7DBBF188183AB4300009A339 /* VLCCloudStorageTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCCloudStorageTableViewController.xib; path = Resources/VLCCloudStorageTableViewController.xib; sourceTree = SOURCE_ROOT; };
 		7DBBF189183AB4300009A339 /* VLCEmptyLibraryView~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCEmptyLibraryView~ipad.xib"; path = "Resources/VLCEmptyLibraryView~ipad.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF18A183AB4300009A339 /* VLCEmptyLibraryView~iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCEmptyLibraryView~iphone.xib"; path = "Resources/VLCEmptyLibraryView~iphone.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF18B183AB4300009A339 /* VLCFuturePlaylistCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFuturePlaylistCollectionViewCell.xib; path = Resources/VLCFuturePlaylistCollectionViewCell.xib; sourceTree = SOURCE_ROOT; };
 		7DBBF18C183AB4300009A339 /* VLCFuturePlaylistTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFuturePlaylistTableViewCell.xib; path = Resources/VLCFuturePlaylistTableViewCell.xib; sourceTree = SOURCE_ROOT; };
-		7DBBF18D183AB4300009A339 /* VLCGoogleDriveTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCGoogleDriveTableViewController.xib; path = Resources/VLCGoogleDriveTableViewController.xib; sourceTree = SOURCE_ROOT; };
 		7DBBF18E183AB4300009A339 /* VLCLocalNetworkListCell~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCLocalNetworkListCell~ipad.xib"; path = "Resources/VLCLocalNetworkListCell~ipad.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF18F183AB4300009A339 /* VLCLocalNetworkListCell~iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCLocalNetworkListCell~iphone.xib"; path = "Resources/VLCLocalNetworkListCell~iphone.xib"; sourceTree = SOURCE_ROOT; };
 		7DBBF190183AB4300009A339 /* VLCMovieViewController~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "VLCMovieViewController~ipad.xib"; path = "Resources/VLCMovieViewController~ipad.xib"; sourceTree = SOURCE_ROOT; };
@@ -780,6 +779,8 @@
 		7DF1166B176CC69A009EC05C /* volumeballslider@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "volumeballslider@2x.png"; sourceTree = "<group>"; };
 		7DF7CA0617650C2A00C61739 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
 		7DF7E790175F47DC0018858D /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; };
+		9B088306183D7BEC004B5C2A /* VLCCloudStorageTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCCloudStorageTableViewController.h; path = Sources/VLCCloudStorageTableViewController.h; sourceTree = SOURCE_ROOT; };
+		9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCCloudStorageTableViewController.m; path = Sources/VLCCloudStorageTableViewController.m; sourceTree = SOURCE_ROOT; };
 		9B2E0CF317FB71E80098E3DF /* libGTLTouchStaticLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGTLTouchStaticLib.a; path = "../google-api/Source/build/Debug-iphoneos/libGTLTouchStaticLib.a"; sourceTree = "<group>"; };
 		9B5BEF2717FBAEA50016F9CB /* GTLDrive_Sources.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GTLDrive_Sources.m; path = ImportedSources/GDrive/Services/Drive/Generated/GTLDrive_Sources.m; sourceTree = SOURCE_ROOT; };
 		9B5BEF2817FBAEA50016F9CB /* GTLDrive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GTLDrive.h; path = ImportedSources/GDrive/Services/Drive/Generated/GTLDrive.h; sourceTree = SOURCE_ROOT; };
@@ -1286,6 +1287,8 @@
 				7D3784AC183A9906009EE944 /* VLCDropboxTableViewController.m */,
 				7D3784AF183A990F009EE944 /* VLCCloudStorageTableViewCell.h */,
 				7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */,
+				9B088306183D7BEC004B5C2A /* VLCCloudStorageTableViewController.h */,
+				9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */,
 			);
 			name = "Dropbox Integration";
 			sourceTree = "<group>";
@@ -1507,12 +1510,11 @@
 				7DBBF185183AB4300009A339 /* VLCCloudStorageTableViewCell~ipad.xib */,
 				7DBBF186183AB4300009A339 /* VLCCloudStorageTableViewCell~iphone.xib */,
 				7DBBF187183AB4300009A339 /* VLCDownloadViewController.xib */,
-				7DBBF188183AB4300009A339 /* VLCDropboxTableViewController.xib */,
+				7DBBF188183AB4300009A339 /* VLCCloudStorageTableViewController.xib */,
 				7DBBF189183AB4300009A339 /* VLCEmptyLibraryView~ipad.xib */,
 				7DBBF18A183AB4300009A339 /* VLCEmptyLibraryView~iphone.xib */,
 				7DBBF18B183AB4300009A339 /* VLCFuturePlaylistCollectionViewCell.xib */,
 				7DBBF18C183AB4300009A339 /* VLCFuturePlaylistTableViewCell.xib */,
-				7DBBF18D183AB4300009A339 /* VLCGoogleDriveTableViewController.xib */,
 				7DBBF18E183AB4300009A339 /* VLCLocalNetworkListCell~ipad.xib */,
 				7DBBF18F183AB4300009A339 /* VLCLocalNetworkListCell~iphone.xib */,
 				7DBBF190183AB4300009A339 /* VLCMovieViewController~ipad.xib */,
@@ -1923,7 +1925,6 @@
 				7D07F731175691CC00CDE21C /* backButtonHighlight@2x.png in Resources */,
 				7D5DD5C717590ABF001421E3 /* About Contents.html in Resources */,
 				7DE18629175BA9A5006C0173 /* badgeUnread@2x~ipad.png in Resources */,
-				7DBBF1A2183AB4300009A339 /* VLCGoogleDriveTableViewController.xib in Resources */,
 				7DE1862C175BA9A9006C0173 /* badgeUnread@2x~iphone.png in Resources */,
 				7DE1862F175BA9AC006C0173 /* badgeUnread~ipad.png in Resources */,
 				7DBBF19B183AB4300009A339 /* VLCCloudStorageTableViewCell~iphone.xib in Resources */,
@@ -1966,7 +1967,7 @@
 				7D47D7201760CD8700E86BAD /* ballSlider.png in Resources */,
 				7D223E1A181EC56E00B36798 /* gradient-cell-ios7-ipad.png in Resources */,
 				7D47D7211760CD8700E86BAD /* ballSlider@2x.png in Resources */,
-				7DBBF19D183AB4300009A339 /* VLCDropboxTableViewController.xib in Resources */,
+				7DBBF19D183AB4300009A339 /* VLCCloudStorageTableViewController.xib in Resources */,
 				7D47D7271760D77C00E86BAD /* pauseIcon.png in Resources */,
 				7D47D7281760D77C00E86BAD /* pauseIcon@2x.png in Resources */,
 				7D47D72B1760E3A000E86BAD /* sliderminimumTrack.png in Resources */,
@@ -2077,6 +2078,7 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				9BE4D1CE183D76950006346C /* VLCCloudStorageTableViewCell.m in Sources */,
 				7DADC55F1704FABF001DAC63 /* OBSlider.m in Sources */,
 				2915540117490A1E00B86CAD /* DDData.m in Sources */,
 				2915540217490A1E00B86CAD /* DDNumber.m in Sources */,
@@ -2131,7 +2133,6 @@
 				7D3784A7183A98F5009EE944 /* VLCSettingsController.m in Sources */,
 				7D3784AD183A9906009EE944 /* VLCDropboxController.m in Sources */,
 				7D3784AE183A9906009EE944 /* VLCDropboxTableViewController.m in Sources */,
-				7D3784B1183A990F009EE944 /* VLCCloudStorageTableViewCell.m in Sources */,
 				7D3784BE183A9938009EE944 /* UIBarButtonItem+Theme.m in Sources */,
 				7D3784BF183A9938009EE944 /* UINavigationController+Theme.m in Sources */,
 				7DBBF182183AB3B80009A339 /* VLCAppDelegate.m in Sources */,
@@ -2158,6 +2159,7 @@
 				7D30F3DF183AB31E00FFC021 /* VLCWiFiUploadTableViewCell.m in Sources */,
 				7D30F3E2183AB33200FFC021 /* VLCSidebarViewCell.m in Sources */,
 				7D30F3EA183AB34200FFC021 /* VLCGoogleDriveController.m in Sources */,
+				9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */,
 				7D30F3EC183AB34200FFC021 /* VLCGoogleDriveTableViewController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;