Commit 0cb9384b authored by Felix Paul Kühne's avatar Felix Paul Kühne

Watch extension: translate extension delegate from swift 2 to ObjC

This way, we can link MLKit without turning it to a framework, we dramatically improve the storage footprint on the watch and launch time
parent e28db8c7
Pipeline #42 failed with stage
in 1 minute and 37 seconds
/*****************************************************************************
* ExtensionDelegate.swift
* VLC for iOS
*****************************************************************************
* Copyright (c) 2015 VideoLAN. All rights reserved.
* $Id$
*
* Authors: Tobias Conradi <videolan # tobias-conradi.de>
*
* Refer to the COPYING file of the official project for license.
*****************************************************************************/
import WatchKit
import WatchConnectivity
import CoreData
import MediaLibraryKit
class ExtensionDelegate: NSObject, WKExtensionDelegate, WCSessionDelegate, NSFileManagerDelegate {
func applicationDidFinishLaunching() {
// Perform any final initialization of your application.
let additionalOptions = [NSReadOnlyPersistentStoreOption : NSNumber(bool: true)]
let library = MLMediaLibrary.sharedMediaLibrary() as! MLMediaLibrary
library.additionalPersitentStoreOptions = additionalOptions
WCSession.defaultSession().delegate = self;
WCSession.defaultSession().activateSession()
}
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
let msg = VLCWatchMessage(dictionary: message)
if msg.name == VLCWatchMessageNameNotification, let payloadDict = msg.payload as? [String : AnyObject] {
if let name = payloadDict["name"] as? String {
handleRemoteNotification(name, userInfo: payloadDict["userInfo"] as? [String : AnyObject])
}
}
}
func handleRemoteNotification(name:String, userInfo: [String: AnyObject]?) {
NSNotificationCenter.defaultCenter().postNotificationName(name, object: self, userInfo: userInfo)
}
func session(session: WCSession, didReceiveFile file: WCSessionFile) {
let fileType = file.metadata?["filetype"] as? String ?? ""
switch (fileType) {
case "coredata":
dispatch_sync(dispatch_get_main_queue())
{
self.copyUpdatedCoreDataDBFromURL(file.fileURL)
}
case "thumbnail":
if let data = NSData(contentsOfURL: file.fileURL),
let image = UIImage(data: data),
let URIRepresentation = file.metadata?["URIRepresentation"] as? String,
let objectIDURL = NSURL(string: URIRepresentation) {
setImage(image, forObjectIDURL: objectIDURL)
}
default:
NSLog("unandled file with meta data \(file.metadata)")
}
}
func copyUpdatedCoreDataDBFromURL(url:NSURL) {
let library = MLMediaLibrary.sharedMediaLibrary() as! MLMediaLibrary
library.overrideLibraryWithLibraryFromURL(url)
NSNotificationCenter.defaultCenter().postNotificationName(VLCDBUpdateNotification, object: self)
}
func setImage(image: UIImage, forObjectIDURL objectIDURL: NSURL) {
let library = MLMediaLibrary.sharedMediaLibrary()
if let file = library.objectForURIRepresentation(objectIDURL) as? MLFile {
file.managedObjectContext?.performBlock({ () -> Void in
file.computedThumbnail = image
})
}
}
}
/*****************************************************************************
* VLCExtensionDelegate.h
* VLC for iOS
*****************************************************************************
* Copyright (c) 2015-2016 VideoLAN. All rights reserved.
* $Id$
*
* Authors: Tobias Conradi <videolan # tobias-conradi.de>
* Felix Paul Kühne <fkuehne # videolan.org>
*
* Refer to the COPYING file of the official project for license.
*****************************************************************************/
#import <WatchKit/WatchKit.h>
@interface VLCExtensionDelegate : NSObject <WKExtensionDelegate>
@end
/*****************************************************************************
* VLCExtensionDelegate.m
* VLC for iOS
*****************************************************************************
* Copyright (c) 2015-2016 VideoLAN. All rights reserved.
* $Id$
*
* Authors: Tobias Conradi <videolan # tobias-conradi.de>
* Felix Paul Kühne <fkuehne # videolan.org>
*
* Refer to the COPYING file of the official project for license.
*****************************************************************************/
#import "VLCExtensionDelegate.h"
#import <WatchConnectivity/WatchConnectivity.h>
#import <CoreData/CoreData.h>
#import <MediaLibraryKit/MediaLibraryKit.h>
#import "VLCWatchMessage.h"
#import "VLCBaseInterfaceController.h"
@interface VLCExtensionDelegate() <NSFileManagerDelegate, WCSessionDelegate>
@end
@implementation VLCExtensionDelegate
- (void)applicationDidFinishLaunching
{
MLMediaLibrary *library = [MLMediaLibrary sharedMediaLibrary];
library.additionalPersitentStoreOptions = @{ NSReadOnlyPersistentStoreOption : @(YES) };
WCSession *wcsession = [WCSession defaultSession];
wcsession.delegate = self;
[wcsession activateSession];
}
- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message
{
VLCWatchMessage *msg = [[VLCWatchMessage alloc] initWithDictionary:message];
if ([msg.name isEqualToString: VLCWatchMessageNameNotification]) {
NSDictionary *payloadDict = (NSDictionary *)msg.payload;
NSString *name = payloadDict[@"name"];
if (name) {
[[NSNotificationCenter defaultCenter] postNotificationName:name
object:self
userInfo:payloadDict[@"userInfo"]];
}
}
}
- (void)session:(WCSession *)session didReceiveFile:(WCSessionFile *)file
{
NSString *fileType = file.metadata[@"filetype"];
if ([fileType isEqualToString:@"coredata"]) {
dispatch_sync(dispatch_get_main_queue(), ^{
[self copyUpdatedCoreDataDBFromURL:file.fileURL];
});
}
if ([fileType isEqualToString:@"thumbnail"]) {
[self copyThumbnailToDatabase:file];
}
}
- (void)copyUpdatedCoreDataDBFromURL:(NSURL *)url
{
MLMediaLibrary *library = [MLMediaLibrary sharedMediaLibrary];
[library overrideLibraryWithLibraryFromURL:url];
[[NSNotificationCenter defaultCenter] postNotificationName:VLCDBUpdateNotification
object:self];
}
- (void)copyThumbnailToDatabase:(WCSessionFile *)file
{
NSData *data = [NSData dataWithContentsOfURL:file.fileURL];
if (!data) {
return;
}
UIImage *image = [UIImage imageWithData:data];
if (!image) {
return;
}
NSString *uriRepresentation = file.metadata[@"URIRepresentation"];
NSURL *objectIDURL = [NSURL URLWithString:uriRepresentation];
if (objectIDURL) {
MLMediaLibrary *library = [MLMediaLibrary sharedMediaLibrary];
MLFile *file = (MLFile *)[library objectForURIRepresentation:objectIDURL];
file.computedThumbnail = image;
}
}
@end
...@@ -37,6 +37,6 @@ ...@@ -37,6 +37,6 @@
<key>RemoteInterfacePrincipalClass</key> <key>RemoteInterfacePrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).InterfaceController</string> <string>$(PRODUCT_MODULE_NAME).InterfaceController</string>
<key>WKExtensionDelegateClassName</key> <key>WKExtensionDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).ExtensionDelegate</string> <string>VLCExtensionDelegate</string>
</dict> </dict>
</plist> </plist>
...@@ -464,6 +464,7 @@ ...@@ -464,6 +464,7 @@
7D787FE71D40FDE70003CFA1 /* VLCFirstStepsSixthPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D63C1981877504B00BD5256 /* VLCFirstStepsSixthPageViewController~ipad.xib */; }; 7D787FE71D40FDE70003CFA1 /* VLCFirstStepsSixthPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D63C1981877504B00BD5256 /* VLCFirstStepsSixthPageViewController~ipad.xib */; };
7D787FE81D40FDE70003CFA1 /* web-download-fixed.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF04F491961F2B8004A5429 /* web-download-fixed.png */; }; 7D787FE81D40FDE70003CFA1 /* web-download-fixed.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF04F491961F2B8004A5429 /* web-download-fixed.png */; };
7D787FE91D40FDE70003CFA1 /* VLCDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D89786E185DED88009BAB5D /* VLCDownloadViewController.xib */; }; 7D787FE91D40FDE70003CFA1 /* VLCDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D89786E185DED88009BAB5D /* VLCDownloadViewController.xib */; };
7D7BD28D1D424532000CE8DC /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7BD28C1D424532000CE8DC /* VLCTime.m */; };
7D7EF3DA1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D81BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m */; }; 7D7EF3DA1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D81BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m */; };
7D7EF3DB1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */; }; 7D7EF3DB1BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D7EF3D91BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.xib */; };
7D7EF3DD1BD5779F00CD4CEE /* VLCPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE56C191AD93F9100E8CA00 /* VLCPlaybackController.m */; }; 7D7EF3DD1BD5779F00CD4CEE /* VLCPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE56C191AD93F9100E8CA00 /* VLCPlaybackController.m */; };
...@@ -743,6 +744,7 @@ ...@@ -743,6 +744,7 @@
7DF90B4A1BE7A8110059C0E3 /* IASKSettingsReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF90B471BE7A8110059C0E3 /* IASKSettingsReader.m */; }; 7DF90B4A1BE7A8110059C0E3 /* IASKSettingsReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF90B471BE7A8110059C0E3 /* IASKSettingsReader.m */; };
7DF90B4B1BE7A8110059C0E3 /* IASKSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF90B491BE7A8110059C0E3 /* IASKSpecifier.m */; }; 7DF90B4B1BE7A8110059C0E3 /* IASKSpecifier.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF90B491BE7A8110059C0E3 /* IASKSpecifier.m */; };
7DF9352F1958AB0600E60FD4 /* UIColor+Presets.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF9352E1958AB0600E60FD4 /* UIColor+Presets.m */; }; 7DF9352F1958AB0600E60FD4 /* UIColor+Presets.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DF9352E1958AB0600E60FD4 /* UIColor+Presets.m */; };
7DFFD4071D42436B00A41B0A /* VLCExtensionDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DFFD4061D42436B00A41B0A /* VLCExtensionDelegate.m */; };
8F91EC79195CEC7900F5BCBA /* VLCOpenInActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F91EC78195CEC7900F5BCBA /* VLCOpenInActivity.m */; }; 8F91EC79195CEC7900F5BCBA /* VLCOpenInActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F91EC78195CEC7900F5BCBA /* VLCOpenInActivity.m */; };
8F91EC7F195E1DAB00F5BCBA /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F91EC7E195E1DAB00F5BCBA /* AssetsLibrary.framework */; }; 8F91EC7F195E1DAB00F5BCBA /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F91EC7E195E1DAB00F5BCBA /* AssetsLibrary.framework */; };
9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */; }; 9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B088307183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m */; };
...@@ -752,7 +754,6 @@ ...@@ -752,7 +754,6 @@
9FD8417AA2C6306D76519229 /* libPods-VLC-iOS-no-watch-Debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A3EA27A14A54C78CBB17BC6D /* libPods-VLC-iOS-no-watch-Debug.a */; }; 9FD8417AA2C6306D76519229 /* libPods-VLC-iOS-no-watch-Debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A3EA27A14A54C78CBB17BC6D /* libPods-VLC-iOS-no-watch-Debug.a */; };
A79246C8170F11DF0036AAF2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79246C6170F11DF0036AAF2 /* Localizable.strings */; }; A79246C8170F11DF0036AAF2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A79246C6170F11DF0036AAF2 /* Localizable.strings */; };
C5C027C7696428123B3AB144 /* libPods-VLC-iOS-no-watch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DD533B1D45EEA70099433D8 /* libPods-VLC-iOS-no-watch.a */; }; C5C027C7696428123B3AB144 /* libPods-VLC-iOS-no-watch.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DD533B1D45EEA70099433D8 /* libPods-VLC-iOS-no-watch.a */; };
C7E12487F4C2ADB76385245B /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DEAD87A672248D0A6790405 /* libPods-vlc-ios.a */; };
CC1BBC461704938300A20CBF /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC451704938300A20CBF /* libiconv.dylib */; }; CC1BBC461704938300A20CBF /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC451704938300A20CBF /* libiconv.dylib */; };
CC1BBC4C1704939B00A20CBF /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4B1704939B00A20CBF /* libsqlite3.dylib */; }; CC1BBC4C1704939B00A20CBF /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4B1704939B00A20CBF /* libsqlite3.dylib */; };
CC1BBC4E170493A300A20CBF /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4D170493A300A20CBF /* libbz2.dylib */; }; CC1BBC4E170493A300A20CBF /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4D170493A300A20CBF /* libbz2.dylib */; };
...@@ -784,8 +785,6 @@ ...@@ -784,8 +785,6 @@
DD35678A1B67618F00338947 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD3567891B67618F00338947 /* CoreData.framework */; }; DD35678A1B67618F00338947 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD3567891B67618F00338947 /* CoreData.framework */; };
DD35678C1B67619700338947 /* WatchKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD35678B1B67619700338947 /* WatchKit.framework */; }; DD35678C1B67619700338947 /* WatchKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD35678B1B67619700338947 /* WatchKit.framework */; };
DD3567901B6761CE00338947 /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD35678F1B6761CD00338947 /* WatchConnectivity.framework */; }; DD3567901B6761CE00338947 /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD35678F1B6761CD00338947 /* WatchConnectivity.framework */; };
DD3567B41B67674700338947 /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567B31B67674700338947 /* VLCTime.m */; };
DD3567EF1B6768FC00338947 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD3567D91B6768FC00338947 /* ExtensionDelegate.swift */; };
DD3567F21B6768FC00338947 /* VLCBaseInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */; }; DD3567F21B6768FC00338947 /* VLCBaseInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */; };
DD3567F31B6768FC00338947 /* VLCDetailInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E21B6768FC00338947 /* VLCDetailInterfaceController.m */; }; DD3567F31B6768FC00338947 /* VLCDetailInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E21B6768FC00338947 /* VLCDetailInterfaceController.m */; };
DD3567F51B6768FC00338947 /* VLCNowPlayingInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E61B6768FC00338947 /* VLCNowPlayingInterfaceController.m */; }; DD3567F51B6768FC00338947 /* VLCNowPlayingInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567E61B6768FC00338947 /* VLCNowPlayingInterfaceController.m */; };
...@@ -852,7 +851,6 @@ ...@@ -852,7 +851,6 @@
DD510B701B14E564003BA71C /* VLCPlayerDisplayController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD510B6F1B14E564003BA71C /* VLCPlayerDisplayController.m */; }; DD510B701B14E564003BA71C /* VLCPlayerDisplayController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD510B6F1B14E564003BA71C /* VLCPlayerDisplayController.m */; };
DD7110F01AF38B2B00854776 /* MLMediaLibrary+playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */; }; DD7110F01AF38B2B00854776 /* MLMediaLibrary+playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */; };
DD729EB7E7F949CBECE29930 /* libPods-VLC-tvOS-Debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FB3C4D1992DBF2B53F985CE /* libPods-VLC-tvOS-Debug.a */; }; DD729EB7E7F949CBECE29930 /* libPods-VLC-tvOS-Debug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6FB3C4D1992DBF2B53F985CE /* libPods-VLC-tvOS-Debug.a */; };
DD7BA2641B680C8E002D9F54 /* MediaLibraryKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DD7BA2601B680C1B002D9F54 /* MediaLibraryKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
DD8095D61BE3C3BA0065D8E1 /* VLCTransportBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095D51BE3C3BA0065D8E1 /* VLCTransportBar.m */; }; DD8095D61BE3C3BA0065D8E1 /* VLCTransportBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095D51BE3C3BA0065D8E1 /* VLCTransportBar.m */; };
DD8095DB1BE3C42F0065D8E1 /* VLCBufferingBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095DA1BE3C42F0065D8E1 /* VLCBufferingBar.m */; }; DD8095DB1BE3C42F0065D8E1 /* VLCBufferingBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095DA1BE3C42F0065D8E1 /* VLCBufferingBar.m */; };
DD8095E01BE3EFC20065D8E1 /* VLCPlaybackInfoTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095DE1BE3EFC20065D8E1 /* VLCPlaybackInfoTVViewController.m */; }; DD8095E01BE3EFC20065D8E1 /* VLCPlaybackInfoTVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8095DE1BE3EFC20065D8E1 /* VLCPlaybackInfoTVViewController.m */; };
...@@ -1053,17 +1051,6 @@ ...@@ -1053,17 +1051,6 @@
name = "Embed Watch Content"; name = "Embed Watch Content";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
DD7BA2651B680C8E002D9F54 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
DD7BA2641B680C8E002D9F54 /* MediaLibraryKit.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
...@@ -1333,6 +1320,8 @@ ...@@ -1333,6 +1320,8 @@
7D787F121D40FDD90003CFA1 /* VLC-iOS-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VLC-iOS-Debug-Info.plist"; path = "/Users/fkuehne/Desktop/videolan/gits/ios-unstable/VLC-iOS-Debug-Info.plist"; sourceTree = "<absolute>"; }; 7D787F121D40FDD90003CFA1 /* VLC-iOS-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VLC-iOS-Debug-Info.plist"; path = "/Users/fkuehne/Desktop/videolan/gits/ios-unstable/VLC-iOS-Debug-Info.plist"; sourceTree = "<absolute>"; };
7D787FEE1D40FDE70003CFA1 /* VLC-iOS-no-watch-Debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VLC-iOS-no-watch-Debug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 7D787FEE1D40FDE70003CFA1 /* VLC-iOS-no-watch-Debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VLC-iOS-no-watch-Debug.app"; sourceTree = BUILT_PRODUCTS_DIR; };
7D787FEF1D40FDE70003CFA1 /* VLC-iOS-no-watch-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VLC-iOS-no-watch-Debug-Info.plist"; path = "/Users/fkuehne/Desktop/videolan/gits/ios-unstable/VLC-iOS-no-watch-Debug-Info.plist"; sourceTree = "<absolute>"; }; 7D787FEF1D40FDE70003CFA1 /* VLC-iOS-no-watch-Debug-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VLC-iOS-no-watch-Debug-Info.plist"; path = "/Users/fkuehne/Desktop/videolan/gits/ios-unstable/VLC-iOS-no-watch-Debug-Info.plist"; sourceTree = "<absolute>"; };
7D7BD28B1D424532000CE8DC /* VLCTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCTime.h; sourceTree = "<group>"; };
7D7BD28C1D424532000CE8DC /* VLCTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCTime.m; sourceTree = "<group>"; };
7D7DA52F1768A53200C7E95D /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; lineEnding = 0; name = id; path = id.lproj/Localizable.strings; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; 7D7DA52F1768A53200C7E95D /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; lineEnding = 0; name = id; path = id.lproj/Localizable.strings; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; };
7D7EF3D71BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCOpenNetworkStreamTVViewController.h; sourceTree = "<group>"; }; 7D7EF3D71BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCOpenNetworkStreamTVViewController.h; sourceTree = "<group>"; };
7D7EF3D81BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCOpenNetworkStreamTVViewController.m; sourceTree = "<group>"; }; 7D7EF3D81BD56B5900CD4CEE /* VLCOpenNetworkStreamTVViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCOpenNetworkStreamTVViewController.m; sourceTree = "<group>"; };
...@@ -1475,6 +1464,8 @@ ...@@ -1475,6 +1464,8 @@
7DF90B491BE7A8110059C0E3 /* IASKSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IASKSpecifier.m; path = Pods/InAppSettingsKit/InAppSettingsKit/Models/IASKSpecifier.m; sourceTree = SOURCE_ROOT; }; 7DF90B491BE7A8110059C0E3 /* IASKSpecifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IASKSpecifier.m; path = Pods/InAppSettingsKit/InAppSettingsKit/Models/IASKSpecifier.m; sourceTree = SOURCE_ROOT; };
7DF9352D1958AB0600E60FD4 /* UIColor+Presets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Presets.h"; path = "Sources/UIColor+Presets.h"; sourceTree = SOURCE_ROOT; }; 7DF9352D1958AB0600E60FD4 /* UIColor+Presets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Presets.h"; path = "Sources/UIColor+Presets.h"; sourceTree = SOURCE_ROOT; };
7DF9352E1958AB0600E60FD4 /* UIColor+Presets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Presets.m"; path = "Sources/UIColor+Presets.m"; sourceTree = SOURCE_ROOT; }; 7DF9352E1958AB0600E60FD4 /* UIColor+Presets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Presets.m"; path = "Sources/UIColor+Presets.m"; sourceTree = SOURCE_ROOT; };
7DFFD4051D42436B00A41B0A /* VLCExtensionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCExtensionDelegate.h; sourceTree = "<group>"; };
7DFFD4061D42436B00A41B0A /* VLCExtensionDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCExtensionDelegate.m; sourceTree = "<group>"; };
7F82CE64560C0AD3059DAAFC /* libPods-VLC-watchOS-Extension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-watchOS-Extension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 7F82CE64560C0AD3059DAAFC /* libPods-VLC-watchOS-Extension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-watchOS-Extension.a"; sourceTree = BUILT_PRODUCTS_DIR; };
88E35CB83D336559A656FDA3 /* Pods-VLC-iOS-no-watch.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-iOS-no-watch.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-iOS-no-watch/Pods-VLC-iOS-no-watch.distribution.xcconfig"; sourceTree = "<group>"; }; 88E35CB83D336559A656FDA3 /* Pods-VLC-iOS-no-watch.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-VLC-iOS-no-watch.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-VLC-iOS-no-watch/Pods-VLC-iOS-no-watch.distribution.xcconfig"; sourceTree = "<group>"; };
8939257D0D04F9AFF766DEA5 /* libPods-VLC-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8939257D0D04F9AFF766DEA5 /* libPods-VLC-TV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VLC-TV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -1541,9 +1532,6 @@ ...@@ -1541,9 +1532,6 @@
DD3567891B67618F00338947 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/CoreData.framework; sourceTree = DEVELOPER_DIR; }; DD3567891B67618F00338947 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/CoreData.framework; sourceTree = DEVELOPER_DIR; };
DD35678B1B67619700338947 /* WatchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/WatchKit.framework; sourceTree = DEVELOPER_DIR; }; DD35678B1B67619700338947 /* WatchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchKit.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/WatchKit.framework; sourceTree = DEVELOPER_DIR; };
DD35678F1B6761CD00338947 /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/WatchConnectivity.framework; sourceTree = DEVELOPER_DIR; }; DD35678F1B6761CD00338947 /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS2.0.sdk/System/Library/Frameworks/WatchConnectivity.framework; sourceTree = DEVELOPER_DIR; };
DD3567B31B67674700338947 /* VLCTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTime.m; path = ImportedSources/VLCKit/Sources/VLCTime.m; sourceTree = SOURCE_ROOT; };
DD3567B51B67675400338947 /* VLCTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = VLCTime.h; path = ImportedSources/VLCKit/Headers/Public/VLCTime.h; sourceTree = SOURCE_ROOT; };
DD3567D91B6768FC00338947 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionDelegate.swift; sourceTree = "<group>"; };
DD3567DD1B6768FC00338947 /* VLC for iOS WatchKit Extension-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "VLC for iOS WatchKit Extension-Prefix.pch"; sourceTree = "<group>"; }; DD3567DD1B6768FC00338947 /* VLC for iOS WatchKit Extension-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "VLC for iOS WatchKit Extension-Prefix.pch"; sourceTree = "<group>"; };
DD3567DF1B6768FC00338947 /* VLCBaseInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCBaseInterfaceController.h; sourceTree = "<group>"; }; DD3567DF1B6768FC00338947 /* VLCBaseInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCBaseInterfaceController.h; sourceTree = "<group>"; };
DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCBaseInterfaceController.m; sourceTree = "<group>"; }; DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCBaseInterfaceController.m; sourceTree = "<group>"; };
...@@ -1832,7 +1820,6 @@ ...@@ -1832,7 +1820,6 @@
7D94FCDF16DE7D1000F2623B /* UIKit.framework in Frameworks */, 7D94FCDF16DE7D1000F2623B /* UIKit.framework in Frameworks */,
7D94FCE116DE7D1000F2623B /* Foundation.framework in Frameworks */, 7D94FCE116DE7D1000F2623B /* Foundation.framework in Frameworks */,
7D94FCE316DE7D1000F2623B /* CoreGraphics.framework in Frameworks */, 7D94FCE316DE7D1000F2623B /* CoreGraphics.framework in Frameworks */,
C7E12487F4C2ADB76385245B /* libPods-vlc-ios.a in Frameworks */,
D7FBC862832B766D0E814251 /* libPods-VLC-iOS.a in Frameworks */, D7FBC862832B766D0E814251 /* libPods-VLC-iOS.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -2872,7 +2859,6 @@ ...@@ -2872,7 +2859,6 @@
DD3567741B6760BF00338947 /* VLC WatchKit Native Extension */ = { DD3567741B6760BF00338947 /* VLC WatchKit Native Extension */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
DD3567B11B67672600338947 /* Linked from VLCKit */,
DD3567D81B6768FC00338947 /* Classes */, DD3567D81B6768FC00338947 /* Classes */,
DD3567791B6760BF00338947 /* Assets.xcassets */, DD3567791B6760BF00338947 /* Assets.xcassets */,
DD35677B1B6760BF00338947 /* Info.plist */, DD35677B1B6760BF00338947 /* Info.plist */,
...@@ -2883,19 +2869,11 @@ ...@@ -2883,19 +2869,11 @@
path = "VLC WatchKit Native Extension"; path = "VLC WatchKit Native Extension";
sourceTree = "<group>"; sourceTree = "<group>";
}; };
DD3567B11B67672600338947 /* Linked from VLCKit */ = {
isa = PBXGroup;
children = (
DD3567B51B67675400338947 /* VLCTime.h */,
DD3567B31B67674700338947 /* VLCTime.m */,
);
name = "Linked from VLCKit";
sourceTree = "<group>";
};
DD3567D81B6768FC00338947 /* Classes */ = { DD3567D81B6768FC00338947 /* Classes */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
DD3567D91B6768FC00338947 /* ExtensionDelegate.swift */, 7DFFD4051D42436B00A41B0A /* VLCExtensionDelegate.h */,
7DFFD4061D42436B00A41B0A /* VLCExtensionDelegate.m */,
DD3567DF1B6768FC00338947 /* VLCBaseInterfaceController.h */, DD3567DF1B6768FC00338947 /* VLCBaseInterfaceController.h */,
DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */, DD3567E01B6768FC00338947 /* VLCBaseInterfaceController.m */,
DD3567E11B6768FC00338947 /* VLCDetailInterfaceController.h */, DD3567E11B6768FC00338947 /* VLCDetailInterfaceController.h */,
...@@ -2912,6 +2890,8 @@ ...@@ -2912,6 +2890,8 @@
DD3567EE1B6768FC00338947 /* WKInterfaceObject+VLCProgress.m */, DD3567EE1B6768FC00338947 /* WKInterfaceObject+VLCProgress.m */,
DD9FBE751BAD6BB600FFE77A /* WKInterfaceController+VLCConnectionAlert.h */, DD9FBE751BAD6BB600FFE77A /* WKInterfaceController+VLCConnectionAlert.h */,
DD9FBE761BAD6BB600FFE77A /* WKInterfaceController+VLCConnectionAlert.m */, DD9FBE761BAD6BB600FFE77A /* WKInterfaceController+VLCConnectionAlert.m */,
7D7BD28B1D424532000CE8DC /* VLCTime.h */,
7D7BD28C1D424532000CE8DC /* VLCTime.m */,
); );
path = Classes; path = Classes;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -3290,7 +3270,6 @@ ...@@ -3290,7 +3270,6 @@
DD35676C1B6760BF00338947 /* Sources */, DD35676C1B6760BF00338947 /* Sources */,
DD35676D1B6760BF00338947 /* Frameworks */, DD35676D1B6760BF00338947 /* Frameworks */,
DD35676E1B6760BF00338947 /* Resources */, DD35676E1B6760BF00338947 /* Resources */,
DD7BA2651B680C8E002D9F54 /* Embed Frameworks */,
C3FF685CCF4274D0E761AEDC /* [CP] Embed Pods Frameworks */, C3FF685CCF4274D0E761AEDC /* [CP] Embed Pods Frameworks */,
706871891E2E53274143218F /* [CP] Copy Pods Resources */, 706871891E2E53274143218F /* [CP] Copy Pods Resources */,
); );
...@@ -4646,16 +4625,16 @@ ...@@ -4646,16 +4625,16 @@
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
DD3567F91B6768FC00338947 /* WKInterfaceObject+VLCProgress.m in Sources */, DD3567F91B6768FC00338947 /* WKInterfaceObject+VLCProgress.m in Sources */,
DD3567EF1B6768FC00338947 /* ExtensionDelegate.swift in Sources */, 7D7BD28D1D424532000CE8DC /* VLCTime.m in Sources */,
DD3567F81B6768FC00338947 /* VLCWatchTableController.m in Sources */, DD3567F81B6768FC00338947 /* VLCWatchTableController.m in Sources */,
DD3567F61B6768FC00338947 /* VLCPlaylistInterfaceController.m in Sources */, DD3567F61B6768FC00338947 /* VLCPlaylistInterfaceController.m in Sources */,
DD2789E51B67A8F000CED769 /* MLMediaLibrary+playlist.m in Sources */, DD2789E51B67A8F000CED769 /* MLMediaLibrary+playlist.m in Sources */,
DDB7C6A41BAEB28200E6570E /* WKInterfaceController+VLCConnectionAlert.m in Sources */, DDB7C6A41BAEB28200E6570E /* WKInterfaceController+VLCConnectionAlert.m in Sources */,
7DFFD4071D42436B00A41B0A /* VLCExtensionDelegate.m in Sources */,
DD3567F31B6768FC00338947 /* VLCDetailInterfaceController.m in Sources */, DD3567F31B6768FC00338947 /* VLCDetailInterfaceController.m in Sources */,
DD2789DE1B67A5CD00CED769 /* VLCWatchMessage.m in Sources */, DD2789DE1B67A5CD00CED769 /* VLCWatchMessage.m in Sources */,
DD3567F71B6768FC00338947 /* VLCRowController.m in Sources */, DD3567F71B6768FC00338947 /* VLCRowController.m in Sources */,
DD3567F21B6768FC00338947 /* VLCBaseInterfaceController.m in Sources */, DD3567F21B6768FC00338947 /* VLCBaseInterfaceController.m in Sources */,
DD3567B41B67674700338947 /* VLCTime.m in Sources */,
DD2789DD1B67A5C400CED769 /* VLCThumbnailsCache.m in Sources */, DD2789DD1B67A5C400CED769 /* VLCThumbnailsCache.m in Sources */,
DD3567F51B6768FC00338947 /* VLCNowPlayingInterfaceController.m in Sources */, DD3567F51B6768FC00338947 /* VLCNowPlayingInterfaceController.m in Sources */,
); );
...@@ -5706,7 +5685,6 @@ ...@@ -5706,7 +5685,6 @@
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf; DEBUG_INFORMATION_FORMAT = dwarf;
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0; GCC_OPTIMIZATION_LEVEL = 0;
...@@ -5745,7 +5723,6 @@ ...@@ -5745,7 +5723,6 @@
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
...@@ -5783,7 +5760,6 @@ ...@@ -5783,7 +5760,6 @@
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO; COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
ENABLE_NS_ASSERTIONS = NO; ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES; GCC_NO_COMMON_BLOCKS = YES;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment