Prechádzať zdrojové kódy

switch between shows, albums and all files via force touch. added a gradient to backgroundimages

Carola Nitz 10 rokov pred
rodič
commit
f20ac797fa
22 zmenil súbory, kde vykonal 235 pridanie a 36 odobranie
  1. 4 5
      Podfile.lock
  2. 10 8
      VLC for iOS WatchKit App/Base.lproj/Interface.storyboard
  3. BIN
      VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/AllFiles.pdf
  4. 13 0
      VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/Contents.json
  5. 20 0
      VLC for iOS WatchKit App/Images.xcassets/Allmusic.imageset/Contents.json
  6. BIN
      VLC for iOS WatchKit App/Images.xcassets/Allmusic.imageset/MusicAlbums.pdf
  7. 13 0
      VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/Contents.json
  8. BIN
      VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/MusicAlbums.pdf
  9. 13 0
      VLC for iOS WatchKit App/Images.xcassets/TVShowsIcon.imageset/Contents.json
  10. BIN
      VLC for iOS WatchKit App/Images.xcassets/TVShowsIcon.imageset/TVShowsIcon.pdf
  11. 49 0
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/Contents.json
  12. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7-ipad.png
  13. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7-ipad@2x.png
  14. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7.png
  15. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-1.png
  16. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-2.png
  17. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-3.png
  18. BIN
      VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x.png
  19. 1 1
      VLC for iOS WatchKit Extension/InterfaceController.h
  20. 106 22
      VLC for iOS WatchKit Extension/InterfaceController.m
  21. 2 0
      VLC for iOS WatchKit Extension/VLCNotificationRelay.m
  22. 4 0
      VLC for iOS.xcodeproj/project.pbxproj

+ 4 - 5
Podfile.lock

@@ -11,8 +11,7 @@ PODS:
   - upnpx (1.3.2)
 
 DEPENDENCIES:
-  - box-ios-sdk-v2 (from `git://github.com/carolanitz/box-ios-sdk-v2.git`, commit
-    `d2df30aa5f76d30910e06f3ef5aff49025de3cf1`)
+  - box-ios-sdk-v2 (from `git://github.com/carolanitz/box-ios-sdk-v2.git`, commit `d2df30aa5f76d30910e06f3ef5aff49025de3cf1`)
   - GHSidebarNav (= 1.0.0)
   - InAppSettingsKit (= 2.2.2)
   - OBSlider (= 1.1.0)
@@ -37,13 +36,13 @@ CHECKOUT OPTIONS:
     :git: https://github.com/carolanitz/QuincyKit.git
 
 SPEC CHECKSUMS:
-  box-ios-sdk-v2: e6833ca786bf93da1dbe63e3d0a945b1e1fe1f42
+  box-ios-sdk-v2: c06d3009266dc2c5c27bbb3882f1e5cf1f3c72cb
   GHSidebarNav: b0c7937f3fdc2889025d307036223bc0dd7c3a0d
   InAppSettingsKit: 76d5cfbaa3e3f8aa53fe3628516da7eb1aa6a5cb
   OBSlider: 490f108007bfdd5414a38650b211fe403a95b8a0
   PLCrashReporter: 655201ef69223866e230a25c973c8f39bcc4b722
-  QuincyKit: 5a7a96a5886e2096d347da3c738f39fe9326f800
+  QuincyKit: 31f49bf0aa0b20fd25ba3084f617a43424b7af99
   SSKeychain: 88767e903ee8d274ed380e364d96b7a101235286
   upnpx: e56e4f26d21c439b2383e03b5ca9082a3d5046a1
 
-COCOAPODS: 0.36.3
+COCOAPODS: 0.35.0

+ 10 - 8
VLC for iOS WatchKit App/Base.lproj/Interface.storyboard

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="7528.3" systemVersion="14C1514" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="AgC-eL-Hgc">
+<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="6751" systemVersion="14C1514" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="AgC-eL-Hgc">
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7518.3"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6736"/>
         <plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="3737"/>
     </dependencies>
     <scenes>
@@ -10,7 +10,8 @@
             <objects>
                 <controller id="AgC-eL-Hgc" customClass="InterfaceController">
                     <items>
-                        <button width="1" alignment="left" title="previous page" id="fUJ-qB-19l">
+                        <button width="1" alignment="left" title="︿" id="fUJ-qB-19l">
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                             <connections>
                                 <action selector="previousPagePressed" destination="AgC-eL-Hgc" id="d5P-dB-jji"/>
                             </connections>
@@ -18,21 +19,21 @@
                         <table alignment="left" id="lC4-Vd-sgP">
                             <items>
                                 <tableRow identifier="mediaRow" id="QhF-se-FCS" customClass="VLCRowController">
-                                    <group key="rootItem" width="1" height="0.0" alignment="left" contentMode="scaleAspectFill" layout="vertical" id="IQK-uE-8Jr">
+                                    <group key="rootItem" width="1" height="60" alignment="left" contentMode="scaleAspectFill" layout="vertical" radius="10" id="IQK-uE-8Jr">
                                         <items>
-                                            <label alignment="left" text="title" numberOfLines="0" minimumScaleFactor="0.90000000000000002" id="bUB-PE-2P0"/>
-                                            <label alignment="left" text="duration" id="mQo-qf-FiK"/>
+                                            <label alignment="left" verticalAlignment="bottom" text="title" numberOfLines="0" minimumScaleFactor="0.90000000000000002" id="bUB-PE-2P0"/>
                                         </items>
+                                        <color key="backgroundColor" red="0.76862745099999996" green="0.74901960779999999" blue="0.75686274509999996" alpha="1" colorSpace="calibratedRGB"/>
                                     </group>
                                     <connections>
-                                        <outlet property="durationLabel" destination="mQo-qf-FiK" id="eSs-eG-afe"/>
                                         <outlet property="group" destination="IQK-uE-8Jr" id="AMK-in-WKm"/>
                                         <outlet property="titleLabel" destination="bUB-PE-2P0" id="U07-pL-M8k"/>
                                     </connections>
                                 </tableRow>
                             </items>
                         </table>
-                        <button width="1" alignment="left" title="next page" id="3AK-kX-V9D">
+                        <button width="1" alignment="left" title="﹀" id="3AK-kX-V9D">
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                             <connections>
                                 <action selector="nextPagePressed" destination="AgC-eL-Hgc" id="iNm-4n-TvE"/>
                             </connections>
@@ -109,4 +110,5 @@
             <point key="canvasLocation" x="221" y="605"/>
         </scene>
     </scenes>
+    <color key="tintColor" red="0.89803921568627454" green="0.38823529411764707" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
 </document>

BIN
VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/AllFiles.pdf


+ 13 - 0
VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/Contents.json

@@ -0,0 +1,13 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "AllFiles.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode",
+    "template-rendering-intent" : "template"
+  }
+}

+ 20 - 0
VLC for iOS WatchKit App/Images.xcassets/Allmusic.imageset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
VLC for iOS WatchKit App/Images.xcassets/Allmusic.imageset/MusicAlbums.pdf


+ 13 - 0
VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/Contents.json

@@ -0,0 +1,13 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "MusicAlbums.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode",
+    "template-rendering-intent" : "template"
+  }
+}

BIN
VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/MusicAlbums.pdf


+ 13 - 0
VLC for iOS WatchKit App/Images.xcassets/TVShowsIcon.imageset/Contents.json

@@ -0,0 +1,13 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "TVShowsIcon.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode",
+    "template-rendering-intent" : "template"
+  }
+}

BIN
VLC for iOS WatchKit App/Images.xcassets/TVShowsIcon.imageset/TVShowsIcon.pdf


+ 49 - 0
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/Contents.json

@@ -0,0 +1,49 @@
+{
+  "images" : [
+    {
+      "idiom" : "iphone",
+      "scale" : "1x",
+      "filename" : "gradient-cell-ios7.png"
+    },
+    {
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "filename" : "gradient-cell-ios7@2x.png"
+    },
+    {
+      "idiom" : "iphone",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "filename" : "gradient-cell-ios7-ipad.png"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "filename" : "gradient-cell-ios7-ipad@2x.png"
+    },
+    {
+      "idiom" : "watch",
+      "scale" : "2x",
+      "filename" : "gradient-cell-ios7@2x-1.png"
+    },
+    {
+      "idiom" : "watch",
+      "screenWidth" : "{130,145}",
+      "filename" : "gradient-cell-ios7@2x-2.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "watch",
+      "screenWidth" : "{146,165}",
+      "filename" : "gradient-cell-ios7@2x-3.png",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7-ipad.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7-ipad@2x.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-1.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-2.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x-3.png


BIN
VLC for iOS WatchKit App/Images.xcassets/gradient-cell-ios7.imageset/gradient-cell-ios7@2x.png


+ 1 - 1
VLC for iOS WatchKit Extension/InterfaceController.h

@@ -16,7 +16,7 @@
 
 #import "VLCBaseInterfaceController.h"
 
-@interface InterfaceController : VLCBaseInterfaceController
+@interface InterfaceController : WKInterfaceController
 @property (weak, nonatomic) IBOutlet WKInterfaceButton *previousButton;
 @property (nonatomic, weak) IBOutlet WKInterfaceTable *table;
 @property (weak, nonatomic) IBOutlet WKInterfaceButton *nextButton;

+ 106 - 22
VLC for iOS WatchKit Extension/InterfaceController.m

@@ -23,11 +23,19 @@ static NSString *const rowType = @"mediaRow";
 static NSString *const VLCDBUpdateNotification = @"VLCUpdateDataBase";
 static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.dbupdate";
 
+typedef enum {
+    VLCLibraryModeAllFiles  = 0,
+    VLCLibraryModeAllAlbums = 1,
+    VLCLibraryModeAllSeries = 2
+} VLCLibraryMode;
+
 @interface InterfaceController()
 @property (nonatomic, strong) VLCWatchTableController *tableController;
+@property (nonatomic) VLCLibraryMode libraryMode;
 @end
 
 
+
 @implementation InterfaceController
 
 - (void)awakeWithContext:(id)context {
@@ -35,7 +43,8 @@ static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.db
     NSLog(@"%s",__PRETTY_FUNCTION__);
 
     NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.org.videolan.vlc-ios"];
-
+    [self setupMenuButtons];
+    self.libraryMode = VLCLibraryModeAllFiles;
     MLMediaLibrary *mediaLibrary = [MLMediaLibrary sharedMediaLibrary];
     mediaLibrary.libraryBasePath = groupURL.path;
     mediaLibrary.additionalPersitentStoreOptions = @{NSReadOnlyPersistentStoreOption : @YES};
@@ -91,6 +100,35 @@ static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.db
     [self.tableController previousPageButtonPressed];
 }
 
+- (void)setupMenuButtons {
+
+    [self addMenuItemWithImageNamed:@"AllFiles" title: NSLocalizedString(@"LIBRARY_ALL_FILES", nil) action:@selector(switchToAllFiles)];
+    [self addMenuItemWithImageNamed:@"MusicAlbums" title: NSLocalizedString(@"LIBRARY_MUSIC", nil) action:@selector(switchToMusic)];
+    [self addMenuItemWithImageNamed:@"TVShowsIcon" title: NSLocalizedString(@"LIBRARY_SERIES", nil) action:@selector(switchToSeries)];
+    [self addMenuItemWithItemIcon:WKMenuItemIconMore title: NSLocalizedString(@"NOW_PLAYING", nil) action:@selector(showNowPlaying:)];
+}
+
+- (void)switchToAllFiles{
+    self.title = NSLocalizedString(@"LIBRARY_ALL_FILES", nil);
+    self.libraryMode = VLCLibraryModeAllFiles;
+    [self updateData];
+}
+
+- (void)switchToMusic{
+    self.title = NSLocalizedString(@"LIBRARY_MUSIC", nil);
+    self.libraryMode = VLCLibraryModeAllAlbums;
+    [self updateData];
+}
+
+- (void)switchToSeries{
+    self.title = NSLocalizedString(@"LIBRARY_SERIES", nil);
+    self.libraryMode = VLCLibraryModeAllSeries;
+    [self updateData];
+}
+
+- (void)showNowPlaying:(id)sender {
+    [self presentControllerWithName:@"nowPlaying" context:nil];
+}
 #pragma mark - data handling
 
 - (void)updateData {
@@ -99,32 +137,70 @@ static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.db
 
 - (void)configureTableRowController:(id)rowController withObject:(MLFile *)object {
     VLCRowController *row = rowController;
-    row.titleLabel.text = object.title;
-    row.durationLabel.text = [VLCTime timeWithNumber:object.duration].stringValue;
-    [row.group setBackgroundImage:object.computedThumbnail];
+    if ([object isKindOfClass:[MLAlbum class]] || [object isKindOfClass:[MLShowEpisode class]] ||[object isKindOfClass:[MLLabel class]] ){
+        //no matter what class it is it has a name property
+        row.titleLabel.text = ((MLAlbum *)object).name;
+        //TODO: set placeholderimage
+        [row.group setBackgroundImage:[self generateBackgroundiImageWithGradient:nil]];
+    } else {
+        row.titleLabel.text = object.title;
+        row.durationLabel.text = [VLCTime timeWithNumber:object.duration].stringValue;
+        if (object.computedThumbnail != nil) {
+            [row.group setBackgroundImage:[self generateBackgroundiImageWithGradient:object.computedThumbnail]];
+        } else {
+            //TODO: set placeholderimage
+            [row.group setBackgroundImage:[self generateBackgroundiImageWithGradient:nil]];
+        }
+    }
 }
+- (UIImage *)generateBackgroundiImageWithGradient:(UIImage *)backgroundImage {
+
+    UIImage *gradient = [UIImage imageNamed:@"gradient-cell-ios7"];
 
+    //TODO: make this dynamical width
+    CGSize newSize = CGSizeMake(130, 60);
+    UIGraphicsBeginImageContext( newSize );
 
+    // Use existing opacity as is
+    [backgroundImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
+    [gradient drawInRect:CGRectMake(0,40,newSize.width,20) blendMode:kCGBlendModeNormal alpha:1.0];
+
+    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
+    
+    UIGraphicsEndImageContext();
+    return newImage;
+}
+
+//TODO: this code could use refactoring to be more readable
 - (NSMutableArray *)mediaArray {
     NSMutableArray *objects = [NSMutableArray array];
-//    /* add all albums */
-//    NSArray *rawAlbums = [MLAlbum allAlbums];
-//    for (MLAlbum *album in rawAlbums) {
-//        if (album.name.length > 0 && album.tracks.count > 1)
-//            [objects addObject:album];
-//    }
-//
-//    /* add all shows */
-//    NSArray *rawShows = [MLShow allShows];
-//    for (MLShow *show in rawShows) {
-//        if (show.name.length > 0 && show.episodes.count > 1)
-//            [objects addObject:show];
-//    }
-//
-//    /* add all folders*/
-//    NSArray *allFolders = [MLLabel allLabels];
-//    for (MLLabel *folder in allFolders)
-//        [objects addObject:folder];
+
+    /* add all albums */
+    if (_libraryMode != VLCLibraryModeAllSeries) {
+        NSArray *rawAlbums = [MLAlbum allAlbums];
+        for (MLAlbum *album in rawAlbums) {
+            if (album.name.length > 0 && album.tracks.count > 1)
+                [objects addObject:album];
+        }
+    }
+    if (_libraryMode == VLCLibraryModeAllAlbums) {
+        return objects;
+    }
+
+    /* add all shows */
+    NSArray *rawShows = [MLShow allShows];
+    for (MLShow *show in rawShows) {
+        if (show.name.length > 0 && show.episodes.count > 1)
+            [objects addObject:show];
+    }
+    if (_libraryMode == VLCLibraryModeAllSeries) {
+        return objects;
+    }
+
+    /* add all folders*/
+    NSArray *allFolders = [MLLabel allLabels];
+    for (MLLabel *folder in allFolders)
+        [objects addObject:folder];
 
     /* add all remaining files */
     NSArray *allFiles = [MLFile allFiles];
@@ -136,6 +212,14 @@ static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.db
         else if (file.isShowEpisode) {
             if (file.showEpisode.show.episodes.count < 2)
                 [objects addObject:file];
+
+            /* older MediaLibraryKit versions don't send a show name in a popular
+             * corner case. hence, we need to work-around here and force a reload
+             * afterwards as this could lead to the 'all my shows are gone'
+             * syndrome (see #10435, #10464, #10432 et al) */
+            if (file.showEpisode.show.name.length == 0) {
+                file.showEpisode.show.name = NSLocalizedString(@"UNTITLED_SHOW", nil);
+            }
         } else if (file.isAlbumTrack) {
             if (file.albumTrack.album.tracks.count < 2)
                 [objects addObject:file];

+ 2 - 0
VLC for iOS WatchKit Extension/VLCNotificationRelay.m

@@ -38,6 +38,7 @@
     }
     return self;
 }
+
 - (void)dealloc {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
     CFNotificationCenterRef center = CFNotificationCenterGetDarwinNotifyCenter();
@@ -48,6 +49,7 @@
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(localNotification:) name:localName object:nil];
     self.localToRemote[localName] = remoteName;
 }
+
 - (void)removeRelayLocalName:(NSString *)localName {
     [[NSNotificationCenter defaultCenter] removeObserver:self name:localName object:nil];
     [self.localToRemote removeObjectForKey:localName];

+ 4 - 0
VLC for iOS.xcodeproj/project.pbxproj

@@ -70,6 +70,8 @@
 		417CDA231A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 417CDA211A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.m */; };
 		417CDA241A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 417CDA221A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.xib */; };
 		4184AA151A5492070063DF5A /* VLCCloudStorageController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4184AA141A5492070063DF5A /* VLCCloudStorageController.m */; };
+		418984891AD2C4D50074376D /* gradient-cell-ios7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D2A34A31805CDBA004078AA /* gradient-cell-ios7@2x.png */; };
+		4189848A1AD2C4D50074376D /* gradient-cell-ios7@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D2A34A31805CDBA004078AA /* gradient-cell-ios7@2x.png */; };
 		418FF4B11A0EC1D5005FE808 /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 418FF4B01A0EC1D5005FE808 /* libPods-vlc-ios.a */; };
 		41B93C011A53833B00102E8B /* VLCProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C001A53833B00102E8B /* VLCProgressView.m */; };
 		41B93C051A53835300102E8B /* VLCCloudServiceCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B93C031A53835300102E8B /* VLCCloudServiceCell.m */; };
@@ -3126,6 +3128,7 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				418984891AD2C4D50074376D /* gradient-cell-ios7@2x.png in Resources */,
 				4173AEAC1ABF1B850004101D /* VLC for iOS WatchKit App.app in Resources */,
 				7D2D4ECC1ACFFA42006A8DBD /* Localizable.strings in Resources */,
 				4173AEA81ABF1B850004101D /* Images.xcassets in Resources */,
@@ -3138,6 +3141,7 @@
 			files = (
 				4173AEB41ABF1B860004101D /* Interface.storyboard in Resources */,
 				4173AEB61ABF1B860004101D /* Images.xcassets in Resources */,
+				4189848A1AD2C4D50074376D /* gradient-cell-ios7@2x.png in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};