浏览代码

delete WatchOS1 app

Tobias Conradi 10 年之前
父节点
当前提交
f53721184e
共有 70 个文件被更改,包括 9 次插入2529 次删除
  1. 0 0
      SharedSources/VLCNotificationRelay.h
  2. 0 0
      SharedSources/VLCNotificationRelay.m
  3. 0 195
      VLC for iOS WatchKit App/Base.lproj/Interface.storyboard
  4. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/AllFiles@2x.png
  5. 0 21
      VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/Contents.json
  6. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon24@2x.png
  7. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon27.5@2x.png
  8. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon29@2x.png
  9. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon29@3x.png
  10. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon40@2x.png
  11. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon44@2x.png
  12. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon86@2x.png
  13. 二进制
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon98@2x.png
  14. 0 70
      VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/Contents.json
  15. 0 21
      VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/Contents.json
  16. 二进制
      VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/MusicAlbums@2x.png
  17. 0 21
      VLC for iOS WatchKit App/Images.xcassets/TVShows.imageset/Contents.json
  18. 二进制
      VLC for iOS WatchKit App/Images.xcassets/TVShows.imageset/TVShows@2x.png
  19. 0 21
      VLC for iOS WatchKit App/Images.xcassets/backward.imageset/Contents.json
  20. 二进制
      VLC for iOS WatchKit App/Images.xcassets/backward.imageset/backward.png
  21. 0 21
      VLC for iOS WatchKit App/Images.xcassets/forward.imageset/Contents.json
  22. 二进制
      VLC for iOS WatchKit App/Images.xcassets/forward.imageset/forward.png
  23. 0 22
      VLC for iOS WatchKit App/Images.xcassets/pause.imageset/Contents.json
  24. 二进制
      VLC for iOS WatchKit App/Images.xcassets/pause.imageset/pause.png
  25. 0 21
      VLC for iOS WatchKit App/Images.xcassets/play.imageset/Contents.json
  26. 二进制
      VLC for iOS WatchKit App/Images.xcassets/play.imageset/play.png
  27. 二进制
      VLC for iOS WatchKit App/Images.xcassets/vlcCone.imageset/AppIcon76x76@2x.png
  28. 0 21
      VLC for iOS WatchKit App/Images.xcassets/vlcCone.imageset/Contents.json
  29. 0 35
      VLC for iOS WatchKit App/Info.plist
  30. 0 1
      VLC for iOS WatchKit Extension/Images.xcassets/README__ignoredByTemplate__
  31. 0 22
      VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/Contents.json
  32. 二进制
      VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/tableview-gradient.png
  33. 二进制
      VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/tableview-gradient@2x.png
  34. 0 38
      VLC for iOS WatchKit Extension/Info.plist
  35. 0 19
      VLC for iOS WatchKit Extension/NSManagedObjectContext+refreshAll.h
  36. 0 22
      VLC for iOS WatchKit Extension/NSManagedObjectContext+refreshAll.m
  37. 0 32
      VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch
  38. 0 10
      VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension.entitlements
  39. 0 29
      VLC for iOS WatchKit Extension/VLCBaseInterfaceController.h
  40. 0 74
      VLC for iOS WatchKit Extension/VLCBaseInterfaceController.m
  41. 0 29
      VLC for iOS WatchKit Extension/VLCDetailInterfaceController.h
  42. 0 123
      VLC for iOS WatchKit Extension/VLCDetailInterfaceController.m
  43. 0 33
      VLC for iOS WatchKit Extension/VLCNowPlayingInterfaceController.h
  44. 0 208
      VLC for iOS WatchKit Extension/VLCNowPlayingInterfaceController.m
  45. 0 29
      VLC for iOS WatchKit Extension/VLCPlaylistInterfaceController.h
  46. 0 159
      VLC for iOS WatchKit Extension/VLCPlaylistInterfaceController.m
  47. 0 27
      VLC for iOS WatchKit Extension/VLCRowController.h
  48. 0 145
      VLC for iOS WatchKit Extension/VLCRowController.m
  49. 0 62
      VLC for iOS WatchKit Extension/VLCWatchTableController.h
  50. 0 172
      VLC for iOS WatchKit Extension/VLCWatchTableController.m
  51. 0 22
      VLC for iOS WatchKit Extension/WKInterfaceObject+VLCProgress.h
  52. 0 39
      VLC for iOS WatchKit Extension/WKInterfaceObject+VLCProgress.m
  53. 0 9
      VLC for iOS WatchKit Extension/da.lproj/Localizable.strings
  54. 0 9
      VLC for iOS WatchKit Extension/de.lproj/Localizable.strings
  55. 0 9
      VLC for iOS WatchKit Extension/el.lproj/Localizable.strings
  56. 0 27
      VLC for iOS WatchKit Extension/en.lproj/Localizable.strings
  57. 0 9
      VLC for iOS WatchKit Extension/es.lproj/Localizable.strings
  58. 0 9
      VLC for iOS WatchKit Extension/fi.lproj/Localizable.strings
  59. 0 9
      VLC for iOS WatchKit Extension/fr.lproj/Localizable.strings
  60. 0 9
      VLC for iOS WatchKit Extension/it.lproj/Localizable.strings
  61. 0 9
      VLC for iOS WatchKit Extension/ja.lproj/Localizable.strings
  62. 0 9
      VLC for iOS WatchKit Extension/nl.lproj/Localizable.strings
  63. 0 9
      VLC for iOS WatchKit Extension/pt-PT.lproj/Localizable.strings
  64. 0 9
      VLC for iOS WatchKit Extension/ru.lproj/Localizable.strings
  65. 0 9
      VLC for iOS WatchKit Extension/sv.lproj/Localizable.strings
  66. 0 9
      VLC for iOS WatchKit Extension/ta.lproj/Localizable.strings
  67. 0 9
      VLC for iOS WatchKit Extension/tr.lproj/Localizable.strings
  68. 0 9
      VLC for iOS WatchKit Extension/uk.lproj/Localizable.strings
  69. 0 9
      VLC for iOS WatchKit Extension/zh-Hans.lproj/Localizable.strings
  70. 9 594
      VLC for iOS.xcodeproj/project.pbxproj

VLC for iOS WatchKit Extension/VLCNotificationRelay.h → SharedSources/VLCNotificationRelay.h


VLC for iOS WatchKit Extension/VLCNotificationRelay.m → SharedSources/VLCNotificationRelay.m


+ 0 - 195
VLC for iOS WatchKit App/Base.lproj/Interface.storyboard

@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder.WatchKit.Storyboard" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="watchKit" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="AgC-eL-Hgc">
-    <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBWatchKitPlugin" version="3737"/>
-    </dependencies>
-    <scenes>
-        <!--tableViewController-->
-        <scene sceneID="aou-V4-d1y">
-            <objects>
-                <controller identifier="tableViewController" id="AgC-eL-Hgc" customClass="VLCPlaylistInterfaceController">
-                    <items>
-                        <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>
-                        </button>
-                        <table alignment="left" id="lC4-Vd-sgP">
-                            <items>
-                                <tableRow identifier="mediaRow" id="QhF-se-FCS" customClass="VLCRowController">
-                                    <group key="rootItem" width="1" height="60" alignment="left" contentMode="scaleAspectFill" layout="vertical" radius="5" spacing="0.0" id="IQK-uE-8Jr">
-                                        <items>
-                                            <group width="1" height="1" heightAdjustment="-2" alignment="left" contentMode="scaleAspectFill" layout="vertical" id="n51-TH-TfQ">
-                                                <items>
-                                                    <label alignment="left" text="title" minimumScaleFactor="0.90000000000000002" id="bUB-PE-2P0">
-                                                        <fontDescription key="font" style="UICTFontTextStyleCaption2"/>
-                                                    </label>
-                                                </items>
-                                                <edgeInsets key="margins" left="5" right="5" top="5" bottom="5"/>
-                                            </group>
-                                            <group width="1" widthAdjustment="11" height="2" alignment="left" verticalAlignment="bottom" radius="0.0" spacing="0.0" id="emQ-zO-BxV" userLabel="progress Group">
-                                                <color key="backgroundColor" red="0.92549019610000005" green="0.43529411759999997" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                            </group>
-                                        </items>
-                                        <color key="backgroundColor" red="0.76862745099999996" green="0.74901960779999999" blue="0.75686274509999996" alpha="1" colorSpace="calibratedRGB"/>
-                                        <edgeInsets key="margins" left="0.0" right="0.0" top="0.0" bottom="0.0"/>
-                                    </group>
-                                    <connections>
-                                        <outlet property="group" destination="IQK-uE-8Jr" id="WBV-Cl-DBU"/>
-                                        <outlet property="progressObject" destination="emQ-zO-BxV" id="quT-o1-pWc"/>
-                                        <outlet property="titleLabel" destination="bUB-PE-2P0" id="U07-pL-M8k"/>
-                                    </connections>
-                                </tableRow>
-                            </items>
-                        </table>
-                        <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>
-                        </button>
-                        <group width="1" alignment="left" hidden="YES" layout="vertical" id="Sdu-Gc-HNJ">
-                            <items>
-                                <imageView alignment="center" image="vlcCone" contentMode="scaleAspectFit" id="oPx-9e-qpC"/>
-                                <label width="1" alignment="center" textAlignment="center" numberOfLines="0" id="t8d-XX-2X2">
-                                    <fontDescription key="font" style="UICTFontTextStyleHeadline"/>
-                                </label>
-                            </items>
-                        </group>
-                    </items>
-                    <connections>
-                        <outlet property="emptyLibraryGroup" destination="Sdu-Gc-HNJ" id="Pj1-Oh-Is8"/>
-                        <outlet property="emptyLibraryLabel" destination="t8d-XX-2X2" id="5MF-Vt-cAr"/>
-                        <outlet property="nextButton" destination="3AK-kX-V9D" id="Iju-cx-571"/>
-                        <outlet property="previousButton" destination="fUJ-qB-19l" id="r36-II-aik"/>
-                        <outlet property="table" destination="lC4-Vd-sgP" id="mxe-b7-XMx"/>
-                    </connections>
-                </controller>
-            </objects>
-            <point key="canvasLocation" x="221" y="216"/>
-        </scene>
-        <!--detailInfo-->
-        <scene sceneID="ssu-GA-ce6">
-            <objects>
-                <controller identifier="detailInfo" id="iqo-j9-nlr" customClass="VLCDetailInterfaceController">
-                    <items>
-                        <group width="1" height="100" alignment="left" layout="vertical" id="w46-UP-k21">
-                            <items>
-                                <group alignment="center" verticalAlignment="center" radius="20" id="bEJ-d5-UhP">
-                                    <items>
-                                        <button width="40" height="40" alignment="center" verticalAlignment="center" title="▶︎" enabled="NO" id="4LT-2D-Zeq">
-                                            <accessibilityTraits key="accessibilityTraits" none="YES" button="YES" playsSound="YES"/>
-                                            <color key="titleColor" red="0.92549019610000005" green="0.43529411759999997" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                            <color key="backgroundColor" red="1" green="1" blue="1" alpha="0.40000000000000002" colorSpace="calibratedRGB"/>
-                                            <connections>
-                                                <action selector="playNow" destination="iqo-j9-nlr" id="y9K-R2-er7"/>
-                                            </connections>
-                                        </button>
-                                    </items>
-                                </group>
-                            </items>
-                        </group>
-                        <group width="1" height="2" alignment="left" verticalAlignment="center" radius="0.0" spacing="0.0" id="JNG-N2-V7J" userLabel="progress Group">
-                            <color key="backgroundColor" red="0.92549019610000005" green="0.43529411759999997" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                        </group>
-                        <label alignment="left" verticalAlignment="bottom" text="title" textAlignment="left" numberOfLines="0" id="0av-IS-YI5">
-                            <fontDescription key="font" style="UICTFontTextStyleCaption1"/>
-                        </label>
-                        <group width="1" alignment="left" verticalAlignment="bottom" layout="vertical" id="f8s-XC-ak2">
-                            <items>
-                                <label alignment="left" verticalAlignment="bottom" text="duration" id="eqY-Zs-PAu">
-                                    <fontDescription key="font" type="italicSystem" pointSize="14"/>
-                                </label>
-                            </items>
-                        </group>
-                    </items>
-                    <connections>
-                        <outlet property="durationLabel" destination="eqY-Zs-PAu" id="ttj-gB-C2S"/>
-                        <outlet property="group" destination="w46-UP-k21" id="tq6-TE-A5x"/>
-                        <outlet property="playNowButton" destination="4LT-2D-Zeq" id="d2T-jc-gAb"/>
-                        <outlet property="progressObject" destination="JNG-N2-V7J" id="eqg-BR-4a3"/>
-                        <outlet property="titleLabel" destination="0av-IS-YI5" id="vEh-KH-Vt5"/>
-                    </connections>
-                </controller>
-            </objects>
-            <point key="canvasLocation" x="497" y="222"/>
-        </scene>
-        <!--nowPlaying-->
-        <scene sceneID="NHj-Mq-ifc">
-            <objects>
-                <controller identifier="nowPlaying" id="Mzo-Y8-gdK" customClass="VLCNowPlayingInterfaceController">
-                    <items>
-                        <group width="1" height="1" heightAdjustment="-2" alignment="left" verticalAlignment="center" contentMode="scaleAspectFit" layout="vertical" id="uwS-0S-Ag2">
-                            <items>
-                                <group width="1" height="1" heightAdjustment="-55" alignment="left" contentMode="scaleAspectFit" layout="vertical" id="iCs-yD-jsj">
-                                    <items>
-                                        <group width="1" height="45" alignment="center" verticalAlignment="center" spacing="0.0" id="egl-IT-539">
-                                            <items>
-                                                <button alignment="center" verticalAlignment="center" accessibilityLabel="backward" id="uKa-8V-C8x">
-                                                    <group key="contentGroup" width="0.29999999999999999" height="1" alignment="left" backgroundImage="backward" contentMode="center" id="5qh-bH-XHx"/>
-                                                    <connections>
-                                                        <action selector="skipBackward" destination="Mzo-Y8-gdK" id="aP1-vb-XwF"/>
-                                                    </connections>
-                                                </button>
-                                                <button alignment="center" verticalAlignment="center" accessibilityLabel="play / pause" accessibilityHint="starts playing or pauses the current playback" id="BAZ-aC-ETt">
-                                                    <group key="contentGroup" width="0.30000000000000004" height="1" alignment="left" backgroundImage="play" contentMode="center" id="21n-1o-3T6"/>
-                                                    <connections>
-                                                        <action selector="playPausePressed" destination="Mzo-Y8-gdK" id="6p8-JZ-0Gh"/>
-                                                    </connections>
-                                                </button>
-                                                <button alignment="center" verticalAlignment="center" accessibilityLabel="forward" id="w8s-Mc-7oV">
-                                                    <group key="contentGroup" width="0.29999999999999999" height="1" alignment="left" backgroundImage="forward" contentMode="center" id="ZlX-jT-lUZ"/>
-                                                    <connections>
-                                                        <action selector="skipForward" destination="Mzo-Y8-gdK" id="1kf-Nh-kjr"/>
-                                                    </connections>
-                                                </button>
-                                            </items>
-                                        </group>
-                                    </items>
-                                    <variation key="device=watch42mm" heightAdjustment="-60"/>
-                                </group>
-                                <slider width="1" alignment="left" verticalAlignment="bottom" continuous="YES" value="0.5" steps="16" id="WNd-eJ-DzK">
-                                    <color key="color" red="1" green="0.50196081400000003" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                    <connections>
-                                        <action selector="volumeSliderChanged:" destination="Mzo-Y8-gdK" id="8uu-ZX-J9P"/>
-                                    </connections>
-                                </slider>
-                                <group width="1" alignment="left" verticalAlignment="bottom" id="d9m-EJ-n3r">
-                                    <items>
-                                        <label width="100" alignment="left" verticalAlignment="bottom" text="title" id="H58-Y8-Tbc">
-                                            <fontDescription key="font" type="system" pointSize="14"/>
-                                        </label>
-                                        <label alignment="right" verticalAlignment="bottom" accessibilityLabel="playback duration" text="duration" id="D0h-cq-wsv">
-                                            <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
-                                            <fontDescription key="font" style="UICTFontTextStyleFootnote"/>
-                                        </label>
-                                    </items>
-                                </group>
-                            </items>
-                            <edgeInsets key="margins" left="1" right="1" top="0.0" bottom="0.0"/>
-                        </group>
-                        <group width="1" height="2" alignment="left" verticalAlignment="bottom" radius="0.0" spacing="0.0" id="9DQ-Bn-k5Y" userLabel="progress Group">
-                            <color key="backgroundColor" red="0.92549019610000005" green="0.43529411759999997" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                        </group>
-                    </items>
-                    <edgeInsets key="margins" left="0.0" right="0.0" top="0.0" bottom="0.0"/>
-                    <connections>
-                        <outlet property="durationLabel" destination="D0h-cq-wsv" id="3AN-YZ-yEj"/>
-                        <outlet property="playElementsGroup" destination="uwS-0S-Ag2" id="aJc-Db-Z3L"/>
-                        <outlet property="playPauseButton" destination="BAZ-aC-ETt" id="X17-bz-cFy"/>
-                        <outlet property="playPauseButtonGroup" destination="21n-1o-3T6" id="piE-Uf-NeC"/>
-                        <outlet property="progressObject" destination="9DQ-Bn-k5Y" id="LK1-eS-RGv"/>
-                        <outlet property="skipBackwardButton" destination="uKa-8V-C8x" id="88k-O6-fq3"/>
-                        <outlet property="skipForwardButton" destination="w8s-Mc-7oV" id="E9p-we-dPi"/>
-                        <outlet property="titleLabel" destination="H58-Y8-Tbc" id="xZs-ZW-Shj"/>
-                        <outlet property="volumeSlider" destination="WNd-eJ-DzK" id="IyP-bA-Qmf"/>
-                    </connections>
-                </controller>
-            </objects>
-            <point key="canvasLocation" x="221" y="605"/>
-        </scene>
-    </scenes>
-    <color key="tintColor" red="0.92549019610000005" green="0.43529411759999997" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-</document>

二进制
VLC for iOS WatchKit App/Images.xcassets/AllFiles.imageset/AllFiles@2x.png


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

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "AllFiles@2x.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon24@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon27.5@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon29@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon29@3x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon40@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon44@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon86@2x.png


二进制
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/AppIcon98@2x.png


+ 0 - 70
VLC for iOS WatchKit App/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -1,70 +0,0 @@
-{
-  "images" : [
-    {
-      "size" : "24x24",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon24@2x.png",
-      "role" : "notificationCenter",
-      "subtype" : "38mm"
-    },
-    {
-      "size" : "27.5x27.5",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon27.5@2x.png",
-      "role" : "notificationCenter",
-      "subtype" : "42mm"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "watch",
-      "filename" : "AppIcon29@2x.png",
-      "role" : "companionSettings",
-      "scale" : "2x"
-    },
-    {
-      "size" : "29x29",
-      "idiom" : "watch",
-      "filename" : "AppIcon29@3x.png",
-      "role" : "companionSettings",
-      "scale" : "3x"
-    },
-    {
-      "size" : "40x40",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon40@2x.png",
-      "role" : "appLauncher",
-      "subtype" : "38mm"
-    },
-    {
-      "size" : "44x44",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon44@2x.png",
-      "role" : "longLook",
-      "subtype" : "42mm"
-    },
-    {
-      "size" : "86x86",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon86@2x.png",
-      "role" : "quickLook",
-      "subtype" : "38mm"
-    },
-    {
-      "size" : "98x98",
-      "idiom" : "watch",
-      "scale" : "2x",
-      "filename" : "AppIcon98@2x.png",
-      "role" : "quickLook",
-      "subtype" : "42mm"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

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

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "MusicAlbums@2x.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/MusicAlbums.imageset/MusicAlbums@2x.png


+ 0 - 21
VLC for iOS WatchKit App/Images.xcassets/TVShows.imageset/Contents.json

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "TVShows@2x.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/TVShows.imageset/TVShows@2x.png


+ 0 - 21
VLC for iOS WatchKit App/Images.xcassets/backward.imageset/Contents.json

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "backward.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/backward.imageset/backward.png


+ 0 - 21
VLC for iOS WatchKit App/Images.xcassets/forward.imageset/Contents.json

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "forward.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/forward.imageset/forward.png


+ 0 - 22
VLC for iOS WatchKit App/Images.xcassets/pause.imageset/Contents.json

@@ -1,22 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "pause.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode",
-    "template-rendering-intent" : "original"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/pause.imageset/pause.png


+ 0 - 21
VLC for iOS WatchKit App/Images.xcassets/play.imageset/Contents.json

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "play.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit App/Images.xcassets/play.imageset/play.png


二进制
VLC for iOS WatchKit App/Images.xcassets/vlcCone.imageset/AppIcon76x76@2x.png


+ 0 - 21
VLC for iOS WatchKit App/Images.xcassets/vlcCone.imageset/Contents.json

@@ -1,21 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "AppIcon76x76@2x.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

+ 0 - 35
VLC for iOS WatchKit App/Info.plist

@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleDisplayName</key>
-	<string>VLC</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>VLC</string>
-	<key>CFBundlePackageType</key>
-	<string>APPL</string>
-	<key>CFBundleShortVersionString</key>
-	<string>2.7.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>UISupportedInterfaceOrientations</key>
-	<array>
-		<string>UIInterfaceOrientationPortrait</string>
-		<string>UIInterfaceOrientationPortraitUpsideDown</string>
-	</array>
-	<key>WKCompanionAppBundleIdentifier</key>
-	<string>org.videolan.vlc-ios</string>
-	<key>WKWatchKitApp</key>
-	<true/>
-</dict>
-</plist>

+ 0 - 1
VLC for iOS WatchKit Extension/Images.xcassets/README__ignoredByTemplate__

@@ -1 +0,0 @@
-Did you know that git does not support storing empty directories?

+ 0 - 22
VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/Contents.json

@@ -1,22 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "scale" : "1x",
-      "filename" : "tableview-gradient.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "2x",
-      "filename" : "tableview-gradient@2x.png"
-    },
-    {
-      "idiom" : "universal",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

二进制
VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/tableview-gradient.png


二进制
VLC for iOS WatchKit Extension/Images.xcassets/tableview-gradient.imageset/tableview-gradient@2x.png


+ 0 - 38
VLC for iOS WatchKit Extension/Info.plist

@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>CFBundleDevelopmentRegion</key>
-	<string>en</string>
-	<key>CFBundleDisplayName</key>
-	<string>VLC for iOS WatchKit Extension</string>
-	<key>CFBundleExecutable</key>
-	<string>$(EXECUTABLE_NAME)</string>
-	<key>CFBundleIdentifier</key>
-	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-	<key>CFBundleInfoDictionaryVersion</key>
-	<string>6.0</string>
-	<key>CFBundleName</key>
-	<string>$(PRODUCT_NAME)</string>
-	<key>CFBundlePackageType</key>
-	<string>XPC!</string>
-	<key>CFBundleShortVersionString</key>
-	<string>2.7.0</string>
-	<key>CFBundleSignature</key>
-	<string>????</string>
-	<key>CFBundleVersion</key>
-	<string>1</string>
-	<key>NSExtension</key>
-	<dict>
-		<key>NSExtensionAttributes</key>
-		<dict>
-			<key>WKAppBundleIdentifier</key>
-			<string>org.videolan.vlc-ios.watchkitapp</string>
-		</dict>
-		<key>NSExtensionPointIdentifier</key>
-		<string>com.apple.watchkit</string>
-	</dict>
-	<key>RemoteInterfacePrincipalClass</key>
-	<string>VLCPlaylistInterfaceController</string>
-</dict>
-</plist>

+ 0 - 19
VLC for iOS WatchKit Extension/NSManagedObjectContext+refreshAll.h

@@ -1,19 +0,0 @@
-/*****************************************************************************
- * NSManagedObjectContext+refreshAll.h
- * 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 <CoreData/CoreData.h>
-
-@interface NSManagedObjectContext (refreshAll)
-// mergeChanges has same sematics as - (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag;
-- (void)vlc_refreshAllObjectsMerge:(BOOL)mergeChanges;
-@end

+ 0 - 22
VLC for iOS WatchKit Extension/NSManagedObjectContext+refreshAll.m

@@ -1,22 +0,0 @@
-/*****************************************************************************
- * NSManagedObjectContext+refreshAll.m
- * 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 "NSManagedObjectContext+refreshAll.h"
-
-@implementation NSManagedObjectContext (refreshAll)
-- (void)vlc_refreshAllObjectsMerge:(BOOL)mergeChanges
-{
-    for (NSManagedObject *object in self.registeredObjects) {
-        [self refreshObject:object mergeChanges:mergeChanges];
-    }
-}
-@end

+ 0 - 32
VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch

@@ -1,32 +0,0 @@
-/*****************************************************************************
- * Prefix header for all source files of the 'VLC for iOS WK Ext' target
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Authors: Felix Paul Kühne <fkuehne # videolan.org>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import <Availability.h>
-
-#ifndef __IPHONE_8_2
-#error "This project uses features only available in iOS SDK 8.2 and later."
-#endif
-
-#ifdef __OBJC__
-    #import <UIKit/UIKit.h>
-    #import <Foundation/Foundation.h>
-#endif
-
-#import <MediaLibraryKit/MediaLibraryKit.h>
-
-#import "VLCConstants.h"
-
-#ifndef NDEBUG
-#define APLog(format, ...) NSLog(format, ## __VA_ARGS__)
-#else
-#define APLog(format, ...)
-#endif

+ 0 - 10
VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension.entitlements

@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>com.apple.security.application-groups</key>
-	<array>
-		<string>group.org.videolan.vlc-ios</string>
-	</array>
-</dict>
-</plist>

+ 0 - 29
VLC for iOS WatchKit Extension/VLCBaseInterfaceController.h

@@ -1,29 +0,0 @@
-/*****************************************************************************
- * VLCBaseInterfaceController.h
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import <WatchKit/WatchKit.h>
-
-@interface VLCBaseInterfaceController : WKInterfaceController
-@property (nonatomic, assign, readonly, getter=isActivated) BOOL activated;
-
-- (void)addNowPlayingMenu;
-- (void)showNowPlaying:(id)sender;
-
-
-// calls updataData if interface is currenlty active
-// otherwise it sets a flag so update data when the interface is activated
-- (void)setNeedsUpdateData;
-
-// actual update logic should be overwritten by subclasses that needs an update logic
-- (void)updateData;
-
-@end

+ 0 - 74
VLC for iOS WatchKit Extension/VLCBaseInterfaceController.m

@@ -1,74 +0,0 @@
-/*****************************************************************************
- * VLCBaseInterfaceController.m
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import "VLCBaseInterfaceController.h"
-
-static NSString *const VLCDBUpdateNotification = @"VLCUpdateDataBase";
-
-@interface VLCBaseInterfaceController()
-@property (nonatomic) BOOL needsUpdate;
-
-@end
-
-@implementation VLCBaseInterfaceController
-
-- (void)awakeWithContext:(id)context {
-    [super awakeWithContext:context];
-
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setNeedsUpdateData) name:VLCDBUpdateNotification object:nil];
-}
-
-- (void) dealloc {
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:VLCDBUpdateNotification object:nil];
-}
-
-
-- (void)addNowPlayingMenu {
-    [self addMenuItemWithItemIcon:WKMenuItemIconMore title: NSLocalizedString(@"NOW_PLAYING", nil) action:@selector(showNowPlaying:)];
-}
-
-- (void)showNowPlaying:(id)sender {
-    [self presentControllerWithName:@"nowPlaying" context:nil];
-}
-
-
-- (void)willActivate {
-    [super willActivate];
-    _activated = YES;
-
-    [self updateDataIfNeeded];
-}
-- (void)didDeactivate {
-    [super didDeactivate];
-    _activated = NO;
-}
-
-- (void)setNeedsUpdateData
-{
-    self.needsUpdate = YES;
-    [self updateDataIfNeeded];
-}
-- (void)updateDataIfNeeded
-{
-    // if not activated/visible we defer the update til activation
-    if (self.needsUpdate && self.activated) {
-        [self updateData];
-        self.needsUpdate = NO;
-    }
-}
-
-- (void)updateData
-{
-    self.needsUpdate = NO;
-}
-
-@end

+ 0 - 29
VLC for iOS WatchKit Extension/VLCDetailInterfaceController.h

@@ -1,29 +0,0 @@
-/*****************************************************************************
- * VLCDetailInterfaceController.h
- * 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/WatchKit.h>
-#import <Foundation/Foundation.h>
-#import "VLCBaseInterfaceController.h"
-
-@interface VLCDetailInterfaceController : VLCBaseInterfaceController
-@property (weak, nonatomic) IBOutlet WKInterfaceLabel *titleLabel;
-@property (weak, nonatomic) IBOutlet WKInterfaceLabel *durationLabel;
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *playNowButton;
-@property (weak, nonatomic) IBOutlet WKInterfaceGroup *group;
-@property (weak, nonatomic) IBOutlet WKInterfaceObject *progressObject;
-
-@property (copy, nonatomic) NSString *mediaTitle;
-@property (copy, nonatomic) NSString *mediaDuration;
-@property (nonatomic) CGFloat playbackProgress;
-
-- (IBAction)playNow;
-@end

+ 0 - 123
VLC for iOS WatchKit Extension/VLCDetailInterfaceController.m

@@ -1,123 +0,0 @@
-/*****************************************************************************
- * VLCDetailInterfaceController.m
- * 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 "VLCDetailInterfaceController.h"
-#import "VLCTime.h"
-#import "VLCThumbnailsCache.h"
-#import "WKInterfaceObject+VLCProgress.h"
-#import "VLCWatchMessage.h"
-#import "VLCConstants.h"
-
-@interface VLCDetailInterfaceController ()
-@property (nonatomic, weak) NSManagedObject *managedObject;
-@end
-
-@implementation VLCDetailInterfaceController
-
-- (void)awakeWithContext:(id)context {
-    [super awakeWithContext:context];
-    self.title = NSLocalizedString(@"DETAIL", nil);
-    self.playNowButton.accessibilityLabel = NSLocalizedString(@"PLAY_NOW", nil);
-    self.titleLabel.accessibilityLabel = NSLocalizedString(@"TITLE", nil);
-    self.durationLabel.accessibilityLabel = NSLocalizedString(@"DURATION", nil);
-
-    [self addNowPlayingMenu];
-    [self configureWithFile:context];
-}
-
-- (void)updateData {
-    [super updateData];
-    NSManagedObject *managedObject = self.managedObject;
-    [managedObject.managedObjectContext refreshObject:managedObject mergeChanges:NO];
-    [self configureWithFile:managedObject];
-}
-
-- (void)configureWithFile:(NSManagedObject *)managedObject {
-    self.managedObject = managedObject;
-
-    NSString *title = nil;
-    NSString *durationString = nil;
-
-    float playbackProgress = 0.0;
-    if ([managedObject isKindOfClass:[MLShowEpisode class]]) {
-        title = ((MLShowEpisode *)managedObject).name;
-    } else if ([managedObject isKindOfClass:[MLFile class]]) {
-        MLFile *file = (MLFile *)managedObject;
-        durationString =  [VLCTime timeWithNumber:file.duration].stringValue;
-        playbackProgress = file.lastPosition.floatValue;
-        title = ((MLFile *)file).title;
-    } else if ([managedObject isKindOfClass:[MLAlbumTrack class]]) {
-        title = ((MLAlbumTrack *)managedObject).title;
-    } else {
-        NSAssert(NO, @"check what filetype we try to show here and add it above");
-    }
-
-    BOOL playEnabled = managedObject != nil;
-    self.playNowButton.enabled = playEnabled;
-
-    self.mediaTitle = title;
-    self.mediaDuration = durationString;
-    self.playbackProgress = playbackProgress;
-
-    /* do not block the main thread */
-    [self performSelectorInBackground:@selector(loadThumbnailForManagedObject:) withObject:managedObject];
-}
-
-- (void)loadThumbnailForManagedObject:(NSManagedObject *)managedObject
-{
-    UIImage *thumbnail = [VLCThumbnailsCache thumbnailForManagedObject:managedObject];
-    if (thumbnail) {
-        [self.group performSelectorOnMainThread:@selector(setBackgroundImage:) withObject:thumbnail waitUntilDone:NO];
-    }
-}
-
-- (IBAction)playNow {
-
-    id payload = self.managedObject.objectID.URIRepresentation.absoluteString;
-    NSDictionary *dict = [VLCWatchMessage messageDictionaryForName:@"playFile"
-                                                           payload:payload];
-    [self updateUserActivity:kVLCUserActivityPlaying userInfo:@{@"playingmedia":self.managedObject.objectID.URIRepresentation} webpageURL:nil];
-
-    [WKInterfaceController openParentApplication:dict reply:^(NSDictionary *replyInfo, NSError *error) {
-        [self showNowPlaying:nil];
-    }];
-}
-
-- (void)setMediaTitle:(NSString *)mediaTitle {
-    if (![_mediaTitle isEqualToString:mediaTitle]) {
-        _mediaTitle = [mediaTitle copy];
-        self.titleLabel.text = mediaTitle;
-        self.titleLabel.accessibilityValue = mediaTitle;
-        self.titleLabel.hidden = mediaTitle.length == 0;
-    }
-}
-
-- (void)setMediaDuration:(NSString *)mediaDuration {
-    if (![_mediaDuration isEqualToString:mediaDuration]) {
-        _mediaDuration = [mediaDuration copy];
-        self.durationLabel.text = mediaDuration;
-        self.durationLabel.hidden = mediaDuration.length == 0;
-        self.durationLabel.accessibilityValue = mediaDuration;
-    }
-}
-
-- (void)setPlaybackProgress:(CGFloat)playbackProgress {
-    if (_playbackProgress != playbackProgress) {
-        _playbackProgress = playbackProgress;
-        [self.progressObject vlc_setProgress:playbackProgress hideForNoProgress:YES];
-    }
-}
-
-@end
-
-
-

+ 0 - 33
VLC for iOS WatchKit Extension/VLCNowPlayingInterfaceController.h

@@ -1,33 +0,0 @@
-/*****************************************************************************
- * VLCNowPlayingInterfaceController.h
- * 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/WatchKit.h>
-#import <Foundation/Foundation.h>
-
-@interface VLCNowPlayingInterfaceController : WKInterfaceController
-@property (weak, nonatomic) IBOutlet WKInterfaceGroup *playElementsGroup;
-@property (weak, nonatomic) IBOutlet WKInterfaceLabel *titleLabel;
-@property (weak, nonatomic) IBOutlet WKInterfaceLabel *durationLabel;
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *skipBackwardButton;
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *playPauseButton;
-@property (weak, nonatomic) IBOutlet WKInterfaceGroup *playPauseButtonGroup;
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *skipForwardButton;
-@property (weak, nonatomic) IBOutlet WKInterfaceObject *progressObject;
-@property (weak, nonatomic) IBOutlet WKInterfaceSlider *volumeSlider;
-
-- (IBAction)playPausePressed;
-- (IBAction)skipForward;
-- (IBAction)skipBackward;
-- (IBAction)volumeSliderChanged:(float)value;
-
-
-@end

+ 0 - 208
VLC for iOS WatchKit Extension/VLCNowPlayingInterfaceController.m

@@ -1,208 +0,0 @@
-/*****************************************************************************
- * VLCNowPlayingInterfaceController.m
- * 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 "VLCNowPlayingInterfaceController.h"
-#import <MediaPlayer/MediaPlayer.h>
-#import "VLCTime.h"
-#import "VLCNotificationRelay.h"
-#import "WKInterfaceObject+VLCProgress.h"
-#import "VLCWatchMessage.h"
-#import "VLCThumbnailsCache.h"
-
-@interface VLCNowPlayingInterfaceController ()
-{
-    CGRect _screenBounds;
-    CGFloat _screenScale;
-}
-@property (nonatomic, copy) NSString *titleString;
-@property (nonatomic, copy) NSNumber *playBackDurationNumber;
-@property (nonatomic, getter=isPlaying) BOOL playing;
-@property (nonatomic) NSTimer *updateTimer;
-@property (nonatomic, weak) MLFile *currentFile;
-@property (nonatomic) float volume;
-@end
-
-@implementation VLCNowPlayingInterfaceController
-
-- (void)awakeWithContext:(id)context {
-    [super awakeWithContext:context];
-
-    WKInterfaceDevice *currentDevice = [WKInterfaceDevice currentDevice];
-    _screenBounds = currentDevice.screenBounds;
-    _screenScale = currentDevice.screenScale;
-
-    [self setTitle:NSLocalizedString(@"PLAYING", nil)];
-    self.skipBackwardButton.accessibilityLabel = NSLocalizedString(@"BWD_BUTTON", nil);
-    self.skipForwardButton.accessibilityLabel = NSLocalizedString(@"FWD_BUTTON", nil);
-    self.volumeSlider.accessibilityLabel = NSLocalizedString(@"VOLUME", nil);
-    self.durationLabel.accessibilityLabel = NSLocalizedString(@"DURATION", nil);
-    self.titleLabel.accessibilityLabel = NSLocalizedString(@"TITLE", nil);
-
-    [self setPlaying:YES];
-
-    [self requestNowPlayingInfo];
-    [[VLCNotificationRelay sharedRelay] addRelayRemoteName:@"org.videolan.ios-app.nowPlayingInfoUpdate" toLocalName:@"nowPlayingInfoUpdate"];
-}
-
-- (void)willActivate {
-    // This method is called when watch view controller is about to be visible to user
-    [super willActivate];
-
-    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestNowPlayingInfo) name:@"nowPlayingInfoUpdate" object:nil];
-    [self requestNowPlayingInfo];
-
-    const NSTimeInterval updateInterval = 5;
-    self.updateTimer = [NSTimer scheduledTimerWithTimeInterval:updateInterval
-                                                        target:self
-                                                      selector:@selector(requestNowPlayingInfo)
-                                                      userInfo:nil
-                                                       repeats:YES];
-}
-- (void)didDeactivate {
-    // This method is called when watch view controller is no longer visible
-    [super didDeactivate];
-    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"nowPlayingInfoUpdate" object:nil];
-    [self.updateTimer invalidate];
-    self.updateTimer = nil;
-}
-
-- (void)requestNowPlayingInfo {
-    [WKInterfaceController openParentApplication:[VLCWatchMessage messageDictionaryForName:VLCWatchMessageNameGetNowPlayingInfo] reply:^(NSDictionary *replyInfo, NSError *error) {
-        MLFile *file = nil;
-        NSString *uriString = replyInfo[@"URIRepresentation"];
-        if (uriString) {
-            NSURL *uriRepresentation = [NSURL URLWithString:uriString];
-            file = [MLFile fileForURIRepresentation:uriRepresentation];
-        }
-        [self updateWithNowPlayingInfo:replyInfo[@"nowPlayingInfo"] andFile:file];
-        NSNumber *currentVolume = replyInfo[@"volume"];
-        if (currentVolume) {
-            self.volume = currentVolume.floatValue;
-        }
-    }];
-}
-
-- (void)updateWithNowPlayingInfo:(NSDictionary*)nowPlayingInfo andFile:(MLFile*)file {
-    self.titleString = file.title ?: nowPlayingInfo[MPMediaItemPropertyTitle];
-
-    NSNumber *duration = file.duration;
-    if (!duration) {
-        duration = nowPlayingInfo[MPMediaItemPropertyPlaybackDuration];
-        float durationFloat = duration.floatValue;
-        duration = @(durationFloat*1000);
-    }
-
-    NSNumber *playbackTime = nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime];
-    float playbackTimeFloat = playbackTime.floatValue; // seconds
-    float durationFloat = duration.floatValue; // milliseconds
-    durationFloat/=1000; // seconds
-
-    [self.progressObject vlc_setProgressFromPlaybackTime:playbackTimeFloat duration:durationFloat hideForNoProgess:YES];
-
-    self.playBackDurationNumber = duration;
-
-    NSNumber *rate = nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate];
-    self.playing = rate.floatValue > 0.0;
-
-    if ([self.currentFile isEqual:file]) {
-        self.currentFile = file;
-        /* do not block */
-        [self performSelectorInBackground:@selector(loadThumbnailForFile:) withObject:file];
-    }
-}
-
-- (void)loadThumbnailForFile:(MLFile *)file
-{
-    UIImage *image = [VLCThumbnailsCache thumbnailForManagedObject:file toFitRect:CGRectMake(0., 0., _screenBounds.size.width * _screenScale, _screenBounds.size.height * _screenScale) shouldReplaceCache:NO];
-
-    [self.playElementsGroup performSelectorOnMainThread:@selector(setBackgroundImage:) withObject:image waitUntilDone:NO];
-}
-
-- (IBAction)playPausePressed {
-    NSDictionary *dict = [VLCWatchMessage messageDictionaryForName:VLCWatchMessageNamePlayPause];
-    [WKInterfaceController openParentApplication:dict reply:^(NSDictionary *replyInfo, NSError *error) {
-        NSNumber *playing = replyInfo[@"playing"];
-        if ([playing isKindOfClass:[NSNumber class]]) {
-            self.playing = playing.boolValue;
-        } else {
-            self.playing = !self.playing;
-        }
-        if (error)
-            NSLog(@"playpause failed with reply %@ error: %@",replyInfo,error);
-    }];
-}
-
-- (IBAction)skipForward {
-    NSDictionary *dict = [VLCWatchMessage messageDictionaryForName:VLCWatchMessageNameSkipForward];
-
-    [WKInterfaceController openParentApplication:dict reply:^(NSDictionary *replyInfo, NSError *error) {
-        if (error)
-            NSLog(@"skipForward failed with reply %@ error: %@",replyInfo,error);
-    }];
-}
-
-- (IBAction)skipBackward {
-    NSDictionary *dict = [VLCWatchMessage messageDictionaryForName:VLCWatchMessageNameSkipBackward];
-
-    [WKInterfaceController openParentApplication:dict reply:^(NSDictionary *replyInfo, NSError *error) {
-        if (error)
-            NSLog(@"skipBackward failed with reply %@ error: %@",replyInfo,error);
-    }];
-}
-
-- (IBAction)volumeSliderChanged:(float)value {
-    _volume = value;
-    NSDictionary *dict = [VLCWatchMessage messageDictionaryForName:VLCWatchMessageNameSetVolume
-                                                           payload:@(value)];
-    [WKInterfaceController openParentApplication:dict reply:^(NSDictionary *replyInfo, NSError *error) {
-        if (error)
-            NSLog(@"setVolume failed with reply %@ error: %@",replyInfo,error);
-    }];
-}
-
-
-- (void)setVolume:(float)volume
-{
-    if (_volume != volume) {
-        _volume = volume;
-        self.volumeSlider.value = volume;
-    }
-}
-
-- (void)setPlaying:(BOOL)playing {
-    if (_playing != playing) {
-        [self.playPauseButtonGroup setBackgroundImageNamed:playing? @"pause":@"play"];
-        self.playPauseButton.accessibilityLabel = playing ? NSLocalizedString(@"PAUSE_BUTTON", nil) : NSLocalizedString(@"PLAY_BUTTON", nil);
-        _playing = playing;
-    }
-}
-
-- (void)setTitleString:(NSString *)titleString {
-    if (![_titleString isEqualToString:titleString]) {
-        _titleString = [titleString copy];
-        self.titleLabel.text = titleString;
-        self.titleLabel.accessibilityValue = titleString;
-    }
-}
-
-- (void)setPlayBackDurationNumber:(NSNumber *)playBackDurationNumber {
-    if (![_playBackDurationNumber isEqualToNumber:playBackDurationNumber] || (_playBackDurationNumber==nil && playBackDurationNumber)) {
-        _playBackDurationNumber = playBackDurationNumber;
-        NSString *durationString = [VLCTime timeWithNumber:playBackDurationNumber].stringValue;
-        self.durationLabel.text = durationString;
-        self.durationLabel.accessibilityValue = durationString;
-    }
-}
-
-@end
-
-

+ 0 - 29
VLC for iOS WatchKit Extension/VLCPlaylistInterfaceController.h

@@ -1,29 +0,0 @@
-/*****************************************************************************
- * VLCPlaylistInterfaceController.h
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Authors: Tobias Conradi <videolan # tobias-conradi.de>
- *          Carola Nitz <caro # videolan.org>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import <WatchKit/WatchKit.h>
-#import <Foundation/Foundation.h>
-
-#import "VLCBaseInterfaceController.h"
-
-@interface VLCPlaylistInterfaceController : VLCBaseInterfaceController
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *previousButton;
-@property (nonatomic, weak) IBOutlet WKInterfaceTable *table;
-@property (weak, nonatomic) IBOutlet WKInterfaceButton *nextButton;
-@property (weak, nonatomic) IBOutlet WKInterfaceGroup *emptyLibraryGroup;
-@property (weak, nonatomic) IBOutlet WKInterfaceLabel *emptyLibraryLabel;
-
-- (IBAction)previousPagePressed;
-- (IBAction)nextPagePressed;
-
-@end

+ 0 - 159
VLC for iOS WatchKit Extension/VLCPlaylistInterfaceController.m

@@ -1,159 +0,0 @@
-/*****************************************************************************
- * VLCPlaylistInterfaceController.m
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Authors: Tobias Conradi <videolan # tobias-conradi.de>
- *          Carola Nitz <caro # videolan.org>
- *          Felix Paul Kühne <fkuehne # videolan.org>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import "VLCPlaylistInterfaceController.h"
-#import "VLCRowController.h"
-
-#import "VLCNotificationRelay.h"
-#import "VLCWatchTableController.h"
-#import "NSManagedObjectContext+refreshAll.h"
-#import "MLMediaLibrary+playlist.h"
-
-static NSString *const rowType = @"mediaRow";
-static NSString *const VLCDBUpdateNotification = @"VLCUpdateDataBase";
-static NSString *const VLCDBUpdateNotificationRemote = @"org.videolan.ios-app.dbupdate";
-
-@interface VLCPlaylistInterfaceController()
-{
-    CGRect _thumbnailSize;
-    CGFloat _rowWidth;
-}
-
-@property (nonatomic, strong) VLCWatchTableController *tableController;
-@property (nonatomic) VLCLibraryMode libraryMode;
-@property (nonatomic) id groupObject;
-
-@end
-
-@implementation VLCPlaylistInterfaceController
-
-- (void)awakeWithContext:(id)context {
-    [super awakeWithContext:context];
-
-    MLMediaLibrary *mediaLibrary = [MLMediaLibrary sharedMediaLibrary];
-    mediaLibrary.additionalPersitentStoreOptions = @{NSReadOnlyPersistentStoreOption : @YES};
-
-    if (context == nil) {
-        self.libraryMode = VLCLibraryModeAllFiles;
-        [self setupMenuButtons];
-        self.title = NSLocalizedString(@"LIBRARY_ALL_FILES", nil);
-        self.emptyLibraryLabel.text = NSLocalizedString(@"EMPTY_LIBRARY", nil);
-    } else {
-        self.groupObject = context;
-        self.title = [self.groupObject name];
-        self.libraryMode = VLCLibraryModeFolder;
-    }
-    [self addNowPlayingMenu];
-
-    [[VLCNotificationRelay sharedRelay] addRelayRemoteName:VLCDBUpdateNotificationRemote toLocalName:VLCDBUpdateNotification];
-
-    /* setup table view controller */
-    VLCWatchTableController *tableController = [[VLCWatchTableController alloc] init];
-    tableController.table = self.table;
-    tableController.previousPageButton = self.previousButton;
-    tableController.nextPageButton = self.nextButton;
-    tableController.emptyLibraryInterfaceObjects = self.emptyLibraryGroup;
-    tableController.pageSize = 20;
-    tableController.rowType = rowType;
-
-    tableController.configureRowControllerWithObjectBlock = ^(id controller, id object) {
-        if ([controller respondsToSelector:@selector(configureWithMediaLibraryObject:)]) {
-            [controller configureWithMediaLibraryObject:object];
-        }
-    };
-    self.tableController = tableController;
-
-    [self updateData];
-}
-
-- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {
-    id object = self.tableController.displayedObjects[rowIndex];
-
-    if ([object isKindOfClass:[MLAlbum class]] || [object isKindOfClass:[MLLabel class]] || [object isKindOfClass:[MLShow class]]) {
-        [self pushControllerWithName:@"tableViewController" context:object];
-        NSString *folderRepresentation = [((NSManagedObject *)object).objectID.URIRepresentation absoluteString];
-        NSDictionary *userDict = @{@"state" : @(self.libraryMode),
-                                   @"folder" : folderRepresentation};
-
-        [self invalidateUserActivity];
-        [self updateUserActivity:kVLCUserActivityLibrarySelection
-                        userInfo:userDict
-                      webpageURL:nil];
-    } else {
-        [self pushControllerWithName:@"detailInfo" context:object];
-    }
-}
-
-- (IBAction)nextPagePressed {
-    [self.tableController nextPageButtonPressed];
-}
-
-- (IBAction)previousPagePressed {
-    [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:@"TVShows" title: NSLocalizedString(@"LIBRARY_SERIES", nil) action:@selector(switchToSeries)];
-}
-
-- (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];
-}
-
-#pragma mark - data handling
-
-- (void)updateData {
-    [super updateData];
-    NSManagedObjectContext *moc = [(NSManagedObject *)self.tableController.objects.firstObject managedObjectContext];
-    [moc vlc_refreshAllObjectsMerge:NO];
-    self.tableController.objects = [self mediaArray];
-}
-
-
-- (void)setLibraryMode:(VLCLibraryMode)libraryMode
-{
-    //should also handle diving into a folder
-    [self invalidateUserActivity];
-    [self updateUserActivity:kVLCUserActivityLibraryMode userInfo:@{@"state" : @(libraryMode)} webpageURL:nil];
-    _libraryMode = libraryMode;
-}
-
-- (NSArray *)mediaArray
-{
-    id groupObject = self.groupObject;
-    if (groupObject) {
-        return [[MLMediaLibrary sharedMediaLibrary] playlistArrayForGroupObject:groupObject];
-    } else {
-        return [[MLMediaLibrary sharedMediaLibrary] playlistArrayForLibraryMode:self.libraryMode];
-    }
-}
-
-@end

+ 0 - 27
VLC for iOS WatchKit Extension/VLCRowController.h

@@ -1,27 +0,0 @@
-/*****************************************************************************
- * VLCRowController.h
- * 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/WatchKit.h>
-@interface VLCRowController : NSObject
-@property (nonatomic, weak) IBOutlet WKInterfaceLabel *titleLabel;
-@property (nonatomic, weak) IBOutlet WKInterfaceGroup *group;
-@property (nonatomic, weak) IBOutlet WKInterfaceObject *progressObject;
-
-
-@property (nonatomic, copy) NSString *mediaTitle;
-@property (nonatomic) CGFloat playbackProgress;
-
-@property (nonatomic, weak, readonly) id mediaLibraryObject;
-
-- (void) configureWithMediaLibraryObject:(id)object;
-
-@end

+ 0 - 145
VLC for iOS WatchKit Extension/VLCRowController.m

@@ -1,145 +0,0 @@
-/*****************************************************************************
- * VLCRowController.m
- * 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 "VLCRowController.h"
-#import "WKInterfaceObject+VLCProgress.h"
-#import "VLCThumbnailsCache.h"
-
-@interface VLCRowController()
-@property (nonatomic, weak, readwrite) id mediaLibraryObject;
-@property (nonatomic, readonly) CGRect thumbnailSize;
-@property (nonatomic, readonly) CGFloat rowWidth;
-
-@property (nonatomic) UIImage *rawBackgroundImage;
-
-@end
-
-@implementation VLCRowController
-
-- (instancetype)init
-{
-    self = [super init];
-    if (self) {
-        [self calculateThumbnailSizeAndRowWidth];
-        _playbackProgress = -1;
-    }
-    return self;
-}
-
-- (void)calculateThumbnailSizeAndRowWidth
-{
-    WKInterfaceDevice *currentDevice = WKInterfaceDevice.currentDevice;
-    CGRect screenRect = currentDevice.screenBounds;
-    CGFloat screenScale = currentDevice.screenScale;
-    _thumbnailSize =  CGRectMake(0,
-                                       0,
-                                       screenRect.size.width * screenScale,
-                                       120. * screenScale
-                                       );
-    _rowWidth = screenRect.size.width * screenScale;
-}
-
-- (void)configureWithMediaLibraryObject:(id)storageObject
-{
-    NSString *title = nil;
-    float playbackProgress = 0.0;
-    NSString *objectType = nil;
-    if ([storageObject isKindOfClass:[MLShow class]]) {
-        objectType = NSLocalizedString(@"OBJECT_TYPE_SHOW", nil);
-        title = ((MLAlbum *)storageObject).name;
-    } else if ([storageObject isKindOfClass:[MLShowEpisode class]]) {
-        objectType = NSLocalizedString(@"OBJECT_TYPE_SHOW_EPISODE", nil);
-        title = ((MLShowEpisode *)storageObject).name;
-    } else if ([storageObject isKindOfClass:[MLLabel class]]) {
-        objectType = NSLocalizedString(@"OBJECT_TYPE_LABEL", nil);
-        title = ((MLLabel *)storageObject).name;
-    } else if ([storageObject isKindOfClass:[MLAlbum class]]) {
-        objectType = NSLocalizedString(@"OBJECT_TYPE_ALBUM", nil);
-        title = ((MLAlbum *)storageObject).name;
-    } else if ([storageObject isKindOfClass:[MLAlbumTrack class]]) {
-        objectType = NSLocalizedString(@"OBJECT_TYPE_ALBUM_TRACK", nil);
-        title = ((MLAlbumTrack *)storageObject).title;
-    } else if ([storageObject isKindOfClass:[MLFile class]]){
-        MLFile *file = (MLFile *)storageObject;
-        title = [file title];
-        playbackProgress = file.lastPosition.floatValue;
-        if (file.isSupportedAudioFile) {
-            objectType = NSLocalizedString(@"OBJECT_TYPE_FILE_AUDIO", nil);
-        } else {
-            objectType = NSLocalizedString(@"OBJECT_TYPE_FILE", nil);
-        }
-    }
-
-    self.titleLabel.accessibilityValue = objectType;
-    self.mediaTitle = title;
-    self.playbackProgress = playbackProgress;
-
-    /* FIXME: add placeholder image once designed */
-
-    if (storageObject != self.mediaLibraryObject) {
-        self.group.backgroundImage = [UIImage imageNamed:@"tableview-gradient"];
-    }
-
-    NSArray *array = @[self.group, storageObject];
-    [self performSelectorInBackground:@selector(backgroundThumbnailSetter:) withObject:array];
-
-    self.mediaLibraryObject = storageObject;
-}
-
-- (void)backgroundThumbnailSetter:(NSArray *)array
-{
-    UIImage *backgroundImage = [VLCThumbnailsCache thumbnailForManagedObject:array[1] toFitRect:_thumbnailSize shouldReplaceCache:YES];
-
-    // don't redo image processing if no necessary
-    if ([self.rawBackgroundImage isEqual:backgroundImage]) {
-        return;
-    }
-    self.rawBackgroundImage = backgroundImage;
-
-    UIImage *gradient = [UIImage imageNamed:@"tableview-gradient"];
-
-    CGSize newSize = backgroundImage ? backgroundImage.size : CGSizeMake(_rowWidth, 120.);
-    UIGraphicsBeginImageContext(newSize);
-
-    if (backgroundImage)
-        [backgroundImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
-    else {
-        [[UIColor darkGrayColor] set];
-        UIRectFill(CGRectMake(0., 0., newSize.width, newSize.height));
-    }
-
-    [gradient drawInRect:CGRectMake(0., 0., newSize.width, newSize.height / 2.) blendMode:kCGBlendModeNormal alpha:1.];
-
-    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
-
-    UIGraphicsEndImageContext();
-
-    [array.firstObject performSelectorOnMainThread:@selector(setBackgroundImage:) withObject:newImage waitUntilDone:NO];
-}
-
-- (void)setMediaTitle:(NSString *)mediaTitle {
-    if (![_mediaTitle isEqualToString:mediaTitle]) {
-        _mediaTitle = [mediaTitle copy];
-        self.titleLabel.text = mediaTitle;
-        self.accessibilityLabel = mediaTitle;
-        self.titleLabel.hidden = mediaTitle.length == 0;
-    }
-}
-
-- (void)setPlaybackProgress:(CGFloat)playbackProgress {
-    if (_playbackProgress != playbackProgress) {
-        _playbackProgress = playbackProgress;
-        [self.progressObject vlc_setProgress:playbackProgress hideForNoProgress:YES];
-    }
-}
-
-@end

+ 0 - 62
VLC for iOS WatchKit Extension/VLCWatchTableController.h

@@ -1,62 +0,0 @@
-/*****************************************************************************
- * VLCWatchTableController.h
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import <WatchKit/WatchKit.h>
-
-typedef NSString *(^VLCWatchTableControllerRowTypeForObjectBlock)(id object);
-typedef void(^VLCWatchTableControllerConfigureRowControllerWithObjectBlock)(id rowController, id object);
-
-@interface VLCWatchTableController : NSObject
-@property (nonatomic, weak) IBOutlet WKInterfaceTable *table;
-
-/* 
- * previous and next buttons are automatically hidden/shown depening on number
- * of objects, page size and the current page
- */
-@property (nonatomic, weak) IBOutlet WKInterfaceButton *previousPageButton;
-@property (nonatomic, weak) IBOutlet WKInterfaceButton *nextPageButton;
-
-
-/*
- * Interface object which will be shown when the objects array is empty;
- */
-@property (nonatomic, weak) IBOutlet WKInterfaceObject *emptyLibraryInterfaceObjects;
-
-/* 
- * set eigher rowType if every row should have the same rowType or the
- * rowTypeForObjectBlock which returns the matching row type for an object
- */
-@property (nonatomic, copy) NSString *rowType;
-@property (nonatomic, copy) VLCWatchTableControllerRowTypeForObjectBlock rowTypeForObjectBlock;
-
-@property (nonatomic, copy) VLCWatchTableControllerConfigureRowControllerWithObjectBlock configureRowControllerWithObjectBlock;
-
-@property (nonatomic, copy, readonly) NSArray *displayedObjects;
-@property (nonatomic, copy, readonly) NSIndexSet *displayedIndexes;
-
-/* does setting these does not trigger table update call updateTable manually to update table */
-@property (nonatomic, assign) NSUInteger pageSize;
-@property (nonatomic, assign) NSUInteger currentPage;
-/*
- * When the objects array changes it will figure out inserted and removed objects
- * and updates the table accoringly.
- */
-@property (nonatomic, copy) NSArray *objects;
-
-/* updates the table with the current configuration (pagesize, page, objects) */
-- (void)updateTable;
-
-- (IBAction)previousPageButtonPressed;
-- (IBAction)nextPageButtonPressed;
-
-
-@end

+ 0 - 172
VLC for iOS WatchKit Extension/VLCWatchTableController.m

@@ -1,172 +0,0 @@
-/*****************************************************************************
- * VLCWatchTableController.m
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import "VLCWatchTableController.h"
-
-
-@interface VLCWatchTableController()
-
-@property (nonatomic, copy, readwrite) NSArray *displayedObjects;
-@property (nonatomic, copy, readwrite) NSIndexSet *displayedIndexes;
-@property (nonatomic, copy, readwrite) NSArray *rowTypes;
-
-@end
-
-@implementation VLCWatchTableController
-
-
-- (void)setObjects:(NSArray *)objects {
-    _objects = [objects copy];
-    [self updateTable];
-}
-
-- (void)updateTable {
-
-    NSUInteger pageSize = self.pageSize;
-    NSUInteger currentPage = self.currentPage;
-    NSUInteger startIndex = self.currentPage*pageSize;
-    NSUInteger objectsCount = self.objects.count;
-
-    /* calculate a valid start index and reset current page if needed */
-    while (startIndex > objectsCount) {
-        if (startIndex < pageSize) {
-            startIndex = 0;
-            currentPage = 0;
-        } else {
-            startIndex -= pageSize;
-            currentPage--;
-        }
-    }
-
-    /* calculate valid end index */
-    NSUInteger endIndex = startIndex+pageSize;
-    if (endIndex > objectsCount) {
-        endIndex = objectsCount;
-    }
-
-    /* get new dispayed objects */
-    NSRange range = NSMakeRange(startIndex, endIndex-startIndex);
-    NSArray *newObjects = [self.objects subarrayWithRange:range];
-    NSSet *newSet = [[NSSet alloc] initWithArray:newObjects];
-
-    NSArray *oldObjects = self.displayedObjects;
-    NSSet *oldSet = [[NSSet alloc] initWithArray:oldObjects];
-
-    WKInterfaceTable *table = self.table;
-
-    NSMutableSet *addedSet = [NSMutableSet setWithSet:newSet];
-    [addedSet minusSet:oldSet];
-    NSMutableSet *removedSet = [NSMutableSet setWithSet:oldSet];
-    [removedSet minusSet:newSet];
-
-    BOOL differentRowTypes = self.rowTypeForObjectBlock != nil;
-    BOOL pageChange = startIndex != self.displayedIndexes.firstIndex;
-
-    NSMutableArray *rowTypes = differentRowTypes ? [NSMutableArray arrayWithCapacity:pageSize] : nil;
-
-    // we changed the page
-    if (pageChange) {
-        if (differentRowTypes) {
-            // TODO add support different rowtypes
-            NSAssert(NO,@"TODO add support different rowtypes");
-        } else {
-            NSUInteger oldCount = oldObjects.count;
-            NSUInteger newCount = newObjects.count;
-            // remove rows if now on smaller page
-            if (oldCount > newCount) {
-                NSRange range = NSMakeRange(newCount, oldCount-newCount);
-                NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
-                [table removeRowsAtIndexes:indexSet];
-            }
-            // add rows if now on bigger page
-            else if (oldCount < newCount) {
-                NSRange range = NSMakeRange(oldCount, newCount-oldCount);
-                NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:range];
-                [table insertRowsAtIndexes:indexSet withRowType:self.rowType];
-            }
-            [newObjects enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
-                [self _configureTableCellAtIndex:idx withObject:obj];
-            }];
-        }
-    }
-    // update on the same page
-    else {
-        NSMutableIndexSet *removeRowIndexes = [NSMutableIndexSet new];
-        [oldObjects enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
-            if ([removedSet containsObject:obj]) {
-                [removeRowIndexes addIndex:idx];
-            }
-        }];
-        [table removeRowsAtIndexes:removeRowIndexes];
-
-        [newObjects enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
-            if ([addedSet containsObject:obj]) {
-                NSString *rowType = [self _rowTypeForObject:obj];
-                [table insertRowsAtIndexes:[NSIndexSet indexSetWithIndex:idx] withRowType:rowType];
-            }
-            [self _configureTableCellAtIndex:idx withObject:obj];
-        }];
-    }
-
-    self.rowTypes = rowTypes;
-    self.displayedObjects = newObjects;
-    self.displayedIndexes = [NSIndexSet indexSetWithIndexesInRange:range];
-
-
-    /* set state for previous and next buttons */
-    self.previousPageButton.hidden = currentPage == 0;
-    self.nextPageButton.hidden = endIndex >= objectsCount;
-
-    self.emptyLibraryInterfaceObjects.hidden = newObjects.count != 0;
-}
-
-- (void)nextPageButtonPressed {
-    NSUInteger nextPageStartIndex = self.pageSize * (self.currentPage+1);
-    if (nextPageStartIndex > self.objects.count) {
-        return;
-    }
-    self.currentPage = self.currentPage+1;
-    [self updateTable];
-    [self.table scrollToRowAtIndex:0];
-}
-
-- (void)previousPageButtonPressed {
-    if (self.currentPage>0) {
-        self.currentPage = self.currentPage-1;
-        [self updateTable];
-    }
-    NSUInteger displayedCount = self.displayedObjects.count;
-    if (displayedCount) {
-        [self.table scrollToRowAtIndex:displayedCount-1];
-    }
-}
-
-#pragma mark - internal helper
-
-- (NSString *)_rowTypeForObject:(id)object {
-    if (self.rowTypeForObjectBlock) {
-        return self.rowTypeForObjectBlock(object);
-    }
-    NSAssert(self.rowType, @"Either rowTypeForObjectBlock or rowType must be set");
-    return self.rowType;
-}
-
-- (void)_configureTableCellAtIndex:(NSUInteger)index withObject:(id)object {
-    VLCWatchTableControllerConfigureRowControllerWithObjectBlock configureBlock = self.configureRowControllerWithObjectBlock;
-    NSAssert(configureBlock, @"configureRowControllerWithObjectBlock must be set");
-    if (configureBlock) {
-        id rowController = [self.table rowControllerAtIndex:index];
-        configureBlock(rowController, object);
-    }
-}
-
-@end

+ 0 - 22
VLC for iOS WatchKit Extension/WKInterfaceObject+VLCProgress.h

@@ -1,22 +0,0 @@
-/*****************************************************************************
- * WKInterfaceObject+VLCProgress.h
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import <WatchKit/WatchKit.h>
-
-@interface WKInterfaceObject (VLCProgress)
-
-- (void)vlc_setProgress:(float)progress;
-- (void)vlc_setProgress:(float)progress hideForNoProgress:(BOOL)hide;
-
-/* time and duration must be in the same timescale but we don't care about the scale*/
-- (void)vlc_setProgressFromPlaybackTime:(float)playbackTime duration:(float)duration hideForNoProgess:(BOOL)hide;
-@end

+ 0 - 39
VLC for iOS WatchKit Extension/WKInterfaceObject+VLCProgress.m

@@ -1,39 +0,0 @@
-/*****************************************************************************
- * WKInterfaceObject+VLCProgress.m
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2015 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Tobias Conradi <videolan # tobias-conradi.de>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
-
-#import "WKInterfaceObject+VLCProgress.h"
-
-@implementation WKInterfaceObject (VLCProgress)
-
--(void)vlc_setProgress:(float)progress
-{
-    float progressWidth = ceil(progress * CGRectGetWidth([WKInterfaceDevice currentDevice].screenBounds));
-    self.width = progressWidth;
-}
-
-- (void)vlc_setProgress:(float)progress hideForNoProgress:(BOOL)hideForNoProgress
-{
-    [self vlc_setProgress:progress];
-    BOOL noProgress = progress == 0.0;
-    self.hidden = noProgress && hideForNoProgress;
-}
-
-- (void)vlc_setProgressFromPlaybackTime:(float)playbackTime duration:(float)duration hideForNoProgess:(BOOL)hideForNoProgress
-{
-    float playbackProgress = 0.0;
-    if (playbackTime > 0.0 && duration > 0.0) {
-        playbackProgress = playbackTime / duration;
-    }
-    [self vlc_setProgress:playbackProgress hideForNoProgress:hideForNoProgress];
-}
-
-@end

+ 0 - 9
VLC for iOS WatchKit Extension/da.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Afspiller nu";
-"PLAY_NOW"="Afspil nu";
-"PLAYING"="Afspiller";
-"PAUSED"="Pauset";
-"DETAIL"="Detalje";
-"LIBRARY_ALL_FILES"="Alle filer";
-"LIBRARY_MUSIC"="Musikalbum";
-"LIBRARY_SERIES"="TV-udsendelser";
-"EMPTY_LIBRARY"="Tomt mediebibliotek";

+ 0 - 9
VLC for iOS WatchKit Extension/de.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Jetzt läuft";
-"PLAY_NOW"="Jetzt spielen";
-"PLAYING"="Es läuft";
-"PAUSED"="Pausiert";
-"DETAIL"="Details";
-"LIBRARY_ALL_FILES"="Alle Dateien";
-"LIBRARY_MUSIC"="Musikalben";
-"LIBRARY_SERIES"="TV-Sendungen";
-"EMPTY_LIBRARY"="Leere Mediathek";

+ 0 - 9
VLC for iOS WatchKit Extension/el.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Αναπαράγεται τώρα";
-"PLAY_NOW"="Αναπαραγωγή Τώρα";
-"PLAYING"="Αναπαράγεται";
-"PAUSED"="Σε παύση";
-"DETAIL"="Λεπτομέρειες";
-"LIBRARY_ALL_FILES"="Όλα τα αρχεία";
-"LIBRARY_MUSIC"="Μουσικά Άλμπουμ";
-"LIBRARY_SERIES"="Εκπομπές TV";
-"EMPTY_LIBRARY"="Άδεια Βιβλιοθήκη Μέσων";

+ 0 - 27
VLC for iOS WatchKit Extension/en.lproj/Localizable.strings

@@ -1,27 +0,0 @@
-"NOW_PLAYING"="Now Playing";
-"PLAY_NOW"="Play Now";
-"PLAYING"="Playing";
-"PAUSED"="Paused";
-"DETAIL"="Detail";
-"LIBRARY_ALL_FILES"="All Files";
-"LIBRARY_MUSIC"="Music Albums";
-"LIBRARY_SERIES"="TV Shows";
-"EMPTY_LIBRARY"="Empty Media Library";
-
-"BWD_BUTTON"="Jump Backwards";
-"FWD_BUTTON"="Jump Forwards";
-"PLAY_BUTTON"="Play";
-"PAUSE_BUTTON"="Pause";
-
-"VOLUME"="Volume";
-"DURATION"="Duration";
-"TITLE"="Title";
-
-// accessibility labels for the playlist
-"OBJECT_TYPE_SHOW"="Show";
-"OBJECT_TYPE_SHOW_EPISODE"="Show episode";
-"OBJECT_TYPE_LABEL"="Folder";
-"OBJECT_TYPE_ALBUM"="Album";
-"OBJECT_TYPE_ALBUM_TRACK"="Album track";
-"OBJECT_TYPE_FILE"="File";
-"OBJECT_TYPE_FILE_AUDIO"="Audio file";

+ 0 - 9
VLC for iOS WatchKit Extension/es.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Reproduciendo ahora";
-"PLAY_NOW"="Reproducir ahora";
-"PLAYING"="Reproduciendo";
-"PAUSED"="Pausado";
-"DETAIL"="Detalle";
-"LIBRARY_ALL_FILES"="Todos los archivos";
-"LIBRARY_MUSIC"="Álbumes de música";
-"LIBRARY_SERIES"="Programas de TV";
-"EMPTY_LIBRARY"="Biblioteca multimedia vacía";

+ 0 - 9
VLC for iOS WatchKit Extension/fi.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Nyt toistetaan";
-"PLAY_NOW"="Toista nyt";
-"PLAYING"="Toistetaan";
-"PAUSED"="Tauko";
-"DETAIL"="Lisätiedot";
-"LIBRARY_ALL_FILES"="Kaikki tiedostot";
-"LIBRARY_MUSIC"="Musiikkialbumit";
-"LIBRARY_SERIES"="TV-ohjelmat";
-"EMPTY_LIBRARY"="Mediakirjasto on tyhjä";

+ 0 - 9
VLC for iOS WatchKit Extension/fr.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Lecture en cours";
-"PLAY_NOW"="Lire";
-"PLAYING"="En cours de lecture";
-"PAUSED"="En pause";
-"DETAIL"="Détail";
-"LIBRARY_ALL_FILES"="Tous les fichiers";
-"LIBRARY_MUSIC"="Albums";
-"LIBRARY_SERIES"="Séries TV";
-"EMPTY_LIBRARY"="Bibliothèque de média vide";

+ 0 - 9
VLC for iOS WatchKit Extension/it.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="In riproduzione";
-"PLAY_NOW"="Riproduci ora";
-"PLAYING"="Riproduzione";
-"PAUSED"="In pausa";
-"DETAIL"="Dettagli";
-"LIBRARY_ALL_FILES"="Tutti i file";
-"LIBRARY_MUSIC"="Album musicali";
-"LIBRARY_SERIES"="Programmi televisivi";
-"EMPTY_LIBRARY"="Raccolta multimediale vuota";

+ 0 - 9
VLC for iOS WatchKit Extension/ja.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="再生中";
-"PLAY_NOW"="直ちに再生";
-"PLAYING"="再生中";
-"PAUSED"="一時停止";
-"DETAIL"="詳細";
-"LIBRARY_ALL_FILES"="すべてのファイル";
-"LIBRARY_MUSIC"="音楽アルバム";
-"LIBRARY_SERIES"="TVショー";
-"EMPTY_LIBRARY"="メディアライブラリが空です";

+ 0 - 9
VLC for iOS WatchKit Extension/nl.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Nu afspelend";
-"PLAY_NOW"="Nu afspelen";
-"PLAYING"="Afspelen";
-"PAUSED"="Gepauzeerd";
-"DETAIL"="Detail";
-"LIBRARY_ALL_FILES"="Alle bestanden";
-"LIBRARY_MUSIC"="Muziek-albums";
-"LIBRARY_SERIES"="Tv-shows";
-"EMPTY_LIBRARY"="Mediabibliotheek leeg";

+ 0 - 9
VLC for iOS WatchKit Extension/pt-PT.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Em reprodução";
-"PLAY_NOW"="Reproduzir agora";
-"PLAYING"="Reproduzindo";
-"PAUSED"="Em pausa";
-"DETAIL"="Detalhes";
-"LIBRARY_ALL_FILES"="Todos os Ficheiros";
-"LIBRARY_MUSIC"="Álbuns de Música";
-"LIBRARY_SERIES"="Programas de TV";
-"EMPTY_LIBRARY"="Biblioteca de Multimédia Sem Dados";

+ 0 - 9
VLC for iOS WatchKit Extension/ru.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Сейчас Воспроизводится";
-"PLAY_NOW"="Воспроизвести Сейчас";
-"PLAYING"="Проигрывается";
-"PAUSED"="Приостановлено";
-"DETAIL"="Информация";
-"LIBRARY_ALL_FILES"="Все файлы";
-"LIBRARY_MUSIC"="Музыка";
-"LIBRARY_SERIES"="ТВ-сериалы";
-"EMPTY_LIBRARY"="Медиатека пуста";

+ 0 - 9
VLC for iOS WatchKit Extension/sv.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Spelas upp nu";
-"PLAY_NOW"="Spela upp nu";
-"PLAYING"="Spelar upp";
-"PAUSED"="Pausad";
-"DETAIL"="Detaljer";
-"LIBRARY_ALL_FILES"="Alla filer";
-"LIBRARY_MUSIC"="Musikalbum";
-"LIBRARY_SERIES"="TV-program";
-"EMPTY_LIBRARY"="Tomt mediabibliotek";

+ 0 - 9
VLC for iOS WatchKit Extension/ta.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="இப்போ ஒடுவது ";
-"PLAY_NOW"="இப்போ ஒடு";
-"PLAYING"="ஒடுவது ";
-"PAUSED"="நிறுத்தபட்டது";
-"DETAIL"="தகவல்";
-"LIBRARY_ALL_FILES"="அனைத்து கோப்புகளும்";
-"LIBRARY_MUSIC"="இசைத் தொகுப்புகள்";
-"LIBRARY_SERIES"="தொலைக்காட்சி நிகழ்ச்சிகள்";
-"EMPTY_LIBRARY"="காலியான ஊடக நூலகம்";

+ 0 - 9
VLC for iOS WatchKit Extension/tr.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Şimdi Oynatılan";
-"PLAY_NOW"="Şimdi Oynat";
-"PLAYING"="Oynatılıyor";
-"PAUSED"="Duraklatıldı";
-"DETAIL"="Ayrıntı";
-"LIBRARY_ALL_FILES"="All Files";
-"LIBRARY_MUSIC"="Music Albums";
-"LIBRARY_SERIES"="TV Shows";
-"EMPTY_LIBRARY"="Ortam Kitaplığı Boş";

+ 0 - 9
VLC for iOS WatchKit Extension/uk.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="Зараз відтворюється";
-"PLAY_NOW"="Відтворити зараз";
-"PLAYING"="Відтворюється";
-"PAUSED"="Призупинено";
-"DETAIL"="Подробиці";
-"LIBRARY_ALL_FILES"="Усі файли";
-"LIBRARY_MUSIC"="Музичні альбоми";
-"LIBRARY_SERIES"="Серіали";
-"EMPTY_LIBRARY"="Порожня бібліотека медіа";

+ 0 - 9
VLC for iOS WatchKit Extension/zh-Hans.lproj/Localizable.strings

@@ -1,9 +0,0 @@
-"NOW_PLAYING"="正在播放";
-"PLAY_NOW"="立即播放";
-"PLAYING"="正在播放";
-"PAUSED"="已暂停";
-"DETAIL"="详情";
-"LIBRARY_ALL_FILES"="所有文件";
-"LIBRARY_MUSIC"="唱片专辑";
-"LIBRARY_SERIES"="电视节目";
-"EMPTY_LIBRARY"="媒体库为空";

+ 9 - 594
VLC for iOS.xcodeproj/project.pbxproj

@@ -48,12 +48,6 @@
 		4144C4661A0ED6C700918C89 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D3784E6183A99E1009EE944 /* Reachability.m */; };
 		4171D35018A2C19000A16EF9 /* VLCFolderCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 4171D34F18A2C19000A16EF9 /* VLCFolderCollectionViewFlowLayout.m */; };
 		4171D35818A2D90200A16EF9 /* LXReorderableCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 4171D35718A2D90200A16EF9 /* LXReorderableCollectionViewFlowLayout.m */; };
-		4173AEA61ABF1B850004101D /* VLCPlaylistInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4173AEA51ABF1B850004101D /* VLCPlaylistInterfaceController.m */; };
-		4173AEA81ABF1B850004101D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4173AEA71ABF1B850004101D /* Images.xcassets */; };
-		4173AEAC1ABF1B850004101D /* VLC for iOS WatchKit App.app in Resources */ = {isa = PBXBuildFile; fileRef = 4173AEAB1ABF1B850004101D /* VLC for iOS WatchKit App.app */; };
-		4173AEB41ABF1B860004101D /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4173AEB21ABF1B860004101D /* Interface.storyboard */; };
-		4173AEB61ABF1B860004101D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4173AEB51ABF1B860004101D /* Images.xcassets */; };
-		4173AEB91ABF1B860004101D /* VLC for iOS WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 4173AEA01ABF1B850004101D /* VLC for iOS WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		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 */; };
@@ -71,7 +65,6 @@
 		7D00161C177056B700649F27 /* main.js in Resources */ = {isa = PBXBuildFile; fileRef = 7D00161A17704DAC00649F27 /* main.js */; };
 		7D0117F1187F4BA400C5671C /* VLCFirstStepsFirstPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D0117F0187F4BA400C5671C /* VLCFirstStepsFirstPageViewController~ipad.xib */; };
 		7D0363AC1B2F325500CC0343 /* MediaLibrary.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 7D0363A71B2F325500CC0343 /* MediaLibrary.xcdatamodeld */; };
-		7D0363AD1B2F325500CC0343 /* MediaLibrary.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 7D0363A71B2F325500CC0343 /* MediaLibrary.xcdatamodeld */; };
 		7D1052E91A4DCC1100295F08 /* VLCOneDriveTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1052E81A4DCC1100295F08 /* VLCOneDriveTableViewController.m */; };
 		7D1052EE1A4DCD1E00295F08 /* VLCOneDriveController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1052ED1A4DCD1E00295F08 /* VLCOneDriveController.m */; };
 		7D1276621AADA0E600F0260C /* VLCMultiSelectionMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D1276611AADA0E600F0260C /* VLCMultiSelectionMenuView.m */; };
@@ -86,12 +79,9 @@
 		7D27EC2B19DF310300EF0370 /* VLCFirstStepsSecondPageViewController~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D27EC2919DF310300EF0370 /* VLCFirstStepsSecondPageViewController~ipad.xib */; };
 		7D27EC2C19DF310300EF0370 /* VLCFirstStepsSecondPageViewController~iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D27EC2A19DF310300EF0370 /* VLCFirstStepsSecondPageViewController~iphone.xib */; };
 		7D298F441AD5827E00A0BF68 /* WatchKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDF157B31ACB169B00AAFBC6 /* WatchKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		7D298F451AD58A0700A0BF68 /* UIImage+Blur.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D168F7318D4A33F003FAF59 /* UIImage+Blur.m */; };
 		7D2AC5CD1B67737C00A8D9DD /* libLiveSDK-static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2AC5CC1B67737C00A8D9DD /* libLiveSDK-static.a */; };
 		7D2AC5D01B67746700A8D9DD /* LiveAuthDialog_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D2AC5CE1B67746700A8D9DD /* LiveAuthDialog_iPad.xib */; };
 		7D2AC5D11B67746700A8D9DD /* LiveAuthDialog_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D2AC5CF1B67746700A8D9DD /* LiveAuthDialog_iPhone.xib */; };
-		7D2D4ECC1ACFFA42006A8DBD /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7D2D4ECE1ACFFA42006A8DBD /* Localizable.strings */; };
-		7D2DF7BB1B67753E00FB78AB /* libMediaLibraryKit-readonly.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7BA1B67753E00FB78AB /* libMediaLibraryKit-readonly.a */; };
 		7D2DF7BF1B67757700FB78AB /* libMediaLibraryKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7BE1B67757700FB78AB /* libMediaLibraryKit.a */; };
 		7D2DF7C11B67760100FB78AB /* libGTLTouchStaticLib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C01B67760100FB78AB /* libGTLTouchStaticLib.a */; };
 		7D2DF7C31B67777D00FB78AB /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D2DF7C21B67777D00FB78AB /* libc++.tbd */; };
@@ -134,7 +124,6 @@
 		7D3EB014174A353E002062C2 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D3EB013174A353E002062C2 /* SystemConfiguration.framework */; };
 		7D4625881A5614A1001A80B4 /* VLCEqualizerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D4625871A5614A1001A80B4 /* VLCEqualizerView.m */; };
 		7D4DF2181B55209200739326 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4DF2171B55209200739326 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		7D4DF2191B55305200739326 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D4DF2171B55209200739326 /* CoreSpotlight.framework */; };
 		7D50903218F41C7900180139 /* VLCAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D50903118F41C7900180139 /* VLCAlertView.m */; };
 		7D5CAA891A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D5CAA881A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.m */; };
 		7D5CAA8C1A4AD8E5003F2CBC /* VLCTrackSelectorHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D5CAA8B1A4AD8E5003F2CBC /* VLCTrackSelectorHeaderView.m */; };
@@ -148,10 +137,7 @@
 		7D711ADA18227A490094E4F0 /* GTMOAuth2ViewTouch.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D711AD918227A490094E4F0 /* GTMOAuth2ViewTouch.xib */; };
 		7D74177A1AE2D3CE001F1997 /* VLCNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D7417791AE2D3CE001F1997 /* VLCNavigationController.m */; };
 		7D84E4C61B41AB2800EA7D1F /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D84E4C51B41AB2800EA7D1F /* VideoToolbox.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
-		7D84E4C71B41AB6E00EA7D1F /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D84E4C51B41AB2800EA7D1F /* VideoToolbox.framework */; };
 		7D84E4C91B41ABCE00EA7D1F /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D84E4C81B41ABCE00EA7D1F /* CoreMedia.framework */; };
-		7D84E5221B42C6E000EA7D1F /* VLCTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D84E5211B42C6E000EA7D1F /* VLCTime.m */; };
-		7D871F521AD7257100348D27 /* UIImage+Scaling.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D871F501AD7257100348D27 /* UIImage+Scaling.m */; };
 		7D89786F185DED88009BAB5D /* VLCDownloadViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D89786E185DED88009BAB5D /* VLCDownloadViewController.xib */; };
 		7D89787D185DF794009BAB5D /* VLCOpenNetworkStreamViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D89787C185DF794009BAB5D /* VLCOpenNetworkStreamViewController.xib */; };
 		7D9289751877459B009108FD /* VLCFirstStepsThirdPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D9289731877459B009108FD /* VLCFirstStepsThirdPageViewController.m */; };
@@ -202,7 +188,6 @@
 		7DD2A3A9179C04A7003EB537 /* OpenSans-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7DD2A3A8179C04A6003EB537 /* OpenSans-Regular.ttf */; };
 		7DDD0429172D98E5005A7B10 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7DDD0428172D98E5005A7B10 /* CFNetwork.framework */; };
 		7DE56C1A1AD93F9100E8CA00 /* VLCPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE56C191AD93F9100E8CA00 /* VLCPlaybackController.m */; };
-		7DE715ED1AD2DAE50075E716 /* VLCThumbnailsCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D37849D183A98DD009EE944 /* VLCThumbnailsCache.m */; };
 		7DF04F4D1961F2B8004A5429 /* web-download-fixed.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF04F491961F2B8004A5429 /* web-download-fixed.png */; };
 		7DF04F4E1961F2B8004A5429 /* web-download.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF04F4A1961F2B8004A5429 /* web-download.png */; };
 		7DF04F4F1961F2B8004A5429 /* web-open-fixed.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DF04F4B1961F2B8004A5429 /* web-open-fixed.png */; };
@@ -228,13 +213,7 @@
 		CC1BBC58170493E100A20CBF /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC57170493E100A20CBF /* CoreData.framework */; };
 		CCE2A22E17A5859E00D9EAAD /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCE2A22D17A5859E00D9EAAD /* CoreText.framework */; };
 		D9C52A9E9D4D5AFA7EF1B45A /* libPods-vlc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */; };
-		DD02C3031ACAEB050026EFEE /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC451704938300A20CBF /* libiconv.dylib */; };
-		DD02C3041ACAEB550026EFEE /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC471704938B00A20CBF /* libstdc++.dylib */; };
-		DD02C3051ACAEC560026EFEE /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4F170493AA00A20CBF /* libxml2.dylib */; };
-		DD02C3061ACAEC5F0026EFEE /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC491704939300A20CBF /* libz.dylib */; };
-		DD02C3071ACAEC690026EFEE /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC4D170493A300A20CBF /* libbz2.dylib */; };
-		DD02C30E1ACAF4A50026EFEE /* VLCRowController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD02C30D1ACAF4A50026EFEE /* VLCRowController.m */; };
-		DD1542121ACFF76400AFD4EC /* VLCWatchTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1542111ACFF76400AFD4EC /* VLCWatchTableController.m */; };
+		DD1574761B67BBDB00641E8E /* VLCNotificationRelay.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1574751B67BBDB00641E8E /* VLCNotificationRelay.m */; };
 		DD1A45FD1B676BAC00086F57 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DDE1BCE41B676B8800A4B9CE /* Localizable.strings */; };
 		DD3567681B6760BF00338947 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DD3567661B6760BF00338947 /* Interface.storyboard */; };
 		DD35676A1B6760BF00338947 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DD3567691B6760BF00338947 /* Assets.xcassets */; };
@@ -258,43 +237,16 @@
 		DD3567F81B6768FC00338947 /* VLCWatchTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567EC1B6768FC00338947 /* VLCWatchTableController.m */; };
 		DD3567F91B6768FC00338947 /* WKInterfaceObject+VLCProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3567EE1B6768FC00338947 /* WKInterfaceObject+VLCProgress.m */; };
 		DD3EA6311AF50CFE007FF096 /* VLCWatchMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EA6301AF50CFE007FF096 /* VLCWatchMessage.m */; };
-		DD3EA6321AF50D01007FF096 /* VLCWatchMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = DD3EA6301AF50CFE007FF096 /* VLCWatchMessage.m */; };
 		DD510B701B14E564003BA71C /* VLCPlayerDisplayController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD510B6F1B14E564003BA71C /* VLCPlayerDisplayController.m */; };
-		DD670C971AFBEED400A2D7AB /* MappingModel_2_5_to_2_6.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = DDB959411AFBB30500BB8CFF /* MappingModel_2_5_to_2_6.xcmappingmodel */; };
-		DD6FA7B01ACD641C006DEB2E /* VLCNowPlayingInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DD6FA7AF1ACD641C006DEB2E /* VLCNowPlayingInterfaceController.m */; };
 		DD7110F01AF38B2B00854776 /* MLMediaLibrary+playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */; };
-		DD7110F11AF38B2B00854776 /* MLMediaLibrary+playlist.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */; };
-		DD7635D61AF262D100240CB8 /* NSManagedObjectContext+refreshAll.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7635D51AF262D100240CB8 /* NSManagedObjectContext+refreshAll.m */; };
 		DD8F84311B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m in Sources */ = {isa = PBXBuildFile; fileRef = DD8F84301B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m */; };
 		DD95D92A1B6776AB004441E2 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DD35677B1B6760BF00338947 /* Info.plist */; };
-		DDACEB561ADAD11300735484 /* WKInterfaceObject+VLCProgress.m in Sources */ = {isa = PBXBuildFile; fileRef = DDACEB551ADAD11300735484 /* WKInterfaceObject+VLCProgress.m */; };
 		DDB959421AFBB30500BB8CFF /* MappingModel_2_5_to_2_6.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = DDB959411AFBB30500BB8CFF /* MappingModel_2_5_to_2_6.xcmappingmodel */; };
 		DDC10BE41AEE8EA700890DC3 /* VLCTimeNavigationTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = DDC10BE31AEE8EA700890DC3 /* VLCTimeNavigationTitleView.m */; };
-		DDE4906C1ACDB63F00B1B5E3 /* VLCNotificationRelay.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE4906B1ACDB63F00B1B5E3 /* VLCNotificationRelay.m */; };
-		DDE4906D1ACDBEA000B1B5E3 /* VLCNotificationRelay.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE4906B1ACDB63F00B1B5E3 /* VLCNotificationRelay.m */; };
-		DDE490701ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE4906F1ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.m */; };
-		DDE490731ACE964200B1B5E3 /* VLCBaseInterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE490721ACE964200B1B5E3 /* VLCBaseInterfaceController.m */; };
-		DDF157B21ACB169600AAFBC6 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC57170493E100A20CBF /* CoreData.framework */; };
-		DDF157B41ACB169B00AAFBC6 /* WatchKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDF157B31ACB169B00AAFBC6 /* WatchKit.framework */; };
-		DDF157B51ACB16E500AAFBC6 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1BBC53170493B800A20CBF /* AudioToolbox.framework */; };
 		E0C04F951A25B4410080331A /* VLCDocumentPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = E0C04F941A25B4410080331A /* VLCDocumentPickerController.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
-		4173AEAD1ABF1B850004101D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 7D94FCD316DE7D1000F2623B /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 4173AEAA1ABF1B850004101D;
-			remoteInfo = "VLC for iOS WatchKit App";
-		};
-		4173AEB71ABF1B860004101D /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 7D94FCD316DE7D1000F2623B /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 4173AE9F1ABF1B850004101D;
-			remoteInfo = "VLC for iOS WatchKit Extension";
-		};
 		DD3567721B6760BF00338947 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 7D94FCD316DE7D1000F2623B /* Project object */;
@@ -318,7 +270,6 @@
 			dstPath = "";
 			dstSubfolderSpec = 13;
 			files = (
-				4173AEB91ABF1B860004101D /* VLC for iOS WatchKit Extension.appex in Embed App Extensions */,
 			);
 			name = "Embed App Extensions";
 			runOnlyForDeploymentPostprocessing = 0;
@@ -426,15 +377,6 @@
 		4171D34F18A2C19000A16EF9 /* VLCFolderCollectionViewFlowLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFolderCollectionViewFlowLayout.m; path = Sources/VLCFolderCollectionViewFlowLayout.m; sourceTree = SOURCE_ROOT; };
 		4171D35618A2D90200A16EF9 /* LXReorderableCollectionViewFlowLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LXReorderableCollectionViewFlowLayout.h; sourceTree = "<group>"; };
 		4171D35718A2D90200A16EF9 /* LXReorderableCollectionViewFlowLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LXReorderableCollectionViewFlowLayout.m; sourceTree = "<group>"; };
-		4173AEA01ABF1B850004101D /* VLC for iOS WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "VLC for iOS WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
-		4173AEA31ABF1B850004101D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		4173AEA41ABF1B850004101D /* VLCPlaylistInterfaceController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VLCPlaylistInterfaceController.h; sourceTree = "<group>"; };
-		4173AEA51ABF1B850004101D /* VLCPlaylistInterfaceController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VLCPlaylistInterfaceController.m; sourceTree = "<group>"; };
-		4173AEA71ABF1B850004101D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
-		4173AEAB1ABF1B850004101D /* VLC for iOS WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VLC for iOS WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		4173AEB11ABF1B860004101D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		4173AEB31ABF1B860004101D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
-		4173AEB51ABF1B860004101D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
 		417CDA201A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCCloudServicesTableViewController.h; path = Sources/VLCCloudServicesTableViewController.h; sourceTree = SOURCE_ROOT; };
 		417CDA211A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCCloudServicesTableViewController.m; path = Sources/VLCCloudServicesTableViewController.m; sourceTree = SOURCE_ROOT; };
 		417CDA221A48D1F300D9ACE7 /* VLCCloudServicesTableViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCCloudServicesTableViewController.xib; path = Resources/VLCCloudServicesTableViewController.xib; sourceTree = SOURCE_ROOT; };
@@ -498,29 +440,12 @@
 		7D2AC5CF1B67746700A8D9DD /* LiveAuthDialog_iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LiveAuthDialog_iPhone.xib; path = ImportedSources/OneDrive/src/LiveSDK/Library/Internal/LiveAuthDialog_iPhone.xib; sourceTree = SOURCE_ROOT; };
 		7D2AEDE017FB775900B5281E /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7D2AEDE517FB785100B5281E /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2D4ECD1ACFFA42006A8DBD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2D4ECF1ACFFA46006A8DBD /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7D2DF7BA1B67753E00FB78AB /* libMediaLibraryKit-readonly.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libMediaLibraryKit-readonly.a"; path = "ImportedSources/MediaLibraryKit/build/Debug-iphoneos/libMediaLibraryKit-readonly.a"; sourceTree = "<group>"; };
 		7D2DF7BC1B67756E00FB78AB /* libMobileVLCKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileVLCKit.a; path = "ImportedSources/VLCKit/build/Debug-iphoneos/libMobileVLCKit.a"; sourceTree = "<group>"; };
 		7D2DF7BE1B67757700FB78AB /* libMediaLibraryKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMediaLibraryKit.a; path = "ImportedSources/MediaLibraryKit/build/Debug-iphoneos/libMediaLibraryKit.a"; sourceTree = "<group>"; };
 		7D2DF7C01B67760100FB78AB /* libGTLTouchStaticLib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGTLTouchStaticLib.a; path = "ImportedSources/GDrive/build/Debug-iphoneos/libGTLTouchStaticLib.a"; sourceTree = "<group>"; };
 		7D2DF7C21B67777D00FB78AB /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
 		7D2DF7C41B677C2600FB78AB /* libMobileVLCKit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMobileVLCKit.a; path = "../../../../Library/Developer/Xcode/DerivedData/VLC_for_iOS-aihbdkeagpzjqsczvuoyenddvmqy/Build/Products/Debug-iphoneos/libMobileVLCKit.a"; sourceTree = "<group>"; };
-		7D2E27891AD6DF72001FFE28 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E278A1AD6DFE4001FFE28 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
-		7D2E278B1AD6E02D001FFE28 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E278C1AD6E07B001FFE28 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E278D1AD6E1AD001FFE28 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = "<group>"; };
-		7D2E278E1AD6E2E8001FFE28 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E278F1AD6E318001FFE28 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27901AD6E3C9001FFE28 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27911AD6E415001FFE28 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27921AD6E4D3001FFE28 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27931AD6E4FA001FFE28 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27941AD6E538001FFE28 /* ta */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ta; path = ta.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27951AD6E554001FFE28 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27961AD6E583001FFE28 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; };
-		7D2E27971AD6E59C001FFE28 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7D30F3BC183AB24C00FFC021 /* VLCHTTPConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCHTTPConnection.h; path = Sources/VLCHTTPConnection.h; sourceTree = SOURCE_ROOT; };
 		7D30F3BD183AB24C00FFC021 /* VLCHTTPConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCHTTPConnection.m; path = Sources/VLCHTTPConnection.m; sourceTree = SOURCE_ROOT; };
 		7D30F3BE183AB24C00FFC021 /* VLCHTTPFileDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCHTTPFileDownloader.h; path = Sources/VLCHTTPFileDownloader.h; sourceTree = SOURCE_ROOT; };
@@ -609,7 +534,6 @@
 		7D4DF2171B55209200739326 /* CoreSpotlight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreSpotlight.framework; path = System/Library/Frameworks/CoreSpotlight.framework; sourceTree = SDKROOT; };
 		7D50903018F41C7900180139 /* VLCAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAlertView.h; path = Sources/VLCAlertView.h; sourceTree = SOURCE_ROOT; };
 		7D50903118F41C7900180139 /* VLCAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCAlertView.m; path = Sources/VLCAlertView.m; sourceTree = SOURCE_ROOT; };
-		7D55B8A41B5031E600EE9AD3 /* 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>"; };
 		7D5C204D17999A74004F9443 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7D5CAA871A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTrackSelectorTableViewCell.h; path = Sources/VLCTrackSelectorTableViewCell.h; sourceTree = SOURCE_ROOT; };
 		7D5CAA881A4AD763003F2CBC /* VLCTrackSelectorTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTrackSelectorTableViewCell.m; path = Sources/VLCTrackSelectorTableViewCell.m; sourceTree = SOURCE_ROOT; };
@@ -643,8 +567,6 @@
 		7D8139CD1865211900D65504 /* ms */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ms; path = ms.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7D84E4C51B41AB2800EA7D1F /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; };
 		7D84E4C81B41ABCE00EA7D1F /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
-		7D84E5211B42C6E000EA7D1F /* VLCTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTime.m; path = ImportedSources/VLCKit/Sources/VLCTime.m; sourceTree = SOURCE_ROOT; };
-		7D84E5231B42C6F200EA7D1F /* VLCTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = VLCTime.h; path = ImportedSources/VLCKit/Headers/Public/VLCTime.h; sourceTree = SOURCE_ROOT; };
 		7D871F4F1AD7257100348D27 /* UIImage+Scaling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImage+Scaling.h"; path = "Sources/UIImage+Scaling.h"; sourceTree = SOURCE_ROOT; };
 		7D871F501AD7257100348D27 /* UIImage+Scaling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Scaling.m"; path = "Sources/UIImage+Scaling.m"; sourceTree = SOURCE_ROOT; };
 		7D89786E185DED88009BAB5D /* VLCDownloadViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCDownloadViewController.xib; path = Resources/VLCDownloadViewController.xib; sourceTree = SOURCE_ROOT; };
@@ -764,11 +686,8 @@
 		CCAF837E17DE46D800E3578F /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = "<group>"; };
 		CCE2A22D17A5859E00D9EAAD /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
 		DAF8927B0BE9C328466C0EA7 /* libPods-vlc-ios.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-vlc-ios.a"; sourceTree = BUILT_PRODUCTS_DIR; };
-		DD02C2FC1ACACF400026EFEE /* VLC for iOS WatchKit Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "VLC for iOS WatchKit Extension.entitlements"; sourceTree = "<group>"; };
-		DD02C30C1ACAF4A50026EFEE /* VLCRowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCRowController.h; sourceTree = "<group>"; };
-		DD02C30D1ACAF4A50026EFEE /* VLCRowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCRowController.m; sourceTree = "<group>"; };
-		DD1542101ACFF76400AFD4EC /* VLCWatchTableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCWatchTableController.h; sourceTree = "<group>"; };
-		DD1542111ACFF76400AFD4EC /* VLCWatchTableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCWatchTableController.m; sourceTree = "<group>"; };
+		DD1574741B67BBDB00641E8E /* VLCNotificationRelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCNotificationRelay.h; sourceTree = "<group>"; };
+		DD1574751B67BBDB00641E8E /* VLCNotificationRelay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCNotificationRelay.m; sourceTree = "<group>"; };
 		DD1A45FC1B676BAC00086F57 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
 		DD3567641B6760BF00338947 /* VLC WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VLC WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; };
 		DD3567671B6760BF00338947 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
@@ -808,12 +727,8 @@
 		DD3EA6301AF50CFE007FF096 /* VLCWatchMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCWatchMessage.m; sourceTree = "<group>"; };
 		DD510B6E1B14E564003BA71C /* VLCPlayerDisplayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCPlayerDisplayController.h; path = Sources/VLCPlayerDisplayController.h; sourceTree = SOURCE_ROOT; };
 		DD510B6F1B14E564003BA71C /* VLCPlayerDisplayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCPlayerDisplayController.m; path = Sources/VLCPlayerDisplayController.m; sourceTree = SOURCE_ROOT; };
-		DD6FA7AE1ACD641C006DEB2E /* VLCNowPlayingInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCNowPlayingInterfaceController.h; sourceTree = "<group>"; };
-		DD6FA7AF1ACD641C006DEB2E /* VLCNowPlayingInterfaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCNowPlayingInterfaceController.m; sourceTree = "<group>"; };
 		DD7110EE1AF38B2B00854776 /* MLMediaLibrary+playlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MLMediaLibrary+playlist.h"; sourceTree = "<group>"; };
 		DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MLMediaLibrary+playlist.m"; sourceTree = "<group>"; };
-		DD7635D41AF262D100240CB8 /* NSManagedObjectContext+refreshAll.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObjectContext+refreshAll.h"; sourceTree = "<group>"; };
-		DD7635D51AF262D100240CB8 /* NSManagedObjectContext+refreshAll.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObjectContext+refreshAll.m"; sourceTree = "<group>"; };
 		DD8C8F9F1B676C0900B3C4EE /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
 		DD8C8FA01B676C0F00B3C4EE /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = "<group>"; };
 		DD8C8FA11B676C1700B3C4EE /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = el.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -832,18 +747,10 @@
 		DD8C8FAE1B676D8500B3C4EE /* VLC WatchKit Extension-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "VLC WatchKit Extension-Bridging-Header.h"; sourceTree = "<group>"; };
 		DD8F842F1B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "VLCPlaybackController+MediaLibrary.h"; path = "Sources/VLCPlaybackController+MediaLibrary.h"; sourceTree = SOURCE_ROOT; };
 		DD8F84301B00EB3B0009138A /* VLCPlaybackController+MediaLibrary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "VLCPlaybackController+MediaLibrary.m"; path = "Sources/VLCPlaybackController+MediaLibrary.m"; sourceTree = SOURCE_ROOT; };
-		DDACEB541ADAD11300735484 /* WKInterfaceObject+VLCProgress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "WKInterfaceObject+VLCProgress.h"; sourceTree = "<group>"; };
-		DDACEB551ADAD11300735484 /* WKInterfaceObject+VLCProgress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "WKInterfaceObject+VLCProgress.m"; sourceTree = "<group>"; };
 		DDB959411AFBB30500BB8CFF /* MappingModel_2_5_to_2_6.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; name = MappingModel_2_5_to_2_6.xcmappingmodel; path = ImportedSources/MediaLibraryKit/MappingModel_2_5_to_2_6.xcmappingmodel; sourceTree = "<group>"; };
 		DDC10BE21AEE8EA700890DC3 /* VLCTimeNavigationTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCTimeNavigationTitleView.h; path = Sources/VLCTimeNavigationTitleView.h; sourceTree = SOURCE_ROOT; };
 		DDC10BE31AEE8EA700890DC3 /* VLCTimeNavigationTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCTimeNavigationTitleView.m; path = Sources/VLCTimeNavigationTitleView.m; sourceTree = SOURCE_ROOT; };
 		DDE1BCE51B676B8800A4B9CE /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; };
-		DDE4906A1ACDB63F00B1B5E3 /* VLCNotificationRelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCNotificationRelay.h; sourceTree = "<group>"; };
-		DDE4906B1ACDB63F00B1B5E3 /* VLCNotificationRelay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCNotificationRelay.m; sourceTree = "<group>"; };
-		DDE4906E1ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VLCDetailInterfaceController.h; sourceTree = "<group>"; };
-		DDE4906F1ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCDetailInterfaceController.m; sourceTree = "<group>"; };
-		DDE490711ACE964200B1B5E3 /* VLCBaseInterfaceController.h */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = VLCBaseInterfaceController.h; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; wrapsLines = 1; };
-		DDE490721ACE964200B1B5E3 /* VLCBaseInterfaceController.m */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = VLCBaseInterfaceController.m; sourceTree = "<group>"; tabWidth = 4; usesTabs = 0; wrapsLines = 1; };
 		DDF157B31ACB169B00AAFBC6 /* WatchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchKit.framework; path = System/Library/Frameworks/WatchKit.framework; sourceTree = SDKROOT; };
 		E09EACF57CDD22ABAE66CDD0 /* Pods-vlc-ios.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-vlc-ios.distribution.xcconfig"; path = "Pods/Target Support Files/Pods-vlc-ios/Pods-vlc-ios.distribution.xcconfig"; sourceTree = "<group>"; };
 		E0C04F931A25B4410080331A /* VLCDocumentPickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCDocumentPickerController.h; path = Sources/VLCDocumentPickerController.h; sourceTree = SOURCE_ROOT; };
@@ -851,24 +758,6 @@
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
-		4173AE9D1ABF1B850004101D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				7D2DF7BB1B67753E00FB78AB /* libMediaLibraryKit-readonly.a in Frameworks */,
-				7D4DF2191B55305200739326 /* CoreSpotlight.framework in Frameworks */,
-				7D84E4C71B41AB6E00EA7D1F /* VideoToolbox.framework in Frameworks */,
-				DDF157B51ACB16E500AAFBC6 /* AudioToolbox.framework in Frameworks */,
-				DDF157B41ACB169B00AAFBC6 /* WatchKit.framework in Frameworks */,
-				DDF157B21ACB169600AAFBC6 /* CoreData.framework in Frameworks */,
-				DD02C3071ACAEC690026EFEE /* libbz2.dylib in Frameworks */,
-				DD02C3061ACAEC5F0026EFEE /* libz.dylib in Frameworks */,
-				DD02C3051ACAEC560026EFEE /* libxml2.dylib in Frameworks */,
-				DD02C3041ACAEB550026EFEE /* libstdc++.dylib in Frameworks */,
-				DD02C3031ACAEB050026EFEE /* libiconv.dylib in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
 		7D94FCD816DE7D1000F2623B /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -1066,63 +955,6 @@
 			path = ImportedSources/LXReorderableCollectionViewFlowLayout/LXReorderableCollectionViewFlowLayout;
 			sourceTree = SOURCE_ROOT;
 		};
-		4173AEA11ABF1B850004101D /* VLC for iOS WatchKit Extension */ = {
-			isa = PBXGroup;
-			children = (
-				7D84E51D1B42BFE400EA7D1F /* Linked from VLCKit */,
-				DD02C2FC1ACACF400026EFEE /* VLC for iOS WatchKit Extension.entitlements */,
-				DD7635D41AF262D100240CB8 /* NSManagedObjectContext+refreshAll.h */,
-				DD7635D51AF262D100240CB8 /* NSManagedObjectContext+refreshAll.m */,
-				DDACEB541ADAD11300735484 /* WKInterfaceObject+VLCProgress.h */,
-				DDACEB551ADAD11300735484 /* WKInterfaceObject+VLCProgress.m */,
-				DDE4906A1ACDB63F00B1B5E3 /* VLCNotificationRelay.h */,
-				DDE4906B1ACDB63F00B1B5E3 /* VLCNotificationRelay.m */,
-				DDE490711ACE964200B1B5E3 /* VLCBaseInterfaceController.h */,
-				DDE490721ACE964200B1B5E3 /* VLCBaseInterfaceController.m */,
-				4173AEA41ABF1B850004101D /* VLCPlaylistInterfaceController.h */,
-				4173AEA51ABF1B850004101D /* VLCPlaylistInterfaceController.m */,
-				DD1542101ACFF76400AFD4EC /* VLCWatchTableController.h */,
-				DD1542111ACFF76400AFD4EC /* VLCWatchTableController.m */,
-				DD6FA7AE1ACD641C006DEB2E /* VLCNowPlayingInterfaceController.h */,
-				DD6FA7AF1ACD641C006DEB2E /* VLCNowPlayingInterfaceController.m */,
-				DDE4906E1ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.h */,
-				DDE4906F1ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.m */,
-				DD02C30C1ACAF4A50026EFEE /* VLCRowController.h */,
-				DD02C30D1ACAF4A50026EFEE /* VLCRowController.m */,
-				7D2D4ECE1ACFFA42006A8DBD /* Localizable.strings */,
-				4173AEA71ABF1B850004101D /* Images.xcassets */,
-				4173AEA21ABF1B850004101D /* Supporting Files */,
-			);
-			path = "VLC for iOS WatchKit Extension";
-			sourceTree = "<group>";
-		};
-		4173AEA21ABF1B850004101D /* Supporting Files */ = {
-			isa = PBXGroup;
-			children = (
-				7D55B8A41B5031E600EE9AD3 /* VLC for iOS WatchKit Extension-Prefix.pch */,
-				4173AEA31ABF1B850004101D /* Info.plist */,
-			);
-			name = "Supporting Files";
-			sourceTree = "<group>";
-		};
-		4173AEAF1ABF1B850004101D /* VLC for iOS WatchKit App */ = {
-			isa = PBXGroup;
-			children = (
-				4173AEB21ABF1B860004101D /* Interface.storyboard */,
-				4173AEB51ABF1B860004101D /* Images.xcassets */,
-				4173AEB01ABF1B860004101D /* Supporting Files */,
-			);
-			path = "VLC for iOS WatchKit App";
-			sourceTree = "<group>";
-		};
-		4173AEB01ABF1B860004101D /* Supporting Files */ = {
-			isa = PBXGroup;
-			children = (
-				4173AEB11ABF1B860004101D /* Info.plist */,
-			);
-			name = "Supporting Files";
-			sourceTree = "<group>";
-		};
 		41CD69561A29D71B00E60BCE /* Box */ = {
 			isa = PBXGroup;
 			children = (
@@ -1365,15 +1197,6 @@
 			name = "Download & Network";
 			sourceTree = "<group>";
 		};
-		7D84E51D1B42BFE400EA7D1F /* Linked from VLCKit */ = {
-			isa = PBXGroup;
-			children = (
-				7D84E5231B42C6F200EA7D1F /* VLCTime.h */,
-				7D84E5211B42C6E000EA7D1F /* VLCTime.m */,
-			);
-			name = "Linked from VLCKit";
-			sourceTree = "<group>";
-		};
 		7D94FCD216DE7D1000F2623B = {
 			isa = PBXGroup;
 			children = (
@@ -1387,8 +1210,6 @@
 				7D94FCE516DE7D1000F2623B /* Supporting Files */,
 				CC1BBC441704936500A20CBF /* External VLC Libraries */,
 				DD7110ED1AF38AFD00854776 /* SharedSources */,
-				4173AEA11ABF1B850004101D /* VLC for iOS WatchKit Extension */,
-				4173AEAF1ABF1B850004101D /* VLC for iOS WatchKit App */,
 				DD3567651B6760BF00338947 /* VLC WatchKit Native */,
 				DD3567741B6760BF00338947 /* VLC WatchKit Native Extension */,
 				7D94FCDD16DE7D1000F2623B /* Frameworks */,
@@ -1402,8 +1223,6 @@
 			isa = PBXGroup;
 			children = (
 				7D94FCDB16DE7D1000F2623B /* VLC for iOS.app */,
-				4173AEA01ABF1B850004101D /* VLC for iOS WatchKit Extension.appex */,
-				4173AEAB1ABF1B850004101D /* VLC for iOS WatchKit App.app */,
 				DD3567641B6760BF00338947 /* VLC WatchKit App.app */,
 				DD3567701B6760BF00338947 /* VLC WatchKit Extension.appex */,
 			);
@@ -1806,6 +1625,8 @@
 				7D37849D183A98DD009EE944 /* VLCThumbnailsCache.m */,
 				DD7110EE1AF38B2B00854776 /* MLMediaLibrary+playlist.h */,
 				DD7110EF1AF38B2B00854776 /* MLMediaLibrary+playlist.m */,
+				DD1574741B67BBDB00641E8E /* VLCNotificationRelay.h */,
+				DD1574751B67BBDB00641E8E /* VLCNotificationRelay.m */,
 				DD3EA62F1AF50CFE007FF096 /* VLCWatchMessage.h */,
 				DD3EA6301AF50CFE007FF096 /* VLCWatchMessage.m */,
 			);
@@ -1824,39 +1645,6 @@
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-		4173AE9F1ABF1B850004101D /* VLC for iOS WatchKit Extension */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 4173AEBE1ABF1B860004101D /* Build configuration list for PBXNativeTarget "VLC for iOS WatchKit Extension" */;
-			buildPhases = (
-				4173AE9C1ABF1B850004101D /* Sources */,
-				4173AE9D1ABF1B850004101D /* Frameworks */,
-				4173AE9E1ABF1B850004101D /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-				4173AEAE1ABF1B850004101D /* PBXTargetDependency */,
-			);
-			name = "VLC for iOS WatchKit Extension";
-			productName = "VLC for iOS WatchKit Extension";
-			productReference = 4173AEA01ABF1B850004101D /* VLC for iOS WatchKit Extension.appex */;
-			productType = "com.apple.product-type.watchkit-extension";
-		};
-		4173AEAA1ABF1B850004101D /* VLC for iOS WatchKit App */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 4173AEBA1ABF1B860004101D /* Build configuration list for PBXNativeTarget "VLC for iOS WatchKit App" */;
-			buildPhases = (
-				4173AEA91ABF1B850004101D /* Resources */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "VLC for iOS WatchKit App";
-			productName = "VLC for iOS WatchKit App";
-			productReference = 4173AEAB1ABF1B850004101D /* VLC for iOS WatchKit App.app */;
-			productType = "com.apple.product-type.application.watchapp";
-		};
 		7D94FCDA16DE7D1000F2623B /* vlc-ios */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 7D94FD0A16DE7D1100F2623B /* Build configuration list for PBXNativeTarget "vlc-ios" */;
@@ -1872,7 +1660,6 @@
 			buildRules = (
 			);
 			dependencies = (
-				4173AEB81ABF1B860004101D /* PBXTargetDependency */,
 				DD35677D1B6760BF00338947 /* PBXTargetDependency */,
 			);
 			name = "vlc-ios";
@@ -1925,19 +1712,6 @@
 				LastUpgradeCheck = 0700;
 				ORGANIZATIONNAME = VideoLAN;
 				TargetAttributes = {
-					4173AE9F1ABF1B850004101D = {
-						CreatedOnToolsVersion = 6.2;
-						DevelopmentTeam = 75GAHG3SZQ;
-						SystemCapabilities = {
-							com.apple.ApplicationGroups.iOS = {
-								enabled = 1;
-							};
-						};
-					};
-					4173AEAA1ABF1B850004101D = {
-						CreatedOnToolsVersion = 6.2;
-						DevelopmentTeam = 75GAHG3SZQ;
-					};
 					7D94FCDA16DE7D1000F2623B = {
 						DevelopmentTeam = 75GAHG3SZQ;
 						SystemCapabilities = {
@@ -2017,8 +1791,6 @@
 			projectRoot = "";
 			targets = (
 				7D94FCDA16DE7D1000F2623B /* vlc-ios */,
-				4173AE9F1ABF1B850004101D /* VLC for iOS WatchKit Extension */,
-				4173AEAA1ABF1B850004101D /* VLC for iOS WatchKit App */,
 				DD35676F1B6760BF00338947 /* VLC WatchKit Extension */,
 				DD3567631B6760BF00338947 /* VLC WatchKit App */,
 			);
@@ -2026,25 +1798,6 @@
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-		4173AE9E1ABF1B850004101D /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				4173AEAC1ABF1B850004101D /* VLC for iOS WatchKit App.app in Resources */,
-				7D2D4ECC1ACFFA42006A8DBD /* Localizable.strings in Resources */,
-				4173AEA81ABF1B850004101D /* Images.xcassets in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-		4173AEA91ABF1B850004101D /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				4173AEB41ABF1B860004101D /* Interface.storyboard in Resources */,
-				4173AEB61ABF1B860004101D /* Images.xcassets in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
 		7D94FCD916DE7D1000F2623B /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -2169,30 +1922,6 @@
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
-		4173AE9C1ABF1B850004101D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				DD3EA6321AF50D01007FF096 /* VLCWatchMessage.m in Sources */,
-				DD6FA7B01ACD641C006DEB2E /* VLCNowPlayingInterfaceController.m in Sources */,
-				7DE715ED1AD2DAE50075E716 /* VLCThumbnailsCache.m in Sources */,
-				7D298F451AD58A0700A0BF68 /* UIImage+Blur.m in Sources */,
-				7D871F521AD7257100348D27 /* UIImage+Scaling.m in Sources */,
-				DDE490731ACE964200B1B5E3 /* VLCBaseInterfaceController.m in Sources */,
-				7D0363AD1B2F325500CC0343 /* MediaLibrary.xcdatamodeld in Sources */,
-				DDE4906C1ACDB63F00B1B5E3 /* VLCNotificationRelay.m in Sources */,
-				DD7110F11AF38B2B00854776 /* MLMediaLibrary+playlist.m in Sources */,
-				DD670C971AFBEED400A2D7AB /* MappingModel_2_5_to_2_6.xcmappingmodel in Sources */,
-				DD1542121ACFF76400AFD4EC /* VLCWatchTableController.m in Sources */,
-				DD02C30E1ACAF4A50026EFEE /* VLCRowController.m in Sources */,
-				DD7635D61AF262D100240CB8 /* NSManagedObjectContext+refreshAll.m in Sources */,
-				DDE490701ACE8BBC00B1B5E3 /* VLCDetailInterfaceController.m in Sources */,
-				4173AEA61ABF1B850004101D /* VLCPlaylistInterfaceController.m in Sources */,
-				DDACEB561ADAD11300735484 /* WKInterfaceObject+VLCProgress.m in Sources */,
-				7D84E5221B42C6E000EA7D1F /* VLCTime.m in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
 		7D94FCD716DE7D1000F2623B /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -2223,6 +1952,7 @@
 				2915542717490A9C00B86CAD /* DDLog.m in Sources */,
 				7D95610B1AF3E9E800779745 /* VLCMiniPlaybackView.m in Sources */,
 				2915542817490A9C00B86CAD /* DDTTYLogger.m in Sources */,
+				DD1574761B67BBDB00641E8E /* VLCNotificationRelay.m in Sources */,
 				2915542917490A9C00B86CAD /* ContextFilterLogFormatter.m in Sources */,
 				2915542A17490A9C00B86CAD /* DispatchQueueLogFormatter.m in Sources */,
 				7DC19B051868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m in Sources */,
@@ -2315,7 +2045,6 @@
 				7D30F3EA183AB34200FFC021 /* VLCGoogleDriveController.m in Sources */,
 				DD510B701B14E564003BA71C /* VLCPlayerDisplayController.m in Sources */,
 				9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */,
-				DDE4906D1ACDBEA000B1B5E3 /* VLCNotificationRelay.m in Sources */,
 				7D30F3EC183AB34200FFC021 /* VLCGoogleDriveTableViewController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2342,16 +2071,6 @@
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
-		4173AEAE1ABF1B850004101D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 4173AEAA1ABF1B850004101D /* VLC for iOS WatchKit App */;
-			targetProxy = 4173AEAD1ABF1B850004101D /* PBXContainerItemProxy */;
-		};
-		4173AEB81ABF1B860004101D /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 4173AE9F1ABF1B850004101D /* VLC for iOS WatchKit Extension */;
-			targetProxy = 4173AEB71ABF1B860004101D /* PBXContainerItemProxy */;
-		};
 		DD3567731B6760BF00338947 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;
 			target = DD35676F1B6760BF00338947 /* VLC WatchKit Extension */;
@@ -2365,38 +2084,6 @@
 /* End PBXTargetDependency section */
 
 /* Begin PBXVariantGroup section */
-		4173AEB21ABF1B860004101D /* Interface.storyboard */ = {
-			isa = PBXVariantGroup;
-			children = (
-				4173AEB31ABF1B860004101D /* Base */,
-			);
-			name = Interface.storyboard;
-			sourceTree = "<group>";
-		};
-		7D2D4ECE1ACFFA42006A8DBD /* Localizable.strings */ = {
-			isa = PBXVariantGroup;
-			children = (
-				7D2D4ECD1ACFFA42006A8DBD /* en */,
-				7D2D4ECF1ACFFA46006A8DBD /* de */,
-				7D2E27891AD6DF72001FFE28 /* ja */,
-				7D2E278A1AD6DFE4001FFE28 /* zh-Hans */,
-				7D2E278B1AD6E02D001FFE28 /* sv */,
-				7D2E278C1AD6E07B001FFE28 /* tr */,
-				7D2E278D1AD6E1AD001FFE28 /* pt-PT */,
-				7D2E278E1AD6E2E8001FFE28 /* fr */,
-				7D2E278F1AD6E318001FFE28 /* uk */,
-				7D2E27901AD6E3C9001FFE28 /* ru */,
-				7D2E27911AD6E415001FFE28 /* el */,
-				7D2E27921AD6E4D3001FFE28 /* da */,
-				7D2E27931AD6E4FA001FFE28 /* nl */,
-				7D2E27941AD6E538001FFE28 /* ta */,
-				7D2E27951AD6E554001FFE28 /* fi */,
-				7D2E27961AD6E583001FFE28 /* it */,
-				7D2E27971AD6E59C001FFE28 /* es */,
-			);
-			name = Localizable.strings;
-			sourceTree = "<group>";
-		};
 		A79246C6170F11DF0036AAF2 /* Localizable.strings */ = {
 			isa = PBXVariantGroup;
 			children = (
@@ -2484,258 +2171,6 @@
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
-		4173AEBB1ABF1B860004101D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				ENABLE_BITCODE = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/ImportedSources/VLCKit/Headers/Public",
-					"$(SRCROOT)/ImportedSources/MediaLibraryKit/Headers/Public",
-				);
-				IBSC_MODULE = VLC_for_iOS_WatchKit_Extension;
-				INFOPLIST_FILE = "VLC for iOS WatchKit App/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				MTL_ENABLE_DEBUG_INFO = YES;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitapp";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
-				TARGETED_DEVICE_FAMILY = 4;
-				"TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
-			};
-			name = Debug;
-		};
-		4173AEBC1ABF1B860004101D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				ENABLE_BITCODE = NO;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/ImportedSources/VLCKit/Headers/Public",
-					"$(SRCROOT)/ImportedSources/MediaLibraryKit/Headers/Public",
-				);
-				IBSC_MODULE = VLC_for_iOS_WatchKit_Extension;
-				INFOPLIST_FILE = "VLC for iOS WatchKit App/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitapp";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
-				TARGETED_DEVICE_FAMILY = 4;
-				"TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
-			};
-			name = Release;
-		};
-		4173AEBD1ABF1B860004101D /* Distribution */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				ENABLE_BITCODE = NO;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/ImportedSources/VLCKit/Headers/Public",
-					"$(SRCROOT)/ImportedSources/MediaLibraryKit/Headers/Public",
-				);
-				IBSC_MODULE = VLC_for_iOS_WatchKit_Extension;
-				INFOPLIST_FILE = "VLC for iOS WatchKit App/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitapp";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				SKIP_INSTALL = YES;
-				TARGETED_DEVICE_FAMILY = 4;
-				"TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
-			};
-			name = Distribution;
-		};
-		4173AEBF1ABF1B860004101D /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = (
-					"$(ARCHS_STANDARD)",
-					armv7s,
-				);
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_ENTITLEMENTS = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension.entitlements";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				ENABLE_BITCODE = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(CONFIGURATION_BUILD_DIR)/MediaLibraryKit-readonly",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/Sources",
-				);
-				INFOPLIST_FILE = "VLC for iOS WatchKit Extension/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
-				MTL_ENABLE_DEBUG_INFO = YES;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitextension";
-				PRODUCT_NAME = "${TARGET_NAME}";
-				PROVISIONING_PROFILE = "";
-				SKIP_INSTALL = YES;
-			};
-			name = Debug;
-		};
-		4173AEC01ABF1B860004101D /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = (
-					"$(ARCHS_STANDARD)",
-					armv7s,
-				);
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_ENTITLEMENTS = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension.entitlements";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				ENABLE_BITCODE = NO;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(CONFIGURATION_BUILD_DIR)/MediaLibraryKit-readonly",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/Sources",
-				);
-				INFOPLIST_FILE = "VLC for iOS WatchKit Extension/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitextension";
-				PRODUCT_NAME = "${TARGET_NAME}";
-				PROVISIONING_PROFILE = "";
-				SKIP_INSTALL = YES;
-			};
-			name = Release;
-		};
-		4173AEC11ABF1B860004101D /* Distribution */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = (
-					"$(ARCHS_STANDARD)",
-					armv7s,
-				);
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CODE_SIGN_ENTITLEMENTS = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension.entitlements";
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				COPY_PHASE_STRIP = NO;
-				ENABLE_BITCODE = NO;
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				HEADER_SEARCH_PATHS = (
-					"$(inherited)",
-					"$(CONFIGURATION_BUILD_DIR)/MediaLibraryKit-readonly",
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
-					"$(SRCROOT)/Sources",
-				);
-				INFOPLIST_FILE = "VLC for iOS WatchKit Extension/Info.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 8.2;
-				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
-				MTL_ENABLE_DEBUG_INFO = NO;
-				PRODUCT_BUNDLE_IDENTIFIER = "org.videolan.vlc-ios.watchkitextension";
-				PRODUCT_NAME = "${TARGET_NAME}";
-				PROVISIONING_PROFILE = "";
-				SKIP_INSTALL = YES;
-			};
-			name = Distribution;
-		};
 		7D94FD0816DE7D1100F2623B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -3092,7 +2527,7 @@
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
+				GCC_PREFIX_HEADER = "VLC WatchKit Native Extension/VLC for iOS WatchKit Extension-Prefix.pch";
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -3134,7 +2569,7 @@
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
+				GCC_PREFIX_HEADER = "VLC WatchKit Native Extension/VLC for iOS WatchKit Extension-Prefix.pch";
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -3175,7 +2610,7 @@
 				ENABLE_STRICT_OBJC_MSGSEND = YES;
 				GCC_NO_COMMON_BLOCKS = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = "VLC for iOS WatchKit Extension/VLC for iOS WatchKit Extension-Prefix.pch";
+				GCC_PREFIX_HEADER = "VLC WatchKit Native Extension/VLC for iOS WatchKit Extension-Prefix.pch";
 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 				GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -3203,26 +2638,6 @@
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-		4173AEBA1ABF1B860004101D /* Build configuration list for PBXNativeTarget "VLC for iOS WatchKit App" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				4173AEBB1ABF1B860004101D /* Debug */,
-				4173AEBC1ABF1B860004101D /* Release */,
-				4173AEBD1ABF1B860004101D /* Distribution */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		4173AEBE1ABF1B860004101D /* Build configuration list for PBXNativeTarget "VLC for iOS WatchKit Extension" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				4173AEBF1ABF1B860004101D /* Debug */,
-				4173AEC01ABF1B860004101D /* Release */,
-				4173AEC11ABF1B860004101D /* Distribution */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
 		7D94FCD616DE7D1000F2623B /* Build configuration list for PBXProject "VLC for iOS" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (