Browse Source

Add OneDrive skeleton

Felix Paul Kühne 10 years ago
parent
commit
3192338cac

+ 8 - 3
Resources/VLCCloudStorageTableViewCell~ipad.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
     <dependencies>
-        <deployment defaultVersion="1552" identifier="iOS"/>
+        <deployment identifier="iOS"/>
         <development version="5000" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@@ -74,4 +74,9 @@
     <resources>
         <image name="download.png" width="32" height="32"/>
     </resources>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
 </document>

+ 9 - 4
Resources/VLCCloudStorageTableViewCell~iphone.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
     <dependencies>
-        <deployment defaultVersion="1552" identifier="iOS"/>
+        <deployment identifier="iOS"/>
         <development version="5000" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@@ -36,7 +36,7 @@
                         <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                     </label>
                     <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Subtitle — Subtitle" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="7">
-                        <rect key="frame" x="45" y="25" width="230" height="15"/>
+                        <rect key="frame" x="45" y="25.5" width="230" height="15"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                         <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
                         <fontDescription key="fontDescription" type="system" pointSize="12"/>
@@ -74,4 +74,9 @@
     <resources>
         <image name="download.png" width="32" height="32"/>
     </resources>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
 </document>

+ 8 - 3
Resources/VLCCloudStorageTableViewController.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6254" systemVersion="14B25" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
     <dependencies>
-        <deployment defaultVersion="1552" identifier="iOS"/>
+        <deployment identifier="iOS"/>
         <development version="5000" identifier="xcode"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCCloudStorageTableViewController">
@@ -78,4 +78,9 @@
         <image name="dropbox-white.png" width="125" height="42"/>
         <image name="menuButton.png" width="63" height="39"/>
     </resources>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
 </document>

+ 2 - 0
Sources/VLCAppDelegate.h

@@ -16,6 +16,7 @@
 
 #import "VLCDropboxTableViewController.h"
 #import "VLCGoogleDriveTableViewController.h"
+#import "VLCOneDriveTableViewController.h"
 #import "VLCHTTPUploaderController.h"
 #import "GHRevealViewController.h"
 #import "VLCMenuTableViewController.h"
@@ -45,6 +46,7 @@
 @property (nonatomic, readonly) VLCPlaylistViewController *playlistViewController;
 @property (nonatomic, readonly) VLCDropboxTableViewController *dropboxTableViewController;
 @property (nonatomic, readonly) VLCGoogleDriveTableViewController *googleDriveTableViewController;
+@property (nonatomic, readonly) VLCOneDriveTableViewController *oneDriveTableViewController;
 @property (nonatomic, readonly) VLCDownloadViewController *downloadViewController;
 @property (nonatomic, readonly) VLCDocumentPickerController *documentPickerController;
 

+ 8 - 0
Sources/VLCAppDelegate.m

@@ -34,6 +34,7 @@
     PAPasscodeViewController *_passcodeLockController;
     VLCDropboxTableViewController *_dropboxTableViewController;
     VLCGoogleDriveTableViewController *_googleDriveTableViewController;
+    VLCOneDriveTableViewController *_oneDriveTableViewController;
     VLCDownloadViewController *_downloadViewController;
     VLCDocumentPickerController *_documentPickerController;
     int _idleCounter;
@@ -249,6 +250,13 @@
     return _googleDriveTableViewController;
 }
 
+- (VLCOneDriveTableViewController *)oneDriveTableViewController
+{
+    if (_oneDriveTableViewController == nil)
+        _oneDriveTableViewController = [[VLCOneDriveTableViewController alloc] initWithNibName:@"VLCCloudStorageTableViewController" bundle:nil];
+
+    return _oneDriveTableViewController;
+}
 
 - (VLCDownloadViewController *)downloadViewController
 {

+ 3 - 1
Sources/VLCMenuTableViewController.m

@@ -70,7 +70,7 @@
 
     _sectionHeaderTexts = @[@"SECTION_HEADER_LIBRARY", @"SECTION_HEADER_NETWORK", @"Settings"];
     _menuItemsSectionOne = @[@"LIBRARY_ALL_FILES", @"LIBRARY_MUSIC", @"LIBRARY_SERIES"];
-    _menuItemsSectionTwo = @[@"LOCAL_NETWORK", @"OPEN_NETWORK", @"DOWNLOAD_FROM_HTTP", @"WEBINTF_TITLE", @"Dropbox", @"Google Drive"];
+    _menuItemsSectionTwo = @[@"LOCAL_NETWORK", @"OPEN_NETWORK", @"DOWNLOAD_FROM_HTTP", @"WEBINTF_TITLE", @"Dropbox", @"Google Drive", @"OneDrive"];
     if ([UIDocumentPickerViewController class]) { // on iOS 8+ add document picker option
         NSMutableArray* expanded = [_menuItemsSectionTwo mutableCopy];
         [expanded addObject:@"CLOUD_DRIVES"];
@@ -332,6 +332,8 @@
             viewController = self.appDelegate.dropboxTableViewController;
         else if (itemIndex == 5)
             viewController = self.appDelegate.googleDriveTableViewController;
+        else if (itemIndex == 6)
+            viewController = self.appDelegate.oneDriveTableViewController;
     } else if (sectionNumber == 2) {
         if (itemIndex == 0) {
             if (!self.settingsController)

+ 13 - 0
Sources/VLCOneDriveConstants.h

@@ -0,0 +1,13 @@
+/*****************************************************************************
+ * VLCDropboxConstants.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2014 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#define kVLCOneDriveClientID @"000000004808C307"

+ 32 - 0
Sources/VLCOneDriveController.h

@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * VLCOneDriveController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2014 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 "VLCOneDriveTableViewController.h"
+
+@protocol VLCOneDriveControllerDelegate <NSObject>
+
+@end
+
+@interface VLCOneDriveController : NSObject
+
+@property (nonatomic, weak) VLCOneDriveTableViewController *delegate;
+
++ (VLCOneDriveController *)sharedInstance;
+
+- (void)login;
+- (void)logout;
+
+- (void)requestDirectoryListingAtPath:(NSString *)path;
+- (void)downloadFileWithPath:(NSString *)path;
+- (void)streamFileWithPath:(NSString *)path;
+
+@end

+ 115 - 0
Sources/VLCOneDriveController.m

@@ -0,0 +1,115 @@
+/*****************************************************************************
+ * VLCOneDriveController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2014 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 "VLCOneDriveController.h"
+#import "VLCOneDriveConstants.h"
+
+/* the Live SDK doesn't have an umbrella header so we need to import what we need */
+#import <LiveSDK/LiveConnectClient.h>
+
+/* include private API headers */
+#import <LiveSDK/LiveApiHelper.h>
+
+@interface VLCOneDriveController () <LiveAuthDelegate, LiveDownloadOperationDelegate, LiveOperationDelegate>
+{
+    LiveConnectClient *_liveClient;
+    NSArray *_liveScopes;
+}
+
+@end
+
+@implementation VLCOneDriveController
+
++ (VLCOneDriveController *)sharedInstance
+{
+    static VLCOneDriveController *sharedInstance = nil;
+    static dispatch_once_t pred;
+
+    dispatch_once(&pred, ^{
+        sharedInstance = [[self alloc] init];
+    });
+
+    return sharedInstance;
+}
+
+- (instancetype)init
+{
+    self = [super init];
+
+    if (!self)
+        return self;
+
+    _liveScopes = @[@"wl.signin",@"wl.basic",@"wl.skydrive"];
+
+    _liveClient = [[LiveConnectClient alloc] initWithClientId:kVLCOneDriveClientID
+                                                        scopes:_liveScopes
+                                                     delegate:self
+                                                    userState:@"init"];
+
+    return self;
+}
+
+#pragma mark - authentication
+
+- (void)login
+{
+    [_liveClient login:self.delegate
+               scopes:_liveScopes
+             delegate:self
+            userState:@"login"];
+}
+
+- (void)logout
+{
+    [_liveClient logoutWithDelegate:self userState:@"logout"];
+}
+
+- (void)authCompleted:(LiveConnectSessionStatus)status session:(LiveConnectSession *)session userState:(id)userState
+{
+}
+
+- (void)authFailed:(NSError *)error userState:(id)userState
+{
+}
+
+#pragma mark - listing
+
+- (void)requestDirectoryListingAtPath:(NSString *)path
+{
+}
+
+- (void)liveOperationSucceeded:(LiveOperation *)operation
+{
+}
+
+- (void)liveOperationFailed:(NSError *)error operation:(LiveOperation *)operation
+{
+}
+
+#pragma mark - file handling
+
+- (void)downloadFileWithPath:(NSString *)path
+{
+}
+
+- (void)liveDownloadOperationProgressed:(LiveOperationProgress *)progress
+                                   data:(NSData *)receivedData
+                              operation:(LiveDownloadOperation *)operation
+{
+}
+
+- (void)streamFileWithPath:(NSString *)path
+{
+}
+
+@end

+ 17 - 0
Sources/VLCOneDriveTableViewController.h

@@ -0,0 +1,17 @@
+/*****************************************************************************
+ * VLCOneDriveTableViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2014 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 "VLCCloudStorageTableViewController.h"
+
+@interface VLCOneDriveTableViewController : VLCCloudStorageTableViewController
+
+@end

+ 110 - 0
Sources/VLCOneDriveTableViewController.m

@@ -0,0 +1,110 @@
+/*****************************************************************************
+ * VLCOneDriveTableViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2014 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 "VLCOneDriveTableViewController.h"
+#import "VLCOneDriveController.h"
+#import "UIBarButtonItem+Theme.h"
+#import "VLCCloudStorageTableViewCell.h"
+#import "VLCAppDelegate.h"
+#import "VLCOneDriveController.h"
+
+@interface VLCOneDriveTableViewController () <UITableViewDataSource, UITableViewDelegate>
+{
+    UIBarButtonItem *_backButton;
+    UIBarButtonItem *_backToMenuButton;
+
+    UIActivityIndicatorView *_activityIndicator;
+
+    VLCOneDriveController *_oneDriveController;
+}
+@end
+
+@implementation VLCOneDriveTableViewController
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+
+    _oneDriveController = [VLCOneDriveController sharedInstance];
+
+    self.modalPresentationStyle = UIModalPresentationFormSheet;
+
+    self.navigationItem.title = @"OneDrive";
+
+    _backButton = [UIBarButtonItem themedBackButtonWithTarget:self andSelector:@selector(goBack:)];
+    _backToMenuButton = [UIBarButtonItem themedBackButtonWithTarget:self andSelector:@selector(goBack:)];
+    self.navigationItem.leftBarButtonItem = _backToMenuButton;
+
+    self.tableView.rowHeight = [VLCCloudStorageTableViewCell heightOfCell];
+    self.tableView.separatorColor = [UIColor VLCDarkBackgroundColor];
+    self.view.backgroundColor = [UIColor VLCDarkBackgroundColor];
+
+    self.cloudStorageLogo = nil;
+    if (!SYSTEM_RUNS_IOS7_OR_LATER) {
+        self.flatLoginButton.hidden = YES;
+        [self.loginButton setTitle:NSLocalizedString(@"ONEDRIVE_LOGIN", nil) forState:UIControlStateNormal];
+    } else {
+        self.loginButton.hidden = YES;
+        [self.flatLoginButton setTitle:NSLocalizedString(@"ONEDRIVE_LOGIN", nil) forState:UIControlStateNormal];
+    }
+
+    _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)viewWillAppear:(BOOL)animated
+{
+    [super viewWillAppear:animated];
+
+    // FIXME: we should update the listing...
+
+    [self.cloudStorageLogo sizeToFit];
+    self.cloudStorageLogo.center = self.view.center;
+}
+
+#pragma mark - generic interface interaction
+
+- (IBAction)goBack:(id)sender
+{
+    [[(VLCAppDelegate*)[UIApplication sharedApplication].delegate revealController] toggleSidebar:![(VLCAppDelegate*)[UIApplication sharedApplication].delegate revealController].sidebarShowing duration:kGHRevealSidebarDefaultAnimationDuration];
+}
+
+#pragma mark - table view delegate
+
+- (void)tableView:(UITableView *)tableView
+  willDisplayCell:(UITableViewCell *)cell
+forRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    cell.backgroundColor = (indexPath.row % 2 == 0)? [UIColor blackColor]: [UIColor VLCDarkBackgroundColor];
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+}
+
+#pragma mark - login dialog
+- (void)_showLoginDialog
+{
+    self.loginToCloudStorageView.frame = self.tableView.frame;
+    [self.view addSubview:self.loginToCloudStorageView];
+}
+
+- (void)loginAction:(id)sender
+{
+    [_oneDriveController login];
+}
+
+@end

+ 26 - 1
VLC for iOS.xcodeproj/project.pbxproj

@@ -102,6 +102,8 @@
 		7D07F730175691CC00CDE21C /* backButtonHighlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D07F72C175691CC00CDE21C /* backButtonHighlight.png */; };
 		7D07F731175691CC00CDE21C /* backButtonHighlight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D07F72D175691CC00CDE21C /* backButtonHighlight@2x.png */; };
 		7D1052E61A4DC5FF00295F08 /* LiveSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D1052E51A4DC5FF00295F08 /* LiveSDK.framework */; };
+		7D1052E91A4DCC1100295F08 /* VLCOneDriveTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1052E81A4DCC1100295F08 /* VLCOneDriveTableViewController.m */; };
+		7D1052EE1A4DCD1E00295F08 /* VLCOneDriveController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1052ED1A4DCD1E00295F08 /* VLCOneDriveController.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 */; };
@@ -609,7 +611,12 @@
 		7D07F72B175691CC00CDE21C /* backButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "backButton@2x.png"; sourceTree = "<group>"; };
 		7D07F72C175691CC00CDE21C /* backButtonHighlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = backButtonHighlight.png; sourceTree = "<group>"; };
 		7D07F72D175691CC00CDE21C /* backButtonHighlight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "backButtonHighlight@2x.png"; sourceTree = "<group>"; };
-		7D1052E51A4DC5FF00295F08 /* LiveSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LiveSDK.framework; path = "External/OneDrive/LiveSDK.framework"; sourceTree = "<group>"; };
+		7D1052E51A4DC5FF00295F08 /* LiveSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LiveSDK.framework; path = External/OneDrive/LiveSDK.framework; 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; };
+		7D1052EB1A4DCC4B00295F08 /* VLCOneDriveConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = VLCOneDriveConstants.h; path = Sources/VLCOneDriveConstants.h; sourceTree = SOURCE_ROOT; };
+		7D1052EC1A4DCD1E00295F08 /* VLCOneDriveController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCOneDriveController.h; path = Sources/VLCOneDriveController.h; sourceTree = SOURCE_ROOT; };
+		7D1052ED1A4DCD1E00295F08 /* VLCOneDriveController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCOneDriveController.m; path = Sources/VLCOneDriveController.m; sourceTree = SOURCE_ROOT; };
 		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; };
@@ -1552,6 +1559,18 @@
 			name = Pods;
 			sourceTree = "<group>";
 		};
+		7D1052EA1A4DCC1700295F08 /* OneDrive */ = {
+			isa = PBXGroup;
+			children = (
+				7D1052EB1A4DCC4B00295F08 /* VLCOneDriveConstants.h */,
+				7D1052E71A4DCC1100295F08 /* VLCOneDriveTableViewController.h */,
+				7D1052E81A4DCC1100295F08 /* VLCOneDriveTableViewController.m */,
+				7D1052EC1A4DCD1E00295F08 /* VLCOneDriveController.h */,
+				7D1052ED1A4DCD1E00295F08 /* VLCOneDriveController.m */,
+			);
+			name = OneDrive;
+			sourceTree = "<group>";
+		};
 		7D10BC651743F9A100DA7059 /* External Playback */ = {
 			isa = PBXGroup;
 			children = (
@@ -1828,6 +1847,7 @@
 				E0C04F921A25B41C0080331A /* Document Picker */,
 				9B51719A17EDEC8900F8FBA7 /* GoogleDrive */,
 				7DFB1567185CC38A008D49BB /* Dropbox */,
+				7D1052EA1A4DCC1700295F08 /* OneDrive */,
 				7D3784AF183A990F009EE944 /* VLCCloudStorageTableViewCell.h */,
 				7D3784B0183A990F009EE944 /* VLCCloudStorageTableViewCell.m */,
 				9B088306183D7BEC004B5C2A /* VLCCloudStorageTableViewController.h */,
@@ -3143,8 +3163,10 @@
 				7D30F3D0183AB2AC00FFC021 /* VLCMediaFileDiscoverer.m in Sources */,
 				493B1A1D195D06B1000A491A /* BasicUPnPDevice+VLC.m in Sources */,
 				265D511D1922746C00E38383 /* VLCPlexParser.m in Sources */,
+				7D1052E91A4DCC1100295F08 /* VLCOneDriveTableViewController.m in Sources */,
 				7D30F3D7183AB2F100FFC021 /* VLCLocalNetworkListCell.m in Sources */,
 				265D511C1922746C00E38383 /* VLCLocalPlexFolderListViewController.m in Sources */,
+				7D1052EE1A4DCD1E00295F08 /* VLCOneDriveController.m in Sources */,
 				7D30F3D8183AB2F100FFC021 /* VLCLocalServerFolderListViewController.m in Sources */,
 				7D30F3D9183AB2F100FFC021 /* VLCLocalServerListViewController.m in Sources */,
 				7D30F3DC183AB2F900FFC021 /* VLCNetworkLoginViewController.m in Sources */,
@@ -3473,6 +3495,7 @@
 					"$(SRCROOT)/External/MobileVLCKit/include",
 					"$(SRCROOT)/External/MediaLibraryKit/include",
 					"$(SRCROOT)/ImportedSources/GDrive/**",
+					"\"$(SRCROOT)/ImportedSources/OneDrive/src/LiveSDK/Library\"/**",
 					"$(inherited)",
 				);
 				INFOPLIST_FILE = "Sources/VLC for iOS-Info.plist";
@@ -3526,6 +3549,7 @@
 					"$(SRCROOT)/External/MobileVLCKit/include",
 					"$(SRCROOT)/External/MediaLibraryKit/include",
 					"$(SRCROOT)/ImportedSources/GDrive/**",
+					"\"$(SRCROOT)/ImportedSources/OneDrive/src/LiveSDK/Library\"/**",
 					"$(inherited)",
 				);
 				INFOPLIST_FILE = "Sources/VLC for iOS-Info.plist";
@@ -3605,6 +3629,7 @@
 					"$(SRCROOT)/External/MobileVLCKit/include",
 					"$(SRCROOT)/External/MediaLibraryKit/include",
 					"$(SRCROOT)/ImportedSources/GDrive/**",
+					"\"$(SRCROOT)/ImportedSources/OneDrive/src/LiveSDK/Library\"/**",
 					"$(inherited)",
 				);
 				INFOPLIST_FILE = "Sources/VLC for iOS-Info.plist";