Authored by Bogdan Poplauschi

Added tvOS demo

Showing 28 changed files with 703 additions and 0 deletions
@@ -9,6 +9,12 @@ @@ -9,6 +9,12 @@
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 3E75A9861742DBE700DA412D /* CustomPathImages in Resources */ = {isa = PBXBuildFile; fileRef = 3E75A9851742DBE700DA412D /* CustomPathImages */; }; 10 3E75A9861742DBE700DA412D /* CustomPathImages in Resources */ = {isa = PBXBuildFile; fileRef = 3E75A9851742DBE700DA412D /* CustomPathImages */; };
11 4314D1A11D0E0EE2004B36C9 /* libSDWebImage watchOS static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4314D19E1D0E0EB6004B36C9 /* libSDWebImage watchOS static.a */; }; 11 4314D1A11D0E0EE2004B36C9 /* libSDWebImage watchOS static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4314D19E1D0E0EB6004B36C9 /* libSDWebImage watchOS static.a */; };
  12 + 4314D1AA1D0E1181004B36C9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 4314D1A91D0E1181004B36C9 /* main.m */; };
  13 + 4314D1AD1D0E1181004B36C9 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4314D1AC1D0E1181004B36C9 /* AppDelegate.m */; };
  14 + 4314D1B01D0E1182004B36C9 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4314D1AF1D0E1182004B36C9 /* ViewController.m */; };
  15 + 4314D1B31D0E1182004B36C9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4314D1B11D0E1182004B36C9 /* Main.storyboard */; };
  16 + 4314D1B51D0E1182004B36C9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4314D1B41D0E1182004B36C9 /* Assets.xcassets */; };
  17 + 4314D1BC1D0E11A8004B36C9 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 431739601CDFCC370008FEB9 /* SDWebImage.framework */; };
12 4317396A1CDFCCE20008FEB9 /* libSDWebImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D741954841D00390AB0 /* libSDWebImage.a */; }; 18 4317396A1CDFCCE20008FEB9 /* libSDWebImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA248D741954841D00390AB0 /* libSDWebImage.a */; };
13 43A629D31D0DFD000089D7DD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A629D21D0DFD000089D7DD /* AppDelegate.m */; }; 19 43A629D31D0DFD000089D7DD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A629D21D0DFD000089D7DD /* AppDelegate.m */; };
14 43A629D61D0DFD000089D7DD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A629D51D0DFD000089D7DD /* main.m */; }; 20 43A629D61D0DFD000089D7DD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 43A629D51D0DFD000089D7DD /* main.m */; };
@@ -55,6 +61,13 @@ @@ -55,6 +61,13 @@
55 remoteGlobalIDString = 4314D11B1D0E0E3B004B36C9; 61 remoteGlobalIDString = 4314D11B1D0E0E3B004B36C9;
56 remoteInfo = "SDWebImage watchOS static"; 62 remoteInfo = "SDWebImage watchOS static";
57 }; 63 };
  64 + 4314D1BA1D0E11A0004B36C9 /* PBXContainerItemProxy */ = {
  65 + isa = PBXContainerItemProxy;
  66 + containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
  67 + proxyType = 1;
  68 + remoteGlobalIDString = 00733A4B1BC487C000A5A117;
  69 + remoteInfo = "SDWebImage tvOS";
  70 + };
58 4317395F1CDFCC370008FEB9 /* PBXContainerItemProxy */ = { 71 4317395F1CDFCC370008FEB9 /* PBXContainerItemProxy */ = {
59 isa = PBXContainerItemProxy; 72 isa = PBXContainerItemProxy;
60 containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */; 73 containerPortal = DA248D6C1954841D00390AB0 /* SDWebImage.xcodeproj */;
@@ -147,6 +160,15 @@ @@ -147,6 +160,15 @@
147 160
148 /* Begin PBXFileReference section */ 161 /* Begin PBXFileReference section */
149 3E75A9851742DBE700DA412D /* CustomPathImages */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CustomPathImages; sourceTree = SOURCE_ROOT; }; 162 3E75A9851742DBE700DA412D /* CustomPathImages */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CustomPathImages; sourceTree = SOURCE_ROOT; };
  163 + 4314D1A61D0E1181004B36C9 /* SDWebImage TV Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImage TV Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
  164 + 4314D1A91D0E1181004B36C9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
  165 + 4314D1AB1D0E1181004B36C9 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
  166 + 4314D1AC1D0E1181004B36C9 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
  167 + 4314D1AE1D0E1181004B36C9 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
  168 + 4314D1AF1D0E1182004B36C9 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
  169 + 4314D1B21D0E1182004B36C9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
  170 + 4314D1B41D0E1182004B36C9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
  171 + 4314D1B61D0E1182004B36C9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
150 43A629CF1D0DFD000089D7DD /* SDWebImage OSX Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImage OSX Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 172 43A629CF1D0DFD000089D7DD /* SDWebImage OSX Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDWebImage OSX Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
151 43A629D11D0DFD000089D7DD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 173 43A629D11D0DFD000089D7DD /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
152 43A629D21D0DFD000089D7DD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 174 43A629D21D0DFD000089D7DD /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -194,6 +216,14 @@ @@ -194,6 +216,14 @@
194 /* End PBXFileReference section */ 216 /* End PBXFileReference section */
195 217
196 /* Begin PBXFrameworksBuildPhase section */ 218 /* Begin PBXFrameworksBuildPhase section */
  219 + 4314D1A31D0E1181004B36C9 /* Frameworks */ = {
  220 + isa = PBXFrameworksBuildPhase;
  221 + buildActionMask = 2147483647;
  222 + files = (
  223 + 4314D1BC1D0E11A8004B36C9 /* SDWebImage.framework in Frameworks */,
  224 + );
  225 + runOnlyForDeploymentPostprocessing = 0;
  226 + };
197 43A629CC1D0DFD000089D7DD /* Frameworks */ = { 227 43A629CC1D0DFD000089D7DD /* Frameworks */ = {
198 isa = PBXFrameworksBuildPhase; 228 isa = PBXFrameworksBuildPhase;
199 buildActionMask = 2147483647; 229 buildActionMask = 2147483647;
@@ -226,6 +256,29 @@ @@ -226,6 +256,29 @@
226 /* End PBXFrameworksBuildPhase section */ 256 /* End PBXFrameworksBuildPhase section */
227 257
228 /* Begin PBXGroup section */ 258 /* Begin PBXGroup section */
  259 + 4314D1A71D0E1181004B36C9 /* SDWebImage TV Demo */ = {
  260 + isa = PBXGroup;
  261 + children = (
  262 + 4314D1AB1D0E1181004B36C9 /* AppDelegate.h */,
  263 + 4314D1AC1D0E1181004B36C9 /* AppDelegate.m */,
  264 + 4314D1AE1D0E1181004B36C9 /* ViewController.h */,
  265 + 4314D1AF1D0E1182004B36C9 /* ViewController.m */,
  266 + 4314D1B11D0E1182004B36C9 /* Main.storyboard */,
  267 + 4314D1B41D0E1182004B36C9 /* Assets.xcassets */,
  268 + 4314D1B61D0E1182004B36C9 /* Info.plist */,
  269 + 4314D1A81D0E1181004B36C9 /* Supporting Files */,
  270 + );
  271 + path = "SDWebImage TV Demo";
  272 + sourceTree = "<group>";
  273 + };
  274 + 4314D1A81D0E1181004B36C9 /* Supporting Files */ = {
  275 + isa = PBXGroup;
  276 + children = (
  277 + 4314D1A91D0E1181004B36C9 /* main.m */,
  278 + );
  279 + name = "Supporting Files";
  280 + sourceTree = "<group>";
  281 + };
229 43A629D01D0DFD000089D7DD /* SDWebImage OSX Demo */ = { 282 43A629D01D0DFD000089D7DD /* SDWebImage OSX Demo */ = {
230 isa = PBXGroup; 283 isa = PBXGroup;
231 children = ( 284 children = (
@@ -291,6 +344,7 @@ @@ -291,6 +344,7 @@
291 43A629D01D0DFD000089D7DD /* SDWebImage OSX Demo */, 344 43A629D01D0DFD000089D7DD /* SDWebImage OSX Demo */,
292 43A629EF1D0E07600089D7DD /* SDWebImage Watch Demo */, 345 43A629EF1D0E07600089D7DD /* SDWebImage Watch Demo */,
293 43A629FE1D0E07600089D7DD /* SDWebImage Watch Demo Extension */, 346 43A629FE1D0E07600089D7DD /* SDWebImage Watch Demo Extension */,
  347 + 4314D1A71D0E1181004B36C9 /* SDWebImage TV Demo */,
294 53761298155AB74D005750A4 /* Frameworks */, 348 53761298155AB74D005750A4 /* Frameworks */,
295 53761296155AB74D005750A4 /* Products */, 349 53761296155AB74D005750A4 /* Products */,
296 ); 350 );
@@ -303,6 +357,7 @@ @@ -303,6 +357,7 @@
303 43A629CF1D0DFD000089D7DD /* SDWebImage OSX Demo.app */, 357 43A629CF1D0DFD000089D7DD /* SDWebImage OSX Demo.app */,
304 43A629EE1D0E07600089D7DD /* SDWebImage Watch Demo.app */, 358 43A629EE1D0E07600089D7DD /* SDWebImage Watch Demo.app */,
305 43A629FA1D0E07600089D7DD /* SDWebImage Watch Demo Extension.appex */, 359 43A629FA1D0E07600089D7DD /* SDWebImage Watch Demo Extension.appex */,
  360 + 4314D1A61D0E1181004B36C9 /* SDWebImage TV Demo.app */,
306 ); 361 );
307 name = Products; 362 name = Products;
308 sourceTree = "<group>"; 363 sourceTree = "<group>";
@@ -365,6 +420,24 @@ @@ -365,6 +420,24 @@
365 /* End PBXGroup section */ 420 /* End PBXGroup section */
366 421
367 /* Begin PBXNativeTarget section */ 422 /* Begin PBXNativeTarget section */
  423 + 4314D1A51D0E1181004B36C9 /* SDWebImage TV Demo */ = {
  424 + isa = PBXNativeTarget;
  425 + buildConfigurationList = 4314D1B71D0E1182004B36C9 /* Build configuration list for PBXNativeTarget "SDWebImage TV Demo" */;
  426 + buildPhases = (
  427 + 4314D1A21D0E1181004B36C9 /* Sources */,
  428 + 4314D1A31D0E1181004B36C9 /* Frameworks */,
  429 + 4314D1A41D0E1181004B36C9 /* Resources */,
  430 + );
  431 + buildRules = (
  432 + );
  433 + dependencies = (
  434 + 4314D1BB1D0E11A0004B36C9 /* PBXTargetDependency */,
  435 + );
  436 + name = "SDWebImage TV Demo";
  437 + productName = "SDWebImage TV Demo";
  438 + productReference = 4314D1A61D0E1181004B36C9 /* SDWebImage TV Demo.app */;
  439 + productType = "com.apple.product-type.application";
  440 + };
368 43A629CE1D0DFD000089D7DD /* SDWebImage OSX Demo */ = { 441 43A629CE1D0DFD000089D7DD /* SDWebImage OSX Demo */ = {
369 isa = PBXNativeTarget; 442 isa = PBXNativeTarget;
370 buildConfigurationList = 43A629E81D0DFD000089D7DD /* Build configuration list for PBXNativeTarget "SDWebImage OSX Demo" */; 443 buildConfigurationList = 43A629E81D0DFD000089D7DD /* Build configuration list for PBXNativeTarget "SDWebImage OSX Demo" */;
@@ -447,6 +520,9 @@ @@ -447,6 +520,9 @@
447 LastUpgradeCheck = 0710; 520 LastUpgradeCheck = 0710;
448 ORGANIZATIONNAME = Dailymotion; 521 ORGANIZATIONNAME = Dailymotion;
449 TargetAttributes = { 522 TargetAttributes = {
  523 + 4314D1A51D0E1181004B36C9 = {
  524 + CreatedOnToolsVersion = 7.3.1;
  525 + };
450 43A629CE1D0DFD000089D7DD = { 526 43A629CE1D0DFD000089D7DD = {
451 CreatedOnToolsVersion = 7.3.1; 527 CreatedOnToolsVersion = 7.3.1;
452 }; 528 };
@@ -481,6 +557,7 @@ @@ -481,6 +557,7 @@
481 43A629CE1D0DFD000089D7DD /* SDWebImage OSX Demo */, 557 43A629CE1D0DFD000089D7DD /* SDWebImage OSX Demo */,
482 43A629ED1D0E07600089D7DD /* SDWebImage Watch Demo */, 558 43A629ED1D0E07600089D7DD /* SDWebImage Watch Demo */,
483 43A629F91D0E07600089D7DD /* SDWebImage Watch Demo Extension */, 559 43A629F91D0E07600089D7DD /* SDWebImage Watch Demo Extension */,
  560 + 4314D1A51D0E1181004B36C9 /* SDWebImage TV Demo */,
484 ); 561 );
485 }; 562 };
486 /* End PBXProject section */ 563 /* End PBXProject section */
@@ -531,6 +608,15 @@ @@ -531,6 +608,15 @@
531 /* End PBXReferenceProxy section */ 608 /* End PBXReferenceProxy section */
532 609
533 /* Begin PBXResourcesBuildPhase section */ 610 /* Begin PBXResourcesBuildPhase section */
  611 + 4314D1A41D0E1181004B36C9 /* Resources */ = {
  612 + isa = PBXResourcesBuildPhase;
  613 + buildActionMask = 2147483647;
  614 + files = (
  615 + 4314D1B51D0E1182004B36C9 /* Assets.xcassets in Resources */,
  616 + 4314D1B31D0E1182004B36C9 /* Main.storyboard in Resources */,
  617 + );
  618 + runOnlyForDeploymentPostprocessing = 0;
  619 + };
534 43A629CD1D0DFD000089D7DD /* Resources */ = { 620 43A629CD1D0DFD000089D7DD /* Resources */ = {
535 isa = PBXResourcesBuildPhase; 621 isa = PBXResourcesBuildPhase;
536 buildActionMask = 2147483647; 622 buildActionMask = 2147483647;
@@ -573,6 +659,16 @@ @@ -573,6 +659,16 @@
573 /* End PBXResourcesBuildPhase section */ 659 /* End PBXResourcesBuildPhase section */
574 660
575 /* Begin PBXSourcesBuildPhase section */ 661 /* Begin PBXSourcesBuildPhase section */
  662 + 4314D1A21D0E1181004B36C9 /* Sources */ = {
  663 + isa = PBXSourcesBuildPhase;
  664 + buildActionMask = 2147483647;
  665 + files = (
  666 + 4314D1B01D0E1182004B36C9 /* ViewController.m in Sources */,
  667 + 4314D1AD1D0E1181004B36C9 /* AppDelegate.m in Sources */,
  668 + 4314D1AA1D0E1181004B36C9 /* main.m in Sources */,
  669 + );
  670 + runOnlyForDeploymentPostprocessing = 0;
  671 + };
576 43A629CB1D0DFD000089D7DD /* Sources */ = { 672 43A629CB1D0DFD000089D7DD /* Sources */ = {
577 isa = PBXSourcesBuildPhase; 673 isa = PBXSourcesBuildPhase;
578 buildActionMask = 2147483647; 674 buildActionMask = 2147483647;
@@ -612,6 +708,11 @@ @@ -612,6 +708,11 @@
612 name = "SDWebImage watchOS static"; 708 name = "SDWebImage watchOS static";
613 targetProxy = 4314D19F1D0E0EBD004B36C9 /* PBXContainerItemProxy */; 709 targetProxy = 4314D19F1D0E0EBD004B36C9 /* PBXContainerItemProxy */;
614 }; 710 };
  711 + 4314D1BB1D0E11A0004B36C9 /* PBXTargetDependency */ = {
  712 + isa = PBXTargetDependency;
  713 + name = "SDWebImage tvOS";
  714 + targetProxy = 4314D1BA1D0E11A0004B36C9 /* PBXContainerItemProxy */;
  715 + };
615 431739691CDFCCDE0008FEB9 /* PBXTargetDependency */ = { 716 431739691CDFCCDE0008FEB9 /* PBXTargetDependency */ = {
616 isa = PBXTargetDependency; 717 isa = PBXTargetDependency;
617 name = SDWebImage; 718 name = SDWebImage;
@@ -635,6 +736,14 @@ @@ -635,6 +736,14 @@
635 /* End PBXTargetDependency section */ 736 /* End PBXTargetDependency section */
636 737
637 /* Begin PBXVariantGroup section */ 738 /* Begin PBXVariantGroup section */
  739 + 4314D1B11D0E1182004B36C9 /* Main.storyboard */ = {
  740 + isa = PBXVariantGroup;
  741 + children = (
  742 + 4314D1B21D0E1182004B36C9 /* Base */,
  743 + );
  744 + name = Main.storyboard;
  745 + sourceTree = "<group>";
  746 + };
638 43A629DC1D0DFD000089D7DD /* Main.storyboard */ = { 747 43A629DC1D0DFD000089D7DD /* Main.storyboard */ = {
639 isa = PBXVariantGroup; 748 isa = PBXVariantGroup;
640 children = ( 749 children = (
@@ -670,6 +779,84 @@ @@ -670,6 +779,84 @@
670 /* End PBXVariantGroup section */ 779 /* End PBXVariantGroup section */
671 780
672 /* Begin XCBuildConfiguration section */ 781 /* Begin XCBuildConfiguration section */
  782 + 4314D1B81D0E1182004B36C9 /* Debug */ = {
  783 + isa = XCBuildConfiguration;
  784 + buildSettings = {
  785 + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
  786 + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
  787 + CLANG_ANALYZER_NONNULL = YES;
  788 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  789 + CLANG_CXX_LIBRARY = "libc++";
  790 + CLANG_ENABLE_MODULES = YES;
  791 + CLANG_WARN_BOOL_CONVERSION = YES;
  792 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  793 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  794 + CLANG_WARN_EMPTY_BODY = YES;
  795 + CLANG_WARN_ENUM_CONVERSION = YES;
  796 + CLANG_WARN_INT_CONVERSION = YES;
  797 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  798 + CLANG_WARN_UNREACHABLE_CODE = YES;
  799 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  800 + DEBUG_INFORMATION_FORMAT = dwarf;
  801 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  802 + GCC_C_LANGUAGE_STANDARD = gnu99;
  803 + GCC_NO_COMMON_BLOCKS = YES;
  804 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  805 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  806 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  807 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  808 + GCC_WARN_UNUSED_FUNCTION = YES;
  809 + INFOPLIST_FILE = "SDWebImage TV Demo/Info.plist";
  810 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  811 + MTL_ENABLE_DEBUG_INFO = YES;
  812 + PRODUCT_BUNDLE_IDENTIFIER = "com.dailymotion.SDWebImage-TV-Demo";
  813 + PRODUCT_NAME = "$(TARGET_NAME)";
  814 + SDKROOT = appletvos;
  815 + TARGETED_DEVICE_FAMILY = 3;
  816 + TVOS_DEPLOYMENT_TARGET = 9.2;
  817 + };
  818 + name = Debug;
  819 + };
  820 + 4314D1B91D0E1182004B36C9 /* Release */ = {
  821 + isa = XCBuildConfiguration;
  822 + buildSettings = {
  823 + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
  824 + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
  825 + CLANG_ANALYZER_NONNULL = YES;
  826 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  827 + CLANG_CXX_LIBRARY = "libc++";
  828 + CLANG_ENABLE_MODULES = YES;
  829 + CLANG_WARN_BOOL_CONVERSION = YES;
  830 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  831 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  832 + CLANG_WARN_EMPTY_BODY = YES;
  833 + CLANG_WARN_ENUM_CONVERSION = YES;
  834 + CLANG_WARN_INT_CONVERSION = YES;
  835 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  836 + CLANG_WARN_UNREACHABLE_CODE = YES;
  837 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  838 + COPY_PHASE_STRIP = NO;
  839 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  840 + ENABLE_NS_ASSERTIONS = NO;
  841 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  842 + GCC_C_LANGUAGE_STANDARD = gnu99;
  843 + GCC_NO_COMMON_BLOCKS = YES;
  844 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  845 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  846 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  847 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  848 + GCC_WARN_UNUSED_FUNCTION = YES;
  849 + INFOPLIST_FILE = "SDWebImage TV Demo/Info.plist";
  850 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  851 + MTL_ENABLE_DEBUG_INFO = NO;
  852 + PRODUCT_BUNDLE_IDENTIFIER = "com.dailymotion.SDWebImage-TV-Demo";
  853 + PRODUCT_NAME = "$(TARGET_NAME)";
  854 + SDKROOT = appletvos;
  855 + TARGETED_DEVICE_FAMILY = 3;
  856 + TVOS_DEPLOYMENT_TARGET = 9.2;
  857 + };
  858 + name = Release;
  859 + };
673 43A629E01D0DFD000089D7DD /* Debug */ = { 860 43A629E01D0DFD000089D7DD /* Debug */ = {
674 isa = XCBuildConfiguration; 861 isa = XCBuildConfiguration;
675 buildSettings = { 862 buildSettings = {
@@ -995,6 +1182,14 @@ @@ -995,6 +1182,14 @@
995 /* End XCBuildConfiguration section */ 1182 /* End XCBuildConfiguration section */
996 1183
997 /* Begin XCConfigurationList section */ 1184 /* Begin XCConfigurationList section */
  1185 + 4314D1B71D0E1182004B36C9 /* Build configuration list for PBXNativeTarget "SDWebImage TV Demo" */ = {
  1186 + isa = XCConfigurationList;
  1187 + buildConfigurations = (
  1188 + 4314D1B81D0E1182004B36C9 /* Debug */,
  1189 + 4314D1B91D0E1182004B36C9 /* Release */,
  1190 + );
  1191 + defaultConfigurationIsVisible = 0;
  1192 + };
998 43A629E81D0DFD000089D7DD /* Build configuration list for PBXNativeTarget "SDWebImage OSX Demo" */ = { 1193 43A629E81D0DFD000089D7DD /* Build configuration list for PBXNativeTarget "SDWebImage OSX Demo" */ = {
999 isa = XCConfigurationList; 1194 isa = XCConfigurationList;
1000 buildConfigurations = ( 1195 buildConfigurations = (
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0730"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForTesting = "YES"
  11 + buildForRunning = "YES"
  12 + buildForProfiling = "YES"
  13 + buildForArchiving = "YES"
  14 + buildForAnalyzing = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "4314D1A51D0E1181004B36C9"
  18 + BuildableName = "SDWebImage TV Demo.app"
  19 + BlueprintName = "SDWebImage TV Demo"
  20 + ReferencedContainer = "container:SDWebImage Demo.xcodeproj">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + buildConfiguration = "Debug"
  27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  29 + shouldUseLaunchSchemeArgsEnv = "YES">
  30 + <Testables>
  31 + </Testables>
  32 + <MacroExpansion>
  33 + <BuildableReference
  34 + BuildableIdentifier = "primary"
  35 + BlueprintIdentifier = "4314D1A51D0E1181004B36C9"
  36 + BuildableName = "SDWebImage TV Demo.app"
  37 + BlueprintName = "SDWebImage TV Demo"
  38 + ReferencedContainer = "container:SDWebImage Demo.xcodeproj">
  39 + </BuildableReference>
  40 + </MacroExpansion>
  41 + <AdditionalOptions>
  42 + </AdditionalOptions>
  43 + </TestAction>
  44 + <LaunchAction
  45 + buildConfiguration = "Debug"
  46 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  47 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  48 + launchStyle = "0"
  49 + useCustomWorkingDirectory = "NO"
  50 + ignoresPersistentStateOnLaunch = "NO"
  51 + debugDocumentVersioning = "YES"
  52 + debugServiceExtension = "internal"
  53 + allowLocationSimulation = "YES">
  54 + <BuildableProductRunnable
  55 + runnableDebuggingMode = "0">
  56 + <BuildableReference
  57 + BuildableIdentifier = "primary"
  58 + BlueprintIdentifier = "4314D1A51D0E1181004B36C9"
  59 + BuildableName = "SDWebImage TV Demo.app"
  60 + BlueprintName = "SDWebImage TV Demo"
  61 + ReferencedContainer = "container:SDWebImage Demo.xcodeproj">
  62 + </BuildableReference>
  63 + </BuildableProductRunnable>
  64 + <AdditionalOptions>
  65 + </AdditionalOptions>
  66 + </LaunchAction>
  67 + <ProfileAction
  68 + buildConfiguration = "Release"
  69 + shouldUseLaunchSchemeArgsEnv = "YES"
  70 + savedToolIdentifier = ""
  71 + useCustomWorkingDirectory = "NO"
  72 + debugDocumentVersioning = "YES">
  73 + <BuildableProductRunnable
  74 + runnableDebuggingMode = "0">
  75 + <BuildableReference
  76 + BuildableIdentifier = "primary"
  77 + BlueprintIdentifier = "4314D1A51D0E1181004B36C9"
  78 + BuildableName = "SDWebImage TV Demo.app"
  79 + BlueprintName = "SDWebImage TV Demo"
  80 + ReferencedContainer = "container:SDWebImage Demo.xcodeproj">
  81 + </BuildableReference>
  82 + </BuildableProductRunnable>
  83 + </ProfileAction>
  84 + <AnalyzeAction
  85 + buildConfiguration = "Debug">
  86 + </AnalyzeAction>
  87 + <ArchiveAction
  88 + buildConfiguration = "Release"
  89 + revealArchiveInOrganizer = "YES">
  90 + </ArchiveAction>
  91 +</Scheme>
  1 +//
  2 +// AppDelegate.h
  3 +// SDWebImage TV Demo
  4 +//
  5 +// Created by Bogdan on 13/06/16.
  6 +// Copyright © 2016 Dailymotion. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface AppDelegate : UIResponder <UIApplicationDelegate>
  12 +
  13 +@property (strong, nonatomic) UIWindow *window;
  14 +
  15 +
  16 +@end
  17 +
  1 +//
  2 +// AppDelegate.m
  3 +// SDWebImage TV Demo
  4 +//
  5 +// Created by Bogdan on 13/06/16.
  6 +// Copyright © 2016 Dailymotion. All rights reserved.
  7 +//
  8 +
  9 +#import "AppDelegate.h"
  10 +
  11 +@interface AppDelegate ()
  12 +
  13 +@end
  14 +
  15 +@implementation AppDelegate
  16 +
  17 +
  18 +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  19 + // Override point for customization after application launch.
  20 + return YES;
  21 +}
  22 +
  23 +- (void)applicationWillResignActive:(UIApplication *)application {
  24 + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
  25 + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
  26 +}
  27 +
  28 +- (void)applicationDidEnterBackground:(UIApplication *)application {
  29 + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
  30 + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
  31 +}
  32 +
  33 +- (void)applicationWillEnterForeground:(UIApplication *)application {
  34 + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
  35 +}
  36 +
  37 +- (void)applicationDidBecomeActive:(UIApplication *)application {
  38 + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
  39 +}
  40 +
  41 +- (void)applicationWillTerminate:(UIApplication *)application {
  42 + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
  43 +}
  44 +
  45 +@end
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "layers" : [
  3 + {
  4 + "filename" : "Front.imagestacklayer"
  5 + },
  6 + {
  7 + "filename" : "Middle.imagestacklayer"
  8 + },
  9 + {
  10 + "filename" : "Back.imagestacklayer"
  11 + }
  12 + ],
  13 + "info" : {
  14 + "version" : 1,
  15 + "author" : "xcode"
  16 + }
  17 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "layers" : [
  3 + {
  4 + "filename" : "Front.imagestacklayer"
  5 + },
  6 + {
  7 + "filename" : "Middle.imagestacklayer"
  8 + },
  9 + {
  10 + "filename" : "Back.imagestacklayer"
  11 + }
  12 + ],
  13 + "info" : {
  14 + "version" : 1,
  15 + "author" : "xcode"
  16 + }
  17 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "assets" : [
  3 + {
  4 + "size" : "1280x768",
  5 + "idiom" : "tv",
  6 + "filename" : "App Icon - Large.imagestack",
  7 + "role" : "primary-app-icon"
  8 + },
  9 + {
  10 + "size" : "400x240",
  11 + "idiom" : "tv",
  12 + "filename" : "App Icon - Small.imagestack",
  13 + "role" : "primary-app-icon"
  14 + },
  15 + {
  16 + "size" : "1920x720",
  17 + "idiom" : "tv",
  18 + "filename" : "Top Shelf Image.imageset",
  19 + "role" : "top-shelf-image"
  20 + }
  21 + ],
  22 + "info" : {
  23 + "version" : 1,
  24 + "author" : "xcode"
  25 + }
  26 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "tv",
  5 + "scale" : "1x"
  6 + }
  7 + ],
  8 + "info" : {
  9 + "version" : 1,
  10 + "author" : "xcode"
  11 + }
  12 +}
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "orientation" : "landscape",
  5 + "idiom" : "tv",
  6 + "extent" : "full-screen",
  7 + "minimum-system-version" : "9.0",
  8 + "scale" : "1x"
  9 + }
  10 + ],
  11 + "info" : {
  12 + "version" : 1,
  13 + "author" : "xcode"
  14 + }
  15 +}
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder.AppleTV.Storyboard" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" initialViewController="BYZ-38-t0r">
  3 + <dependencies>
  4 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
  5 + </dependencies>
  6 + <scenes>
  7 + <!--View Controller-->
  8 + <scene sceneID="tne-QT-ifu">
  9 + <objects>
  10 + <viewController id="BYZ-38-t0r" customClass="ViewController" sceneMemberID="viewController">
  11 + <layoutGuides>
  12 + <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
  13 + <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
  14 + </layoutGuides>
  15 + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
  16 + <rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/>
  17 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  18 + <subviews>
  19 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xeq-iS-C6S" customClass="FLAnimatedImageView">
  20 + <rect key="frame" x="20" y="20" width="300" height="200"/>
  21 + </imageView>
  22 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="c5h-Lg-aZx" customClass="FLAnimatedImageView">
  23 + <rect key="frame" x="636" y="20" width="300" height="200"/>
  24 + </imageView>
  25 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Udx-nH-mbX" customClass="FLAnimatedImageView">
  26 + <rect key="frame" x="944" y="20" width="300" height="200"/>
  27 + </imageView>
  28 + <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xvm-ne-7D9" customClass="FLAnimatedImageView">
  29 + <rect key="frame" x="328" y="20" width="300" height="200"/>
  30 + </imageView>
  31 + </subviews>
  32 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
  33 + </view>
  34 + <connections>
  35 + <outlet property="imageView1" destination="xeq-iS-C6S" id="4gp-UN-VjW"/>
  36 + <outlet property="imageView2" destination="xvm-ne-7D9" id="m95-tV-LXY"/>
  37 + <outlet property="imageView3" destination="c5h-Lg-aZx" id="9Hg-WX-Sl2"/>
  38 + <outlet property="imageView4" destination="Udx-nH-mbX" id="lEI-yT-cZa"/>
  39 + </connections>
  40 + </viewController>
  41 + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
  42 + </objects>
  43 + </scene>
  44 + </scenes>
  45 +</document>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>NSAppTransportSecurity</key>
  6 + <dict>
  7 + <key>NSAllowsArbitraryLoads</key>
  8 + <true/>
  9 + </dict>
  10 + <key>CFBundleDevelopmentRegion</key>
  11 + <string>en</string>
  12 + <key>CFBundleExecutable</key>
  13 + <string>$(EXECUTABLE_NAME)</string>
  14 + <key>CFBundleIdentifier</key>
  15 + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
  16 + <key>CFBundleInfoDictionaryVersion</key>
  17 + <string>6.0</string>
  18 + <key>CFBundleName</key>
  19 + <string>$(PRODUCT_NAME)</string>
  20 + <key>CFBundlePackageType</key>
  21 + <string>APPL</string>
  22 + <key>CFBundleShortVersionString</key>
  23 + <string>1.0</string>
  24 + <key>CFBundleSignature</key>
  25 + <string>????</string>
  26 + <key>CFBundleVersion</key>
  27 + <string>1</string>
  28 + <key>LSRequiresIPhoneOS</key>
  29 + <true/>
  30 + <key>UIMainStoryboardFile</key>
  31 + <string>Main</string>
  32 + <key>UIRequiredDeviceCapabilities</key>
  33 + <array>
  34 + <string>arm64</string>
  35 + </array>
  36 +</dict>
  37 +</plist>
  1 +//
  2 +// ViewController.h
  3 +// SDWebImage TV Demo
  4 +//
  5 +// Created by Bogdan on 13/06/16.
  6 +// Copyright © 2016 Dailymotion. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface ViewController : UIViewController
  12 +
  13 +@end
  14 +
  1 +//
  2 +// ViewController.m
  3 +// SDWebImage TV Demo
  4 +//
  5 +// Created by Bogdan on 13/06/16.
  6 +// Copyright © 2016 Dailymotion. All rights reserved.
  7 +//
  8 +
  9 +#import "ViewController.h"
  10 +#import <SDWebImage/FLAnimatedImageView+WebCache.h>
  11 +
  12 +@interface ViewController ()
  13 +
  14 +@property (weak, nonatomic) IBOutlet FLAnimatedImageView *imageView1;
  15 +@property (weak, nonatomic) IBOutlet FLAnimatedImageView *imageView2;
  16 +@property (weak, nonatomic) IBOutlet FLAnimatedImageView *imageView3;
  17 +@property (weak, nonatomic) IBOutlet FLAnimatedImageView *imageView4;
  18 +
  19 +@end
  20 +
  21 +
  22 +@implementation ViewController
  23 +
  24 +- (void)viewDidLoad {
  25 + [super viewDidLoad];
  26 + // Do any additional setup after loading the view, typically from a nib.
  27 +
  28 + [self.imageView1 sd_setImageWithURL:[NSURL URLWithString:@"http://assets.sbnation.com/assets/2512203/dogflops.gif"]];
  29 + [self.imageView2 sd_setImageWithURL:[NSURL URLWithString:@"http://www.ioncannon.net/wp-content/uploads/2011/06/test2.webp"]];
  30 + [self.imageView3 sd_setImageWithURL:[NSURL URLWithString:@"http://s3.amazonaws.com/fast-image-cache/demo-images/FICDDemoImage000.jpg"]];
  31 + [self.imageView4 sd_setImageWithURL:[NSURL URLWithString:@"http://s3.amazonaws.com/fast-image-cache/demo-images/FICDDemoImage001.jpg"]];
  32 +}
  33 +
  34 +- (void)didReceiveMemoryWarning {
  35 + [super didReceiveMemoryWarning];
  36 + // Dispose of any resources that can be recreated.
  37 +}
  38 +
  39 +@end
  1 +//
  2 +// main.m
  3 +// SDWebImage TV Demo
  4 +//
  5 +// Created by Bogdan on 13/06/16.
  6 +// Copyright © 2016 Dailymotion. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +#import "AppDelegate.h"
  11 +
  12 +int main(int argc, char * argv[]) {
  13 + @autoreleasepool {
  14 + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  15 + }
  16 +}
@@ -42,3 +42,6 @@ FOUNDATION_EXPORT const unsigned char WebImageVersionString[]; @@ -42,3 +42,6 @@ FOUNDATION_EXPORT const unsigned char WebImageVersionString[];
42 #if SD_MAC 42 #if SD_MAC
43 #import <SDWebImage/NSImage+WebCache.h> 43 #import <SDWebImage/NSImage+WebCache.h>
44 #endif 44 #endif
  45 +#if SD_UIKIT
  46 +#import <SDWebImage/FLAnimatedImageView+WebCache.h>
  47 +#endif