From 19280d27b3f97f98ea33e2a7f71e579ced41afca Mon Sep 17 00:00:00 2001 From: Sherlock Date: Wed, 16 Nov 2016 08:01:27 -0800 Subject: [PATCH] Created tvOS Example Pack Summary: - Created a new workspace for tvOS examples w/ Cocoapods & dependency on IGListKit - Created a demo chooser across the same lines as the iOS equivalent - Duplicated the 'Nested Adapter' example from iOS pack to the tvOS example - Uses native navigation to get around, created focus/active states for cells - Updated `travis.yml` to optionally build tvOS example pack Note: Not added any imagery/icons/etc due to the much larger & different sizes required - If they're desired then someone with skills will need to provide them! Closes #138 Relates to #137 - [x] All tests pass. Demo project builds and runs. - [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/CONTRIBUTING.md) Closes https://github.com/Instagram/IGListKit/pull/141 Differential Revision: D4189645 Pulled By: rnystrom fbshipit-source-id: 7a2b8e7a50ed2a9bbbf68d5f446a4e0077214ffa --- .travis.yml | 11 +- CHANGELOG.md | 1 + .../project.pbxproj | 425 ++++++++++ .../contents.xcworkspacedata | 7 + .../xcschemes/IGListKitExamples.xcscheme | 91 ++ .../contents.xcworkspacedata | 10 + .../IGListKitExamples/AppDelegate.swift | 29 + .../Content.imageset/Contents.json | 12 + .../Back.imagestacklayer/Contents.json | 6 + .../App Icon - Large.imagestack/Contents.json | 17 + .../Content.imageset/Contents.json | 12 + .../Front.imagestacklayer/Contents.json | 6 + .../Content.imageset/Contents.json | 12 + .../Middle.imagestacklayer/Contents.json | 6 + .../Content.imageset/Contents.json | 12 + .../Back.imagestacklayer/Contents.json | 6 + .../App Icon - Small.imagestack/Contents.json | 17 + .../Content.imageset/Contents.json | 12 + .../Front.imagestacklayer/Contents.json | 6 + .../Content.imageset/Contents.json | 12 + .../Middle.imagestacklayer/Contents.json | 6 + .../Contents.json | 32 + .../Contents.json | 12 + .../Top Shelf Image.imageset/Contents.json | 12 + .../Assets.xcassets/Contents.json | 6 + .../LaunchImage.launchimage/Contents.json | 15 + Examples-tvOS/IGListKitExamples/Info.plist | 32 + .../CarouselSectionController.swift | 52 ++ .../DemoSectionController.swift | 74 ++ .../HorizontalSectionController.swift | 68 ++ .../LabelSectionController.swift | 42 + .../ViewControllers/DemosViewController.swift | 56 ++ .../NestedAdapterViewController.swift | 65 ++ .../Views/CarouselCell.swift | 20 + .../IGListKitExamples/Views/CarouselCell.xib | 40 + .../IGListKitExamples/Views/DemoCell.swift | 41 + .../Views/EmbeddedCollectionViewCell.swift | 42 + .../IGListKitExamples/Views/LabelCell.swift | 65 ++ Examples-tvOS/LICENSE-examples.md | 11 + Examples-tvOS/Podfile | 5 + Examples-tvOS/Podfile.lock | 16 + .../Local Podspecs/IGListKit.podspec.json | 31 + Examples-tvOS/Pods/Manifest.lock | 16 + .../Pods/Pods.xcodeproj/project.pbxproj | 802 ++++++++++++++++++ .../IGListKit/IGListKit-dummy.m | 5 + .../IGListKit/IGListKit-prefix.pch | 4 + .../IGListKit/IGListKit-umbrella.h | 37 + .../IGListKit/IGListKit.modulemap | 6 + .../IGListKit/IGListKit.xcconfig | 11 + .../Target Support Files/IGListKit/Info.plist | 30 + .../Pods-IGListKitExamples/Info.plist | 30 + ...GListKitExamples-acknowledgements.markdown | 37 + ...s-IGListKitExamples-acknowledgements.plist | 69 ++ .../Pods-IGListKitExamples-dummy.m | 5 + .../Pods-IGListKitExamples-frameworks.sh | 91 ++ .../Pods-IGListKitExamples-resources.sh | 96 +++ .../Pods-IGListKitExamples-umbrella.h | 8 + .../Pods-IGListKitExamples.debug.xcconfig | 9 + .../Pods-IGListKitExamples.modulemap | 6 + .../Pods-IGListKitExamples.release.xcconfig | 9 + 60 files changed, 2721 insertions(+), 3 deletions(-) create mode 100644 Examples-tvOS/IGListKitExamples.xcodeproj/project.pbxproj create mode 100644 Examples-tvOS/IGListKitExamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Examples-tvOS/IGListKitExamples.xcodeproj/xcshareddata/xcschemes/IGListKitExamples.xcscheme create mode 100644 Examples-tvOS/IGListKitExamples.xcworkspace/contents.xcworkspacedata create mode 100644 Examples-tvOS/IGListKitExamples/AppDelegate.swift create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Assets.xcassets/LaunchImage.launchimage/Contents.json create mode 100644 Examples-tvOS/IGListKitExamples/Info.plist create mode 100644 Examples-tvOS/IGListKitExamples/SectionControllers/CarouselSectionController.swift create mode 100644 Examples-tvOS/IGListKitExamples/SectionControllers/DemoSectionController.swift create mode 100644 Examples-tvOS/IGListKitExamples/SectionControllers/HorizontalSectionController.swift create mode 100644 Examples-tvOS/IGListKitExamples/SectionControllers/LabelSectionController.swift create mode 100644 Examples-tvOS/IGListKitExamples/ViewControllers/DemosViewController.swift create mode 100644 Examples-tvOS/IGListKitExamples/ViewControllers/NestedAdapterViewController.swift create mode 100644 Examples-tvOS/IGListKitExamples/Views/CarouselCell.swift create mode 100644 Examples-tvOS/IGListKitExamples/Views/CarouselCell.xib create mode 100644 Examples-tvOS/IGListKitExamples/Views/DemoCell.swift create mode 100644 Examples-tvOS/IGListKitExamples/Views/EmbeddedCollectionViewCell.swift create mode 100644 Examples-tvOS/IGListKitExamples/Views/LabelCell.swift create mode 100644 Examples-tvOS/LICENSE-examples.md create mode 100644 Examples-tvOS/Podfile create mode 100644 Examples-tvOS/Podfile.lock create mode 100644 Examples-tvOS/Pods/Local Podspecs/IGListKit.podspec.json create mode 100644 Examples-tvOS/Pods/Manifest.lock create mode 100644 Examples-tvOS/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-dummy.m create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-prefix.pch create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-umbrella.h create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.modulemap create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.xcconfig create mode 100644 Examples-tvOS/Pods/Target Support Files/IGListKit/Info.plist create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Info.plist create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.markdown create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.plist create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-dummy.m create mode 100755 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh create mode 100755 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-umbrella.h create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap create mode 100644 Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig diff --git a/.travis.yml b/.travis.yml index af1158b31..3bc8ba25c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,8 +30,8 @@ env: - DESTINATION="OS=10.0,name=iPhone 6s" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO" - - DESTINATION="OS=9.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" - - DESTINATION="OS=10.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="NO" POD_LINT="NO" + - DESTINATION="OS=9.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="YES" + - DESTINATION="OS=10.0,name=Apple TV 1080p" SDK="$TVOS_SDK" SCHEME="$TVOS_SCHEME" RUN_TESTS="YES" BUILD_EXAMPLE="YES" POD_LINT="NO" script: - if [ $POD_LINT == "YES" ]; then @@ -39,11 +39,16 @@ script: fi -- if [ $BUILD_EXAMPLE == "YES" ]; then +- if [ $BUILD_EXAMPLE == "YES" ] && [ $SDK == $IOS_SDK ]; then xcodebuild build -workspace Example/IGListKitExamples.xcworkspace -scheme IGListKitExamples -sdk "$SDK" -destination "$DESTINATION" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c; fi +- if [ $BUILD_EXAMPLE == "YES" ] && [ $SDK == $TVOS_SDK ]; then + xcodebuild build -workspace Examples-tvOS/IGListKitExamples.xcworkspace -scheme IGListKitExamples -sdk "$SDK" -destination "$DESTINATION" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c; + fi + + - if [ $RUN_TESTS == "YES" ]; then xcodebuild analyze test -workspace "$WORKSPACE" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c; else diff --git a/CHANGELOG.md b/CHANGELOG.md index 241959f63..75091c04c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ This release closes the [2.0.0 milestone](https://github.com/Instagram/IGListKit - Added support for cells created from storyboard. [Bofei Zhu](https://github.com/zhubofei) [(#92)](https://github.com/Instagram/IGListKit/pull/92) - Added examples for Today & iMessage extensions. [Sherlouk](https://github.com/Sherlouk) [(#112)](https://github.com/Instagram/IGListKit/pull/112) - Added `tvOS` support. [Jesse Squires](https://github.com/jessesquires) [(#137)](https://github.com/Instagram/IGListKit/pull/137) +- Added `tvOS` example pack. [Sherlouk](https://github.com/Sherlouk) [(#141)](https://github.com/Instagram/IGListKit/pull/141) - Added new `-[IGListAdapter visibleObjects]` API. [Ryan Nystrom](https://github.com/rnystrom) [(386ae07)](https://github.com/Instagram/IGListKit/commit/386ae0786445c06e1eabf074a4181614332f155f) 1.0.0 diff --git a/Examples-tvOS/IGListKitExamples.xcodeproj/project.pbxproj b/Examples-tvOS/IGListKitExamples.xcodeproj/project.pbxproj new file mode 100644 index 000000000..0ebda993e --- /dev/null +++ b/Examples-tvOS/IGListKitExamples.xcodeproj/project.pbxproj @@ -0,0 +1,425 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 618C8CB8BC69CB9C3F7048BF /* Pods_IGListKitExamples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */; }; + 98ED5C1B1DC52AD400EA56B2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */; }; + 98ED5C1D1DC52AD400EA56B2 /* DemosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */; }; + 98ED5C221DC52AD400EA56B2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 98ED5C211DC52AD400EA56B2 /* Assets.xcassets */; }; + 98ED5C2D1DC52E7F00EA56B2 /* DemoSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */; }; + 98ED5C2F1DC52F3B00EA56B2 /* DemoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */; }; + 98ED5C321DC53B4E00EA56B2 /* CarouselCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */; }; + 98ED5C331DC53B4E00EA56B2 /* CarouselCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */; }; + 98ED5C351DC53C4000EA56B2 /* NestedAdapterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */; }; + 98ED5C371DC53CEE00EA56B2 /* LabelSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */; }; + 98ED5C391DC53D0B00EA56B2 /* LabelCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */; }; + 98ED5C3B1DC53DD000EA56B2 /* HorizontalSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */; }; + 98ED5C3D1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */; }; + 98ED5C3F1DC53EB200EA56B2 /* CarouselSectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IGListKitExamples.debug.xcconfig"; path = "Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig"; sourceTree = ""; }; + 49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IGListKitExamples.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IGListKitExamples.release.xcconfig"; path = "Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig"; sourceTree = ""; }; + 98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IGListKitExamples.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DemosViewController.swift; path = ViewControllers/DemosViewController.swift; sourceTree = ""; }; + 98ED5C211DC52AD400EA56B2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 98ED5C231DC52AD400EA56B2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DemoSectionController.swift; path = SectionControllers/DemoSectionController.swift; sourceTree = ""; }; + 98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DemoCell.swift; path = Views/DemoCell.swift; sourceTree = ""; }; + 98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CarouselCell.swift; path = Views/CarouselCell.swift; sourceTree = ""; }; + 98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CarouselCell.xib; path = Views/CarouselCell.xib; sourceTree = ""; }; + 98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NestedAdapterViewController.swift; path = ViewControllers/NestedAdapterViewController.swift; sourceTree = ""; }; + 98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LabelSectionController.swift; path = SectionControllers/LabelSectionController.swift; sourceTree = ""; }; + 98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LabelCell.swift; path = Views/LabelCell.swift; sourceTree = ""; }; + 98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HorizontalSectionController.swift; path = SectionControllers/HorizontalSectionController.swift; sourceTree = ""; }; + 98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EmbeddedCollectionViewCell.swift; path = Views/EmbeddedCollectionViewCell.swift; sourceTree = ""; }; + 98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CarouselSectionController.swift; path = SectionControllers/CarouselSectionController.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 98ED5C141DC52AD400EA56B2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 618C8CB8BC69CB9C3F7048BF /* Pods_IGListKitExamples.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4183AACA1B0BA7A44D6D4D73 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 49637028A90619543A9D9763 /* Pods_IGListKitExamples.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 98ED5C0E1DC52AD300EA56B2 = { + isa = PBXGroup; + children = ( + 98ED5C191DC52AD400EA56B2 /* IGListKitExamples */, + 98ED5C181DC52AD400EA56B2 /* Products */, + A9D83C52A5CD4F0EA0808470 /* Pods */, + 4183AACA1B0BA7A44D6D4D73 /* Frameworks */, + ); + sourceTree = ""; + }; + 98ED5C181DC52AD400EA56B2 /* Products */ = { + isa = PBXGroup; + children = ( + 98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */, + ); + name = Products; + sourceTree = ""; + }; + 98ED5C191DC52AD400EA56B2 /* IGListKitExamples */ = { + isa = PBXGroup; + children = ( + 98ED5C1A1DC52AD400EA56B2 /* AppDelegate.swift */, + 98ED5C211DC52AD400EA56B2 /* Assets.xcassets */, + 98ED5C231DC52AD400EA56B2 /* Info.plist */, + 98ED5C2B1DC52E6200EA56B2 /* SectionControllers */, + 98ED5C291DC52B2400EA56B2 /* ViewControllers */, + 98ED5C2A1DC52B2900EA56B2 /* Views */, + ); + path = IGListKitExamples; + sourceTree = ""; + }; + 98ED5C291DC52B2400EA56B2 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + 98ED5C1C1DC52AD400EA56B2 /* DemosViewController.swift */, + 98ED5C341DC53C4000EA56B2 /* NestedAdapterViewController.swift */, + ); + name = ViewControllers; + sourceTree = ""; + }; + 98ED5C2A1DC52B2900EA56B2 /* Views */ = { + isa = PBXGroup; + children = ( + 98ED5C301DC53B4E00EA56B2 /* CarouselCell.swift */, + 98ED5C311DC53B4E00EA56B2 /* CarouselCell.xib */, + 98ED5C2E1DC52F3B00EA56B2 /* DemoCell.swift */, + 98ED5C381DC53D0B00EA56B2 /* LabelCell.swift */, + 98ED5C3C1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift */, + ); + name = Views; + sourceTree = ""; + }; + 98ED5C2B1DC52E6200EA56B2 /* SectionControllers */ = { + isa = PBXGroup; + children = ( + 98ED5C2C1DC52E7F00EA56B2 /* DemoSectionController.swift */, + 98ED5C361DC53CEE00EA56B2 /* LabelSectionController.swift */, + 98ED5C3A1DC53DD000EA56B2 /* HorizontalSectionController.swift */, + 98ED5C3E1DC53EB200EA56B2 /* CarouselSectionController.swift */, + ); + name = SectionControllers; + sourceTree = ""; + }; + A9D83C52A5CD4F0EA0808470 /* Pods */ = { + isa = PBXGroup; + children = ( + 4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */, + 72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 98ED5C161DC52AD400EA56B2 /* IGListKitExamples */ = { + isa = PBXNativeTarget; + buildConfigurationList = 98ED5C261DC52AD400EA56B2 /* Build configuration list for PBXNativeTarget "IGListKitExamples" */; + buildPhases = ( + FAB2A39CE5E1DA934A22C966 /* [CP] Check Pods Manifest.lock */, + 98ED5C131DC52AD400EA56B2 /* Sources */, + 98ED5C141DC52AD400EA56B2 /* Frameworks */, + 98ED5C151DC52AD400EA56B2 /* Resources */, + BADF017CDC470DE253EA4778 /* [CP] Embed Pods Frameworks */, + 5BE912CD671FF6E4CC50620C /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = IGListKitExamples; + productName = IGListKitExamples; + productReference = 98ED5C171DC52AD400EA56B2 /* IGListKitExamples.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 98ED5C0F1DC52AD300EA56B2 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0810; + LastUpgradeCheck = 0810; + ORGANIZATIONNAME = Instagram; + TargetAttributes = { + 98ED5C161DC52AD400EA56B2 = { + CreatedOnToolsVersion = 8.1; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 98ED5C121DC52AD300EA56B2 /* Build configuration list for PBXProject "IGListKitExamples" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 98ED5C0E1DC52AD300EA56B2; + productRefGroup = 98ED5C181DC52AD400EA56B2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 98ED5C161DC52AD400EA56B2 /* IGListKitExamples */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 98ED5C151DC52AD400EA56B2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 98ED5C221DC52AD400EA56B2 /* Assets.xcassets in Resources */, + 98ED5C331DC53B4E00EA56B2 /* CarouselCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 5BE912CD671FF6E4CC50620C /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + BADF017CDC470DE253EA4778 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + FAB2A39CE5E1DA934A22C966 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 98ED5C131DC52AD400EA56B2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 98ED5C1D1DC52AD400EA56B2 /* DemosViewController.swift in Sources */, + 98ED5C1B1DC52AD400EA56B2 /* AppDelegate.swift in Sources */, + 98ED5C391DC53D0B00EA56B2 /* LabelCell.swift in Sources */, + 98ED5C2F1DC52F3B00EA56B2 /* DemoCell.swift in Sources */, + 98ED5C3F1DC53EB200EA56B2 /* CarouselSectionController.swift in Sources */, + 98ED5C2D1DC52E7F00EA56B2 /* DemoSectionController.swift in Sources */, + 98ED5C321DC53B4E00EA56B2 /* CarouselCell.swift in Sources */, + 98ED5C3D1DC53E5600EA56B2 /* EmbeddedCollectionViewCell.swift in Sources */, + 98ED5C371DC53CEE00EA56B2 /* LabelSectionController.swift in Sources */, + 98ED5C351DC53C4000EA56B2 /* NestedAdapterViewController.swift in Sources */, + 98ED5C3B1DC53DD000EA56B2 /* HorizontalSectionController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 98ED5C241DC52AD400EA56B2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = 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; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = appletvos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Debug; + }; + 98ED5C251DC52AD400EA56B2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = 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; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = appletvos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 98ED5C271DC52AD400EA56B2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4950DE37F34745C8EAB44EFC /* Pods-IGListKitExamples.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = IGListKitExamples/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.instagram.IGListKitExamples; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + 98ED5C281DC52AD400EA56B2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 72D71D21D706627594BBA17D /* Pods-IGListKitExamples.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = IGListKitExamples/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.instagram.IGListKitExamples; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 98ED5C121DC52AD300EA56B2 /* Build configuration list for PBXProject "IGListKitExamples" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 98ED5C241DC52AD400EA56B2 /* Debug */, + 98ED5C251DC52AD400EA56B2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 98ED5C261DC52AD400EA56B2 /* Build configuration list for PBXNativeTarget "IGListKitExamples" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 98ED5C271DC52AD400EA56B2 /* Debug */, + 98ED5C281DC52AD400EA56B2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 98ED5C0F1DC52AD300EA56B2 /* Project object */; +} diff --git a/Examples-tvOS/IGListKitExamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples-tvOS/IGListKitExamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..5cc62890c --- /dev/null +++ b/Examples-tvOS/IGListKitExamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Examples-tvOS/IGListKitExamples.xcodeproj/xcshareddata/xcschemes/IGListKitExamples.xcscheme b/Examples-tvOS/IGListKitExamples.xcodeproj/xcshareddata/xcschemes/IGListKitExamples.xcscheme new file mode 100644 index 000000000..3c2093368 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples.xcodeproj/xcshareddata/xcschemes/IGListKitExamples.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples-tvOS/IGListKitExamples.xcworkspace/contents.xcworkspacedata b/Examples-tvOS/IGListKitExamples.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..106ba5d01 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/Examples-tvOS/IGListKitExamples/AppDelegate.swift b/Examples-tvOS/IGListKitExamples/AppDelegate.swift new file mode 100644 index 000000000..28b78dc7e --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/AppDelegate.swift @@ -0,0 +1,29 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + window = UIWindow(frame: UIScreen.main.bounds) + window?.rootViewController = UINavigationController(rootViewController: DemosViewController()) + window?.makeKeyAndVisible() + return true + } + +} diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json new file mode 100644 index 000000000..8bf75d9f5 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json @@ -0,0 +1,17 @@ +{ + "layers" : [ + { + "filename" : "Front.imagestacklayer" + }, + { + "filename" : "Middle.imagestacklayer" + }, + { + "filename" : "Back.imagestacklayer" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json new file mode 100644 index 000000000..8bf75d9f5 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json @@ -0,0 +1,17 @@ +{ + "layers" : [ + { + "filename" : "Front.imagestacklayer" + }, + { + "filename" : "Middle.imagestacklayer" + }, + { + "filename" : "Back.imagestacklayer" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json new file mode 100644 index 000000000..6d596bc73 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json @@ -0,0 +1,32 @@ +{ + "assets" : [ + { + "size" : "1280x768", + "idiom" : "tv", + "filename" : "App Icon - Large.imagestack", + "role" : "primary-app-icon" + }, + { + "size" : "400x240", + "idiom" : "tv", + "filename" : "App Icon - Small.imagestack", + "role" : "primary-app-icon" + }, + { + "size" : "2320x720", + "idiom" : "tv", + "filename" : "Top Shelf Image Wide.imageset", + "role" : "top-shelf-image-wide" + }, + { + "size" : "1920x720", + "idiom" : "tv", + "filename" : "Top Shelf Image.imageset", + "role" : "top-shelf-image" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json new file mode 100644 index 000000000..0564959fb --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "idiom" : "tv", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Assets.xcassets/LaunchImage.launchimage/Contents.json b/Examples-tvOS/IGListKitExamples/Assets.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 000000000..29d94c787 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Assets.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "orientation" : "landscape", + "idiom" : "tv", + "extent" : "full-screen", + "minimum-system-version" : "9.0", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples-tvOS/IGListKitExamples/Info.plist b/Examples-tvOS/IGListKitExamples/Info.plist new file mode 100644 index 000000000..706e55ad3 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + IGListKit + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIRequiredDeviceCapabilities + + arm64 + + UIUserInterfaceStyle + Automatic + + diff --git a/Examples-tvOS/IGListKitExamples/SectionControllers/CarouselSectionController.swift b/Examples-tvOS/IGListKitExamples/SectionControllers/CarouselSectionController.swift new file mode 100644 index 000000000..1f9b161e6 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/SectionControllers/CarouselSectionController.swift @@ -0,0 +1,52 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class CarouselSectionController: IGListSectionController, IGListSectionType { + + var number: Int? + + override init() { + super.init() + self.inset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10) + } + + func numberOfItems() -> Int { + return 1 + } + + func sizeForItem(at index: Int) -> CGSize { + let height = collectionContext?.containerSize.height ?? 0 + let aspectRatio: CGFloat = 0.75 // 3:4 + let width = height * aspectRatio + + return CGSize(width: width, height: height) + } + + func cellForItem(at index: Int) -> UICollectionViewCell { + let cell = collectionContext!.dequeueReusableCell(withNibName: "CarouselCell", bundle: nil, for: self, at: index) as! CarouselCell + let value = number ?? 0 + cell.titleLabel.text = "#\(value + 1)" + return cell + } + + func didUpdate(to object: Any) { + number = object as? Int + } + + func didSelectItem(at index: Int) {} + +} diff --git a/Examples-tvOS/IGListKitExamples/SectionControllers/DemoSectionController.swift b/Examples-tvOS/IGListKitExamples/SectionControllers/DemoSectionController.swift new file mode 100644 index 000000000..8ba7c6b6f --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/SectionControllers/DemoSectionController.swift @@ -0,0 +1,74 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class DemoItem: NSObject { + + let name: String + let controllerClass: UIViewController.Type + let controllerIdentifier: String? + + init(name: String, + controllerClass: UIViewController.Type, + controllerIdentifier: String? = nil) { + self.name = name + self.controllerClass = controllerClass + self.controllerIdentifier = controllerIdentifier + } + +} + +final class DemoSectionController: IGListSectionController, IGListSectionType { + + var object: DemoItem? + + override init() { + super.init() + inset = UIEdgeInsets(top: 0, left: 50, bottom: 10, right: 0) + } + + func numberOfItems() -> Int { + return 1 + } + + func sizeForItem(at index: Int) -> CGSize { + let itemWidth = (collectionContext!.containerSize.width / 2) - inset.left + return CGSize(width: itemWidth, height: 100) + } + + func cellForItem(at index: Int) -> UICollectionViewCell { + let cell = collectionContext!.dequeueReusableCell(of: DemoCell.self, for: self, at: index) as! DemoCell + cell.label.text = object?.name + return cell + } + + func didUpdate(to object: Any) { + self.object = object as? DemoItem + } + + func didSelectItem(at index: Int) { + if let identifier = object?.controllerIdentifier { + let storyboard = UIStoryboard(name: "Demo", bundle: nil) + let controller = storyboard.instantiateViewController(withIdentifier: identifier) + controller.title = object?.name + viewController?.navigationController?.pushViewController(controller, animated: true) + } else if let controller = object?.controllerClass.init() { + controller.title = object?.name + viewController?.navigationController?.pushViewController(controller, animated: true) + } + } + +} diff --git a/Examples-tvOS/IGListKitExamples/SectionControllers/HorizontalSectionController.swift b/Examples-tvOS/IGListKitExamples/SectionControllers/HorizontalSectionController.swift new file mode 100644 index 000000000..b519bf3e8 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/SectionControllers/HorizontalSectionController.swift @@ -0,0 +1,68 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class HorizontalSectionController: IGListSectionController, IGListSectionType, IGListAdapterDataSource { + + var number: Int? + + lazy var adapter: IGListAdapter = { + let adapter = IGListAdapter(updater: IGListAdapterUpdater(), + viewController: self.viewController, + workingRangeSize: 0) + adapter.dataSource = self + return adapter + }() + + override init() { + super.init() + self.inset = UIEdgeInsets(top: 20, left: 0, bottom: 20, right: 0) + } + + func numberOfItems() -> Int { + return 1 + } + + func sizeForItem(at index: Int) -> CGSize { + return CGSize(width: collectionContext!.containerSize.width, height: 340) + } + + func cellForItem(at index: Int) -> UICollectionViewCell { + let cell = collectionContext!.dequeueReusableCell(of: EmbeddedCollectionViewCell.self, for: self, at: index) as! EmbeddedCollectionViewCell + adapter.collectionView = cell.collectionView + return cell + } + + func didUpdate(to object: Any) { + number = object as? Int + } + + func didSelectItem(at index: Int) {} + + // MARK: IGListAdapterDataSource + + func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] { + guard let number = number else { return [] } + return (0.. IGListSectionController { + return CarouselSectionController() + } + + func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil } + +} diff --git a/Examples-tvOS/IGListKitExamples/SectionControllers/LabelSectionController.swift b/Examples-tvOS/IGListKitExamples/SectionControllers/LabelSectionController.swift new file mode 100644 index 000000000..ed3bfd2ca --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/SectionControllers/LabelSectionController.swift @@ -0,0 +1,42 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class LabelSectionController: IGListSectionController, IGListSectionType { + + var object: String? + + func numberOfItems() -> Int { + return 1 + } + + func sizeForItem(at index: Int) -> CGSize { + return CGSize(width: collectionContext!.containerSize.width, height: 55) + } + + func cellForItem(at index: Int) -> UICollectionViewCell { + let cell = collectionContext!.dequeueReusableCell(of: LabelCell.self, for: self, at: index) as! LabelCell + cell.label.text = object + return cell + } + + func didUpdate(to object: Any) { + self.object = String(describing: object) + } + + func didSelectItem(at index: Int) {} + +} diff --git a/Examples-tvOS/IGListKitExamples/ViewControllers/DemosViewController.swift b/Examples-tvOS/IGListKitExamples/ViewControllers/DemosViewController.swift new file mode 100644 index 000000000..17b225faa --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/ViewControllers/DemosViewController.swift @@ -0,0 +1,56 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class DemosViewController: UIViewController, IGListAdapterDataSource { + + lazy var adapter: IGListAdapter = { + return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0) + }() + let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout()) + + let demos: [DemoItem] = [ + DemoItem(name: "Nested Adapter", controllerClass: NestedAdapterViewController.self) + ] + + override func viewDidLoad() { + super.viewDidLoad() + title = "Demo Chooser" + collectionView.backgroundColor = .clear + view.addSubview(collectionView) + adapter.collectionView = collectionView + adapter.dataSource = self + } + + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + collectionView.frame = view.bounds + } + + // MARK: IGListAdapterDataSource + + func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] { + return demos + } + + func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController { + return DemoSectionController() + } + + func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil } + +} + diff --git a/Examples-tvOS/IGListKitExamples/ViewControllers/NestedAdapterViewController.swift b/Examples-tvOS/IGListKitExamples/ViewControllers/NestedAdapterViewController.swift new file mode 100644 index 000000000..fc1ee7d38 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/ViewControllers/NestedAdapterViewController.swift @@ -0,0 +1,65 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class NestedAdapterViewController: UIViewController, IGListAdapterDataSource { + + lazy var adapter: IGListAdapter = { + return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0) + }() + let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout()) + + let data = [ + "Most Recent", + 10, + "Recently Watched", + 16, + "New Arrivals", + 20 + ] as [Any] + + override func viewDidLoad() { + super.viewDidLoad() + + collectionView.backgroundColor = .clear + view.addSubview(collectionView) + adapter.collectionView = collectionView + adapter.dataSource = self + } + + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + collectionView.frame = view.bounds + } + + // MARK: IGListAdapterDataSource + + func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] { + return data as! [IGListDiffable] + } + + func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController { + if object is Int { + return HorizontalSectionController() + } + + return LabelSectionController() + } + + func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil } + +} + diff --git a/Examples-tvOS/IGListKitExamples/Views/CarouselCell.swift b/Examples-tvOS/IGListKitExamples/Views/CarouselCell.swift new file mode 100644 index 000000000..711a8e91b --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Views/CarouselCell.swift @@ -0,0 +1,20 @@ +// +// CarouselCell.swift +// IGListKitExamples +// +// Created by Sherlock, James (Apprentice Software Developer) on 29/10/2016. +// Copyright © 2016 Instagram. All rights reserved. +// + +import UIKit + +final class CarouselCell: UICollectionViewCell { + @IBOutlet weak var titleLabel: UILabel! + + override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { + let normalColor = UIColor(red: 174/255.0, green: 198/255.0, blue: 207/255.0, alpha: 1) + let focusColor = UIColor(red: 117/255.0, green: 155/255.0, blue: 169/255.0, alpha: 1) + + backgroundColor = isFocused ? focusColor : normalColor + } +} diff --git a/Examples-tvOS/IGListKitExamples/Views/CarouselCell.xib b/Examples-tvOS/IGListKitExamples/Views/CarouselCell.xib new file mode 100644 index 000000000..0280c4102 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Views/CarouselCell.xib @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples-tvOS/IGListKitExamples/Views/DemoCell.swift b/Examples-tvOS/IGListKitExamples/Views/DemoCell.swift new file mode 100644 index 000000000..34849f2fe --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Views/DemoCell.swift @@ -0,0 +1,41 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit + +final class DemoCell: UICollectionViewCell { + + lazy var label: UILabel = { + let view = UILabel() + view.textColor = .black + view.font = .boldSystemFont(ofSize: 35) + self.contentView.addSubview(view) + return view + }() + + override func layoutSubviews() { + super.layoutSubviews() + contentView.backgroundColor = UIColor.white.withAlphaComponent(0.3) + label.frame = contentView.bounds.insetBy(dx: 32, dy: 16) + } + + override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { + let newBackgroundOpacity: CGFloat = isFocused ? 0.6 : 0.3 + let newFontSize: CGFloat = isFocused ? 50 : 35 + + contentView.backgroundColor = UIColor.white.withAlphaComponent(newBackgroundOpacity) + label.font = .boldSystemFont(ofSize: newFontSize) + } + +} diff --git a/Examples-tvOS/IGListKitExamples/Views/EmbeddedCollectionViewCell.swift b/Examples-tvOS/IGListKitExamples/Views/EmbeddedCollectionViewCell.swift new file mode 100644 index 000000000..5ed2e32f7 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Views/EmbeddedCollectionViewCell.swift @@ -0,0 +1,42 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit +import IGListKit + +final class EmbeddedCollectionViewCell: UICollectionViewCell { + + lazy var collectionView: IGListCollectionView = { + let layout = UICollectionViewFlowLayout() + layout.scrollDirection = .horizontal + let view = IGListCollectionView(frame: .zero, collectionViewLayout: layout) + view.backgroundColor = .clear + view.alwaysBounceVertical = false + view.alwaysBounceHorizontal = true + self.contentView.addSubview(view) + return view + }() + + override func layoutSubviews() { + super.layoutSubviews() + collectionView.frame = contentView.frame + } + + override var preferredFocusedView: UIView? { + get { + return collectionView + } + } + +} diff --git a/Examples-tvOS/IGListKitExamples/Views/LabelCell.swift b/Examples-tvOS/IGListKitExamples/Views/LabelCell.swift new file mode 100644 index 000000000..ebc1313c8 --- /dev/null +++ b/Examples-tvOS/IGListKitExamples/Views/LabelCell.swift @@ -0,0 +1,65 @@ +/** + Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + + The examples provided by Facebook are for non-commercial testing and evaluation + purposes only. Facebook reserves all rights not expressly granted. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +import UIKit + +final class LabelCell: UICollectionViewCell { + + fileprivate static let insets = UIEdgeInsets(top: 8, left: 15, bottom: 8, right: 15) + fileprivate static let font = UIFont.systemFont(ofSize: 40) + + static var singleLineHeight: CGFloat { + return font.lineHeight + insets.top + insets.bottom + } + + static func textHeight(_ text: String, width: CGFloat) -> CGFloat { + let constrainedSize = CGSize(width: width - insets.left - insets.right, height: CGFloat.greatestFiniteMagnitude) + let attributes = [ NSFontAttributeName: font ] + let options: NSStringDrawingOptions = [.usesFontLeading, .usesLineFragmentOrigin] + let bounds = (text as NSString).boundingRect(with: constrainedSize, options: options, attributes: attributes, context: nil) + return ceil(bounds.height) + insets.top + insets.bottom + } + + lazy var label: UILabel = { + let label = UILabel() + label.backgroundColor = .clear + label.numberOfLines = 1 + label.font = LabelCell.font + self.contentView.addSubview(label) + return label + }() + + lazy var separator: CALayer = { + let layer = CALayer() + layer.backgroundColor = UIColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1).cgColor + self.contentView.layer.addSublayer(layer) + return layer + }() + + override func layoutSubviews() { + super.layoutSubviews() + let bounds = contentView.bounds + label.frame = UIEdgeInsetsInsetRect(bounds, LabelCell.insets) + let height: CGFloat = 0.5 + let left = LabelCell.insets.left + separator.frame = CGRect(x: left, y: bounds.height - height, width: bounds.width - left, height: height) + } + + override var canBecomeFocused: Bool { + get { + return false + } + } + +} diff --git a/Examples-tvOS/LICENSE-examples.md b/Examples-tvOS/LICENSE-examples.md new file mode 100644 index 000000000..7d2d8e6ac --- /dev/null +++ b/Examples-tvOS/LICENSE-examples.md @@ -0,0 +1,11 @@ +Copyright (c) 2016-present, Facebook, Inc. All rights reserved. + +The examples provided by Facebook are for non-commercial testing and evaluation +purposes only. Facebook reserves all rights not expressly granted. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Examples-tvOS/Podfile b/Examples-tvOS/Podfile new file mode 100644 index 000000000..6f869695f --- /dev/null +++ b/Examples-tvOS/Podfile @@ -0,0 +1,5 @@ +use_frameworks! + +target 'IGListKitExamples' do + pod 'IGListKit', :path => '../IGListKit.podspec' +end \ No newline at end of file diff --git a/Examples-tvOS/Podfile.lock b/Examples-tvOS/Podfile.lock new file mode 100644 index 000000000..af388c5e2 --- /dev/null +++ b/Examples-tvOS/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - IGListKit (1.0.0) + +DEPENDENCIES: + - IGListKit (from `../IGListKit.podspec`) + +EXTERNAL SOURCES: + IGListKit: + :path: ../IGListKit.podspec + +SPEC CHECKSUMS: + IGListKit: a534a917b574ec56697390ef182f125ccff2145b + +PODFILE CHECKSUM: 4bdfb42d1e7b2b121bf8c83bc300d7d77aa0fc3a + +COCOAPODS: 1.1.1 diff --git a/Examples-tvOS/Pods/Local Podspecs/IGListKit.podspec.json b/Examples-tvOS/Pods/Local Podspecs/IGListKit.podspec.json new file mode 100644 index 000000000..9e6054f95 --- /dev/null +++ b/Examples-tvOS/Pods/Local Podspecs/IGListKit.podspec.json @@ -0,0 +1,31 @@ +{ + "name": "IGListKit", + "version": "1.0.0", + "summary": "A data-driven UICollectionView framework.", + "homepage": "https://github.com/Instagram/IGListKit", + "documentation_url": "https://instagram.github.io/IGListKit", + "description": "A data-driven UICollectionView framework for building fast and flexible lists.", + "license": { + "type": "BSD" + }, + "authors": "Instagram", + "social_media_url": "https://twitter.com/fbOpenSource", + "source": { + "git": "https://github.com/Instagram/IGListKit.git", + "tag": "1.0.0", + "branch": "stable" + }, + "source_files": "Source/**/*.{h,m,mm}", + "private_header_files": "Source/Internal/*.h", + "requires_arc": true, + "platforms": { + "ios": "8.0", + "tvos": "9.0" + }, + "frameworks": "UIKit", + "libraries": "c++", + "pod_target_xcconfig": { + "CLANG_CXX_LANGUAGE_STANDARD": "c++11", + "CLANG_CXX_LIBRARY": "libc++" + } +} diff --git a/Examples-tvOS/Pods/Manifest.lock b/Examples-tvOS/Pods/Manifest.lock new file mode 100644 index 000000000..af388c5e2 --- /dev/null +++ b/Examples-tvOS/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - IGListKit (1.0.0) + +DEPENDENCIES: + - IGListKit (from `../IGListKit.podspec`) + +EXTERNAL SOURCES: + IGListKit: + :path: ../IGListKit.podspec + +SPEC CHECKSUMS: + IGListKit: a534a917b574ec56697390ef182f125ccff2145b + +PODFILE CHECKSUM: 4bdfb42d1e7b2b121bf8c83bc300d7d77aa0fc3a + +COCOAPODS: 1.1.1 diff --git a/Examples-tvOS/Pods/Pods.xcodeproj/project.pbxproj b/Examples-tvOS/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 000000000..efb3093ef --- /dev/null +++ b/Examples-tvOS/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,802 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 048DD995106FB4EB9CACE14AB11E9E4B /* IGListDisplayHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */; }; + 07CA069B065E33BEE709DB1D08FB08BB /* IGListAdapterProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 0E8B466CF38565A4E8CB702AAA14DDEE /* IGListAdapterDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0EAEFC87A46B035B98458B77C0DAB313 /* IGListAdapterProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */; }; + 0F8D03E428749E8CE408392DEA4823D2 /* IGListCollectionContext.h in Headers */ = {isa = PBXBuildFile; fileRef = ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0FE508FE448256A0EB8CF84CC381D1FB /* IGListKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 134B84577367CDE16AA6AD0962A6B85F /* IGListIndexPathResultInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 151601F20702205211839EDBFC72EA0F /* IGListIndexSetResultInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 1668524927DB5E75F1D2D008B0B23551 /* IGListAdapterUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */; }; + 1A89AF7CCCD65D9D5B946363776D05AE /* Pods-IGListKitExamples-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1BD26AEC65A15912B3F272922522826C /* IGListReloadDataUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = 27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */; }; + 1DA0BAAE175DBEFD33BAF45ED05DA33F /* IGListUpdatingDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E3C28DD198BEBAD9E457AF0B2E813CE /* IGListAdapterDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 28260093B9FCBA02BB36C414FE156A33 /* NSObject+IGListDiffable.m in Sources */ = {isa = PBXBuildFile; fileRef = FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */; }; + 2DC362DF318FFDCD0DC881A06F7EF60F /* IGListMoveIndexInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 35DC16C75961FEFBB6C976D527D06102 /* IGListAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */; }; + 36300A4773E5329A5DCFB774951C72A6 /* NSIndexSet+PrettyDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 36A352766482AA88A9F62372E5A25A36 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */; }; + 37C14D32C6F44CFBE4A0ECA63D251890 /* IGListBatchUpdateData.h in Headers */ = {isa = PBXBuildFile; fileRef = 23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 37C95D54129A28980B0A44B164D7BADE /* IGListSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 387D977F448C8FEDC374BE8D8F027FE0 /* NSObject+IGListDiffable.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AE30BC98DEE5047B8E2A09F8AC058D9 /* IGListExperiments.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4777B6A28EB663E8DCE23B28A3EEDC84 /* IGListSingleSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */; }; + 4C0D8D4200F19765387BDA5DF0351707 /* UICollectionView+IGListBatchUpdateData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 51D08A6C09E9BB328A0E8537A9304E54 /* IGListAdapterUpdater.h in Headers */ = {isa = PBXBuildFile; fileRef = F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52FC6541FB2BEA9A3D32596D0F0112F3 /* IGListMoveIndexPath.m in Sources */ = {isa = PBXBuildFile; fileRef = EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */; }; + 57FB14F4B485DB6C1079D629643E224D /* IGListStackedSectionControllerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 5901E794126AD4043B96E3EA5424A0A9 /* IGListBatchUpdateData.mm in Sources */ = {isa = PBXBuildFile; fileRef = E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */; }; + 5B24A7DA53D0CDFE36233A725078ADF1 /* IGListMoveIndexPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5B3EC05B46CAE92AC86F5E0140ECBC1C /* UICollectionView+IGListBatchUpdateData.m in Sources */ = {isa = PBXBuildFile; fileRef = 2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */; }; + 5D333C80CE63A8D01A9E816B7D47A0F8 /* IGListMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5FDF3C63D06797EC6649DDB527E75593 /* IGListSupplementaryViewSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 616ED22733EF3C17B718A10595B6C03D /* IGListSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */; }; + 6585F8BC4AE0EA2DC16B62B159CAE397 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */; }; + 698695EBBCAAEE553D0284ECE93B4730 /* IGListAdapterUpdaterDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6B73F97858678E9A7EE6CAA3C8F4CAEE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */; }; + 716FDA201B13C5D83AE1109EB6B0047F /* IGListIndexPathResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */; }; + 72E7E3F5E1DC01C109F5FAC37DFA4F01 /* IGListDiff.mm in Sources */ = {isa = PBXBuildFile; fileRef = C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */; }; + 76829A1937AE85E06E03EEA1BB6BA1ED /* IGListDiffable.h in Headers */ = {isa = PBXBuildFile; fileRef = 123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7700CBD66152909A6AA3CCE83F86DFB1 /* IGListSingleSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7881A804F20C1FF7D5A2E82E92D23D4B /* IGListReloadDataUpdater.h in Headers */ = {isa = PBXBuildFile; fileRef = 855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B96DAEE6845686FCC632B2FCE54DCFB /* IGListMoveIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7F1E44C4C0FEEFE713C6E9B1FB644D7F /* IGListKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */; }; + 867C735D6F3C81D5CF8394528C5EEC27 /* IGListSectionType.h in Headers */ = {isa = PBXBuildFile; fileRef = A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B71D13ACAC5591B3CE7B51299178137 /* IGListStackedSectionController.h in Headers */ = {isa = PBXBuildFile; fileRef = 024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 90FBDB2E0EDEDA382DACDC4480CACE11 /* IGListDiff.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9136AD424FB2AA5D428C97497B92212A /* IGListDisplayHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 94C6F2A63832A45817B3972936107D4C /* IGListIndexSetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */; }; + 9537ED5D64D1020A696E85D0E297F89B /* IGListWorkingRangeHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9648D0657DC9923BF9CC5D58AA0EABD3 /* IGListMoveIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */; }; + 9908944BE13B0DC564C12D31E11F9B16 /* IGListScrollDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 99F220194828DBCD1364349FECB62A85 /* IGListAdapterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 9D193CFFEBD44D034E827223350E18B6 /* IGListWorkingRangeDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A013323C37461B0C5A6D48B0E295D01B /* IGListSectionControllerInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + A83BC3A0B761C430D361524438BC3AC2 /* IGListWorkingRangeHandler.mm in Sources */ = {isa = PBXBuildFile; fileRef = C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */; }; + B4CD949F134F7E4CD11E11682AB22079 /* IGListAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BE6230BF86420C3ED8A459E0BE0A4904 /* IGListCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */; }; + BF2748F42C2244389EF7A2B848C3F57E /* IGListSectionMap.h in Headers */ = {isa = PBXBuildFile; fileRef = BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C02FEEA9717B24B51C1C7D5CAD75E2F0 /* IGListStackedSectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */; }; + C2A332D7BC9B89592141A8231B35EE2A /* IGListAdapterUpdaterInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + C4C4C1B02AFD7277F00A40570658152C /* Pods-IGListKitExamples-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */; }; + C5E00BB4C4BB8368AC203C571ECD36D0 /* IGListMoveIndexPathInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */; settings = {ATTRIBUTES = (Private, ); }; }; + D2B2C9D2D14200444BB64696B05B2997 /* IGListCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D5784F407B76134D8E517759894AF6F5 /* IGListKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D823F8B7308D421D94EA8FB912778C68 /* IGListAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DBBF93CA21917E27D087DB0AE287A315 /* IGListSectionMap.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */; }; + DE3948B248A3D2BBBD148A7300A72FC6 /* IGListIndexSetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E544414873F1F566F866DA90043FEE03 /* NSIndexSet+PrettyDescription.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */; }; + E863057BEBB61664170B988A8A195D27 /* IGListIndexPathResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F975889EC66E3E6890EB307BFA38BEA5 /* IGListDisplayDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A0A5426482C447F640D6A192E71D5F5B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5A9988CDADFC92DB95D7C72D2E4F5F4A; + remoteInfo = IGListKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IGListKit-umbrella.h"; sourceTree = ""; }; + 02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterInternal.h; sourceTree = ""; }; + 0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdaterDelegate.h; sourceTree = ""; }; + 024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListStackedSectionController.h; sourceTree = ""; }; + 03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapter.m; sourceTree = ""; }; + 08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterProxy.h; sourceTree = ""; }; + 102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterDataSource.h; sourceTree = ""; }; + 1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSupplementaryViewSource.h; sourceTree = ""; }; + 123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDiffable.h; sourceTree = ""; }; + 13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionController.h; sourceTree = ""; }; + 15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListMoveIndex.m; sourceTree = ""; }; + 180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapter.h; sourceTree = ""; }; + 1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IGListKitExamples.debug.xcconfig"; sourceTree = ""; }; + 1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexPathResultInternal.h; sourceTree = ""; }; + 222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapterProxy.m; sourceTree = ""; }; + 23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListBatchUpdateData.h; sourceTree = ""; }; + 2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSingleSectionController.h; sourceTree = ""; }; + 27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListReloadDataUpdater.m; sourceTree = ""; }; + 2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UICollectionView+IGListBatchUpdateData.m"; sourceTree = ""; }; + 2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-IGListKitExamples-dummy.m"; sourceTree = ""; }; + 30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexSetResult.h; sourceTree = ""; }; + 3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSIndexSet+PrettyDescription.h"; sourceTree = ""; }; + 34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexPathResult.h; sourceTree = ""; }; + 3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDisplayHandler.h; sourceTree = ""; }; + 3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListWorkingRangeHandler.h; sourceTree = ""; }; + 428C13C7C57B2D91F00D94ECF1FA71F8 /* Pods-IGListKitExamples-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IGListKitExamples-resources.sh"; sourceTree = ""; }; + 449492FD9184620EC1A886DC6421D208 /* IGListKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListKit.modulemap; sourceTree = ""; }; + 52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-IGListKitExamples-umbrella.h"; sourceTree = ""; }; + 5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListCollectionView.m; sourceTree = ""; }; + 5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListIndexPathResult.m; sourceTree = ""; }; + 56F841C1D796A137142479CE430A6DDB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDiff.h; sourceTree = ""; }; + 605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListStackedSectionController.m; sourceTree = ""; }; + 60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListIndexSetResult.m; sourceTree = ""; }; + 62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListUpdatingDelegate.h; sourceTree = ""; }; + 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IGListKit.xcconfig; sourceTree = ""; }; + 659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListStackedSectionControllerInternal.h; sourceTree = ""; }; + 6646D2297940D6D3611DDE9738469921 /* IGListKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IGListKit-prefix.pch"; sourceTree = ""; }; + 66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSIndexSet+PrettyDescription.m"; sourceTree = ""; }; + 6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListExperiments.h; sourceTree = ""; }; + 6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListIndexSetResultInternal.h; sourceTree = ""; }; + 6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListKit.h; sourceTree = ""; }; + 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListDisplayHandler.m; sourceTree = ""; }; + 849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexPath.h; sourceTree = ""; }; + 855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListReloadDataUpdater.h; sourceTree = ""; }; + 875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListDisplayDelegate.h; sourceTree = ""; }; + 8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSObject+IGListDiffable.h"; sourceTree = ""; }; + 9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UICollectionView+IGListBatchUpdateData.h"; sourceTree = ""; }; + 9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IGListKit-dummy.m"; sourceTree = ""; }; + 923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterDelegate.h; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSingleSectionController.m; sourceTree = ""; }; + 9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IGListKit.framework; path = IGListKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-IGListKitExamples.release.xcconfig"; sourceTree = ""; }; + A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionType.h; sourceTree = ""; }; + A7BBE69D34859663403DA26F14CC4DDB /* Pods-IGListKitExamples-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-IGListKitExamples-acknowledgements.markdown"; sourceTree = ""; }; + A851A4ACB8C0DE98BFFBC6FD4D1BACEE /* Pods-IGListKitExamples-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-IGListKitExamples-frameworks.sh"; sourceTree = ""; }; + AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndex.h; sourceTree = ""; }; + AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexInternal.h; sourceTree = ""; }; + AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + ABF549428FEA18696E5358F599E11A24 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionControllerInternal.h; sourceTree = ""; }; + BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListSectionMap.h; sourceTree = ""; }; + C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListWorkingRangeHandler.mm; sourceTree = ""; }; + C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMoveIndexPathInternal.h; sourceTree = ""; }; + C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListAdapterUpdater.m; sourceTree = ""; }; + C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListScrollDelegate.h; sourceTree = ""; }; + C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListDiff.mm; sourceTree = ""; }; + C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_IGListKitExamples.framework; path = "Pods-IGListKitExamples.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D803D538BF4074498E5ADB84A16E0395 /* Pods-IGListKitExamples-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-IGListKitExamples-acknowledgements.plist"; sourceTree = ""; }; + DDF922EBFB237C1B42E8B07306D987E8 /* Pods-IGListKitExamples.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; path = "Pods-IGListKitExamples.modulemap"; sourceTree = ""; }; + E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */ = {isa = PBXFileReference; includeInIndex = 1; path = IGListBatchUpdateData.mm; sourceTree = ""; }; + E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAssert.h; sourceTree = ""; }; + E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListCollectionView.h; sourceTree = ""; }; + EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListMoveIndexPath.m; sourceTree = ""; }; + ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListCollectionContext.h; sourceTree = ""; }; + F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdater.h; sourceTree = ""; }; + F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSectionController.m; sourceTree = ""; }; + F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListMacros.h; sourceTree = ""; }; + FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSObject+IGListDiffable.m"; sourceTree = ""; }; + FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListWorkingRangeDelegate.h; sourceTree = ""; }; + FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = IGListAdapterUpdaterInternal.h; sourceTree = ""; }; + FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = IGListSectionMap.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 802596B628B7CEFACCAF17AA0318C50C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 36A352766482AA88A9F62372E5A25A36 /* Foundation.framework in Frameworks */, + 6B73F97858678E9A7EE6CAA3C8F4CAEE /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D7057175063065567057895AB005C590 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6585F8BC4AE0EA2DC16B62B159CAE397 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 17E90634132CA5C8CA2F91A53A420FC4 /* IGListKit */ = { + isa = PBXGroup; + children = ( + 63F560C27CC0CB178D136105D5C9A490 /* Source */, + 403283ECF0BFAF7EA34C67C89A20457E /* Support Files */, + ); + name = IGListKit; + path = ../..; + sourceTree = ""; + }; + 275D18F543186A905E745D345F66E093 /* Development Pods */ = { + isa = PBXGroup; + children = ( + 17E90634132CA5C8CA2F91A53A420FC4 /* IGListKit */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 403283ECF0BFAF7EA34C67C89A20457E /* Support Files */ = { + isa = PBXGroup; + children = ( + 449492FD9184620EC1A886DC6421D208 /* IGListKit.modulemap */, + 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */, + 9032A1FEC635618198A9431CF9517449 /* IGListKit-dummy.m */, + 6646D2297940D6D3611DDE9738469921 /* IGListKit-prefix.pch */, + 01837EBDDF41D06A77B9670D9FF211A0 /* IGListKit-umbrella.h */, + 56F841C1D796A137142479CE430A6DDB /* Info.plist */, + ); + name = "Support Files"; + path = "Examples-tvOS/Pods/Target Support Files/IGListKit"; + sourceTree = ""; + }; + 51A62FAD141FCC64FABDAA958233E728 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + F22E6673D29C1778B1984CF7D4D871E9 /* Pods-IGListKitExamples */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 61F96534B3AFE724944526CC9F6F2EFE /* Products */ = { + isa = PBXGroup; + children = ( + 9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */, + C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */, + ); + name = Products; + sourceTree = ""; + }; + 63F560C27CC0CB178D136105D5C9A490 /* Source */ = { + isa = PBXGroup; + children = ( + 180822AE5F902FF9D118166C254BB9D4 /* IGListAdapter.h */, + 03D1E539E0EF198C23E5EEE216EF66B3 /* IGListAdapter.m */, + 102731D0A3833E5605269F5C17FF3361 /* IGListAdapterDataSource.h */, + 923FA479C0E7EAA47E53CA75BC3CECBB /* IGListAdapterDelegate.h */, + F24111595DA00F970E6AB05DE54C37A3 /* IGListAdapterUpdater.h */, + C4754AD0793D09ADC98CE8315FB27946 /* IGListAdapterUpdater.m */, + 0241CABAD3620FDFC7CFB2229AF89CD4 /* IGListAdapterUpdaterDelegate.h */, + E4E6047C833C2F2DA1C712258F1FA857 /* IGListAssert.h */, + 23A8D5BAC0F0E583579806FD68BD5003 /* IGListBatchUpdateData.h */, + E402B90D4B2469068923EF6DCA6AEBAA /* IGListBatchUpdateData.mm */, + ED52993BC0E5A2A8CF3032899C3CEEEF /* IGListCollectionContext.h */, + E577E8226463DE19A494899FC4B8488B /* IGListCollectionView.h */, + 5317A3BE429672A1580D2F1FD419FE66 /* IGListCollectionView.m */, + 5E81454F52F06CFB85B0EA69AD3CAA6B /* IGListDiff.h */, + C71BDF31A0D4E4C60FE418DF8F5DA20B /* IGListDiff.mm */, + 123A0FCE117A8EB9330BB9A759C3BCF7 /* IGListDiffable.h */, + 875A0C401CD97F0C3F8536E89893042F /* IGListDisplayDelegate.h */, + 6B2CECCD1310C45948C83FE88A415FD1 /* IGListExperiments.h */, + 34FAFFC39C810CA95148450766D73EFC /* IGListIndexPathResult.h */, + 5523CDCF6C0CDADC8C7DA5CD9AEC6720 /* IGListIndexPathResult.m */, + 30980860468ACB979933F1DB4726BB8A /* IGListIndexSetResult.h */, + 60E25741963EAF6E90632ABD1796CD5B /* IGListIndexSetResult.m */, + 6D3A377D114AF33D5FD08919F9009118 /* IGListKit.h */, + F80E790E1D548E9646F10A75ACE0BB71 /* IGListMacros.h */, + AA813263295944FD7C28EF50901FE213 /* IGListMoveIndex.h */, + 15444C33650BE2CAC5A1FC7F5E383161 /* IGListMoveIndex.m */, + 849F9103B93CC21B8AB472C5294DAF98 /* IGListMoveIndexPath.h */, + EB79F78BF0DCFFA582A504023F061F0B /* IGListMoveIndexPath.m */, + 855C5B154C4BD5F226954A063EAA0A6D /* IGListReloadDataUpdater.h */, + 27E13D8C854DFD2EFDD6DA87194F1121 /* IGListReloadDataUpdater.m */, + C5788D65F7EA5B985BDD9D570EFD6D61 /* IGListScrollDelegate.h */, + 13663962D3B6303106FF1A527DF410E7 /* IGListSectionController.h */, + F31E9B40FF641B9B25E0A62FFABC7855 /* IGListSectionController.m */, + A1F6C1ADF43CF0CA7AAEC0CA9D1B9EDD /* IGListSectionType.h */, + 2404D142D0C9FE9B9DB6F42733B37A8F /* IGListSingleSectionController.h */, + 94C66DF3CD7FDC58ABC235D44BBCFB47 /* IGListSingleSectionController.m */, + 024CC00C03E409241F3462AD74F254EA /* IGListStackedSectionController.h */, + 605923915E529D7EED7634C33EB8DD8C /* IGListStackedSectionController.m */, + 1191E666F701202922624F398A0A4D27 /* IGListSupplementaryViewSource.h */, + 62D018E732008A294F6E7A41CC4453AB /* IGListUpdatingDelegate.h */, + FAF1B04E040803D62EAD2AEBFAE8C247 /* IGListWorkingRangeDelegate.h */, + 8EF5FA11849D5905A87D204E8E95BAFA /* NSObject+IGListDiffable.h */, + FA380D1C37A20C80A41A5B330D2EE293 /* NSObject+IGListDiffable.m */, + B871D0E0E6A23E1B509229BA8DF78EE5 /* Internal */, + ); + name = Source; + path = Source; + sourceTree = ""; + }; + 6EC461C1435A31577346ED4ADA0BD5A9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + FE77A9456A47034F965F75B0B0B6CF30 /* tvOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 275D18F543186A905E745D345F66E093 /* Development Pods */, + 6EC461C1435A31577346ED4ADA0BD5A9 /* Frameworks */, + 61F96534B3AFE724944526CC9F6F2EFE /* Products */, + 51A62FAD141FCC64FABDAA958233E728 /* Targets Support Files */, + ); + sourceTree = ""; + }; + B871D0E0E6A23E1B509229BA8DF78EE5 /* Internal */ = { + isa = PBXGroup; + children = ( + 02402B6FB552DB54B0533F060072F959 /* IGListAdapterInternal.h */, + 08E3820E0996C55B3D57D852C741032F /* IGListAdapterProxy.h */, + 222A0E59AC9133CCADB14649123BD761 /* IGListAdapterProxy.m */, + FC344825E9CE46016D4C9BFBB7787EF6 /* IGListAdapterUpdaterInternal.h */, + 3AE5A8F234B280173578C6C12D8F0BA8 /* IGListDisplayHandler.h */, + 828260DA828EE578C9E5EAE347FB1D17 /* IGListDisplayHandler.m */, + 1FB0BAA5C072B6578FEF7F1C645879E8 /* IGListIndexPathResultInternal.h */, + 6D178C0543A7E01519D9F2FAB35BA5BE /* IGListIndexSetResultInternal.h */, + AAC56F6F14844AF7A5DA1AA3FC5BD736 /* IGListMoveIndexInternal.h */, + C41E3FA619D7A9F833B7747A5AFF7C28 /* IGListMoveIndexPathInternal.h */, + BACD4E5EB03723EC1AE6A32D696BB235 /* IGListSectionControllerInternal.h */, + BC18A7D71293F9C8826AFF856383E800 /* IGListSectionMap.h */, + FE5E53C9B524CAE450FBBDF8C229961A /* IGListSectionMap.m */, + 659F498EE384D82BB587376EEFB7CF43 /* IGListStackedSectionControllerInternal.h */, + 3FF9956865CA6A17094FCF49B1328235 /* IGListWorkingRangeHandler.h */, + C32854A9E8D0C9144DFC7E636182E5FB /* IGListWorkingRangeHandler.mm */, + 3393D3C6C3A834DB5ABC2B7E4086D071 /* NSIndexSet+PrettyDescription.h */, + 66F862E2AEE5E9C632AFF768FC862482 /* NSIndexSet+PrettyDescription.m */, + 9017BCE4C7BAE0D22C1D8E6CEDB96DCF /* UICollectionView+IGListBatchUpdateData.h */, + 2D6017DC6EBE30D0F10C9B3FAB16BAD4 /* UICollectionView+IGListBatchUpdateData.m */, + ); + name = Internal; + path = Internal; + sourceTree = ""; + }; + F22E6673D29C1778B1984CF7D4D871E9 /* Pods-IGListKitExamples */ = { + isa = PBXGroup; + children = ( + ABF549428FEA18696E5358F599E11A24 /* Info.plist */, + DDF922EBFB237C1B42E8B07306D987E8 /* Pods-IGListKitExamples.modulemap */, + A7BBE69D34859663403DA26F14CC4DDB /* Pods-IGListKitExamples-acknowledgements.markdown */, + D803D538BF4074498E5ADB84A16E0395 /* Pods-IGListKitExamples-acknowledgements.plist */, + 2F5AE0385534EC7E6CA75003A7280492 /* Pods-IGListKitExamples-dummy.m */, + A851A4ACB8C0DE98BFFBC6FD4D1BACEE /* Pods-IGListKitExamples-frameworks.sh */, + 428C13C7C57B2D91F00D94ECF1FA71F8 /* Pods-IGListKitExamples-resources.sh */, + 52054AE893A0AE7FBFC54333D8ABD345 /* Pods-IGListKitExamples-umbrella.h */, + 1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */, + A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */, + ); + name = "Pods-IGListKitExamples"; + path = "Target Support Files/Pods-IGListKitExamples"; + sourceTree = ""; + }; + FE77A9456A47034F965F75B0B0B6CF30 /* tvOS */ = { + isa = PBXGroup; + children = ( + 71D44B887663E8A7D2752C9ED2356648 /* Foundation.framework */, + AB4C132D7BA00C1384E27FAFD43A44B6 /* UIKit.framework */, + ); + name = tvOS; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 367FCA12044C2556046F8C4AFB2F9E22 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B4CD949F134F7E4CD11E11682AB22079 /* IGListAdapter.h in Headers */, + 0E8B466CF38565A4E8CB702AAA14DDEE /* IGListAdapterDataSource.h in Headers */, + 1E3C28DD198BEBAD9E457AF0B2E813CE /* IGListAdapterDelegate.h in Headers */, + 99F220194828DBCD1364349FECB62A85 /* IGListAdapterInternal.h in Headers */, + 07CA069B065E33BEE709DB1D08FB08BB /* IGListAdapterProxy.h in Headers */, + 51D08A6C09E9BB328A0E8537A9304E54 /* IGListAdapterUpdater.h in Headers */, + 698695EBBCAAEE553D0284ECE93B4730 /* IGListAdapterUpdaterDelegate.h in Headers */, + C2A332D7BC9B89592141A8231B35EE2A /* IGListAdapterUpdaterInternal.h in Headers */, + D823F8B7308D421D94EA8FB912778C68 /* IGListAssert.h in Headers */, + 37C14D32C6F44CFBE4A0ECA63D251890 /* IGListBatchUpdateData.h in Headers */, + 0F8D03E428749E8CE408392DEA4823D2 /* IGListCollectionContext.h in Headers */, + D2B2C9D2D14200444BB64696B05B2997 /* IGListCollectionView.h in Headers */, + 90FBDB2E0EDEDA382DACDC4480CACE11 /* IGListDiff.h in Headers */, + 76829A1937AE85E06E03EEA1BB6BA1ED /* IGListDiffable.h in Headers */, + F975889EC66E3E6890EB307BFA38BEA5 /* IGListDisplayDelegate.h in Headers */, + 9136AD424FB2AA5D428C97497B92212A /* IGListDisplayHandler.h in Headers */, + 3AE30BC98DEE5047B8E2A09F8AC058D9 /* IGListExperiments.h in Headers */, + E863057BEBB61664170B988A8A195D27 /* IGListIndexPathResult.h in Headers */, + 134B84577367CDE16AA6AD0962A6B85F /* IGListIndexPathResultInternal.h in Headers */, + DE3948B248A3D2BBBD148A7300A72FC6 /* IGListIndexSetResult.h in Headers */, + 151601F20702205211839EDBFC72EA0F /* IGListIndexSetResultInternal.h in Headers */, + D5784F407B76134D8E517759894AF6F5 /* IGListKit-umbrella.h in Headers */, + 0FE508FE448256A0EB8CF84CC381D1FB /* IGListKit.h in Headers */, + 5D333C80CE63A8D01A9E816B7D47A0F8 /* IGListMacros.h in Headers */, + 7B96DAEE6845686FCC632B2FCE54DCFB /* IGListMoveIndex.h in Headers */, + 2DC362DF318FFDCD0DC881A06F7EF60F /* IGListMoveIndexInternal.h in Headers */, + 5B24A7DA53D0CDFE36233A725078ADF1 /* IGListMoveIndexPath.h in Headers */, + C5E00BB4C4BB8368AC203C571ECD36D0 /* IGListMoveIndexPathInternal.h in Headers */, + 7881A804F20C1FF7D5A2E82E92D23D4B /* IGListReloadDataUpdater.h in Headers */, + 9908944BE13B0DC564C12D31E11F9B16 /* IGListScrollDelegate.h in Headers */, + 37C95D54129A28980B0A44B164D7BADE /* IGListSectionController.h in Headers */, + A013323C37461B0C5A6D48B0E295D01B /* IGListSectionControllerInternal.h in Headers */, + BF2748F42C2244389EF7A2B848C3F57E /* IGListSectionMap.h in Headers */, + 867C735D6F3C81D5CF8394528C5EEC27 /* IGListSectionType.h in Headers */, + 7700CBD66152909A6AA3CCE83F86DFB1 /* IGListSingleSectionController.h in Headers */, + 8B71D13ACAC5591B3CE7B51299178137 /* IGListStackedSectionController.h in Headers */, + 57FB14F4B485DB6C1079D629643E224D /* IGListStackedSectionControllerInternal.h in Headers */, + 5FDF3C63D06797EC6649DDB527E75593 /* IGListSupplementaryViewSource.h in Headers */, + 1DA0BAAE175DBEFD33BAF45ED05DA33F /* IGListUpdatingDelegate.h in Headers */, + 9D193CFFEBD44D034E827223350E18B6 /* IGListWorkingRangeDelegate.h in Headers */, + 9537ED5D64D1020A696E85D0E297F89B /* IGListWorkingRangeHandler.h in Headers */, + 36300A4773E5329A5DCFB774951C72A6 /* NSIndexSet+PrettyDescription.h in Headers */, + 387D977F448C8FEDC374BE8D8F027FE0 /* NSObject+IGListDiffable.h in Headers */, + 4C0D8D4200F19765387BDA5DF0351707 /* UICollectionView+IGListBatchUpdateData.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCF6DC82D5858E45FAEE513F9E764AAD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1A89AF7CCCD65D9D5B946363776D05AE /* Pods-IGListKitExamples-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0D48064B5FE7BD39764D43410F878396 /* Build configuration list for PBXNativeTarget "IGListKit" */; + buildPhases = ( + DB61E8097FEC8647490AE574F082D341 /* Sources */, + 802596B628B7CEFACCAF17AA0318C50C /* Frameworks */, + 367FCA12044C2556046F8C4AFB2F9E22 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = IGListKit; + productName = IGListKit; + productReference = 9D11DCAE06F644E6CCE659622CD8E616 /* IGListKit.framework */; + productType = "com.apple.product-type.framework"; + }; + 6B7DA8C024D099705CF771FF16E6FC16 /* Pods-IGListKitExamples */ = { + isa = PBXNativeTarget; + buildConfigurationList = 447A9F6E709F690B1574347D9E329E3D /* Build configuration list for PBXNativeTarget "Pods-IGListKitExamples" */; + buildPhases = ( + 0F2973A0EC5CE783280F7EAA54947BA5 /* Sources */, + D7057175063065567057895AB005C590 /* Frameworks */, + FCF6DC82D5858E45FAEE513F9E764AAD /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 9B463355891949F736B3B5D678FE8D02 /* PBXTargetDependency */, + ); + name = "Pods-IGListKitExamples"; + productName = "Pods-IGListKitExamples"; + productReference = C7F454644FEBF5DB647AE1728D1FD067 /* Pods_IGListKitExamples.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 61F96534B3AFE724944526CC9F6F2EFE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */, + 6B7DA8C024D099705CF771FF16E6FC16 /* Pods-IGListKitExamples */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 0F2973A0EC5CE783280F7EAA54947BA5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C4C4C1B02AFD7277F00A40570658152C /* Pods-IGListKitExamples-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DB61E8097FEC8647490AE574F082D341 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 35DC16C75961FEFBB6C976D527D06102 /* IGListAdapter.m in Sources */, + 0EAEFC87A46B035B98458B77C0DAB313 /* IGListAdapterProxy.m in Sources */, + 1668524927DB5E75F1D2D008B0B23551 /* IGListAdapterUpdater.m in Sources */, + 5901E794126AD4043B96E3EA5424A0A9 /* IGListBatchUpdateData.mm in Sources */, + BE6230BF86420C3ED8A459E0BE0A4904 /* IGListCollectionView.m in Sources */, + 72E7E3F5E1DC01C109F5FAC37DFA4F01 /* IGListDiff.mm in Sources */, + 048DD995106FB4EB9CACE14AB11E9E4B /* IGListDisplayHandler.m in Sources */, + 716FDA201B13C5D83AE1109EB6B0047F /* IGListIndexPathResult.m in Sources */, + 94C6F2A63832A45817B3972936107D4C /* IGListIndexSetResult.m in Sources */, + 7F1E44C4C0FEEFE713C6E9B1FB644D7F /* IGListKit-dummy.m in Sources */, + 9648D0657DC9923BF9CC5D58AA0EABD3 /* IGListMoveIndex.m in Sources */, + 52FC6541FB2BEA9A3D32596D0F0112F3 /* IGListMoveIndexPath.m in Sources */, + 1BD26AEC65A15912B3F272922522826C /* IGListReloadDataUpdater.m in Sources */, + 616ED22733EF3C17B718A10595B6C03D /* IGListSectionController.m in Sources */, + DBBF93CA21917E27D087DB0AE287A315 /* IGListSectionMap.m in Sources */, + 4777B6A28EB663E8DCE23B28A3EEDC84 /* IGListSingleSectionController.m in Sources */, + C02FEEA9717B24B51C1C7D5CAD75E2F0 /* IGListStackedSectionController.m in Sources */, + A83BC3A0B761C430D361524438BC3AC2 /* IGListWorkingRangeHandler.mm in Sources */, + E544414873F1F566F866DA90043FEE03 /* NSIndexSet+PrettyDescription.m in Sources */, + 28260093B9FCBA02BB36C414FE156A33 /* NSObject+IGListDiffable.m in Sources */, + 5B3EC05B46CAE92AC86F5E0140ECBC1C /* UICollectionView+IGListBatchUpdateData.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 9B463355891949F736B3B5D678FE8D02 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = IGListKit; + target = 5A9988CDADFC92DB95D7C72D2E4F5F4A /* IGListKit */; + targetProxy = A0A5426482C447F640D6A192E71D5F5B /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1DD1CFF0DC5554065098F7DC1848365A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 9.0; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 34C05CDC1260C3EC9EE799611F2CFA1B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/IGListKit/IGListKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/IGListKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/IGListKit/IGListKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = IGListKit; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 445F0240C54EE1F31011123C422947DF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6446021A4B962CB0053472AA1E6D9968 /* IGListKit.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/IGListKit/IGListKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/IGListKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/IGListKit/IGListKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = IGListKit; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 650FB46C8F30EE06870353DFC5EA54B6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1B2B14BA3AB402D9CC387EEB27A2F746 /* Pods-IGListKitExamples.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-IGListKitExamples/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_IGListKitExamples; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7DEE56CBFFC5EF063F24F486B02300EA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + TVOS_DEPLOYMENT_TARGET = 9.0; + }; + name = Debug; + }; + D04E368E88FCE29BD15438FCE317E815 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A198E265B2C6E673C7C9C5050F92D9F0 /* Pods-IGListKitExamples.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-IGListKitExamples/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_IGListKitExamples; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0D48064B5FE7BD39764D43410F878396 /* Build configuration list for PBXNativeTarget "IGListKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 34C05CDC1260C3EC9EE799611F2CFA1B /* Debug */, + 445F0240C54EE1F31011123C422947DF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7DEE56CBFFC5EF063F24F486B02300EA /* Debug */, + 1DD1CFF0DC5554065098F7DC1848365A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 447A9F6E709F690B1574347D9E329E3D /* Build configuration list for PBXNativeTarget "Pods-IGListKitExamples" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 650FB46C8F30EE06870353DFC5EA54B6 /* Debug */, + D04E368E88FCE29BD15438FCE317E815 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-dummy.m b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-dummy.m new file mode 100644 index 000000000..50cf88253 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_IGListKit : NSObject +@end +@implementation PodsDummy_IGListKit +@end diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-prefix.pch b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-prefix.pch new file mode 100644 index 000000000..aa992a4ad --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-umbrella.h b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-umbrella.h new file mode 100644 index 000000000..6760a4149 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit-umbrella.h @@ -0,0 +1,37 @@ +#ifdef __OBJC__ +#import +#endif + +#import "IGListAdapter.h" +#import "IGListAdapterDataSource.h" +#import "IGListAdapterDelegate.h" +#import "IGListAdapterUpdater.h" +#import "IGListAdapterUpdaterDelegate.h" +#import "IGListAssert.h" +#import "IGListBatchUpdateData.h" +#import "IGListCollectionContext.h" +#import "IGListCollectionView.h" +#import "IGListDiff.h" +#import "IGListDiffable.h" +#import "IGListDisplayDelegate.h" +#import "IGListExperiments.h" +#import "IGListIndexPathResult.h" +#import "IGListIndexSetResult.h" +#import "IGListKit.h" +#import "IGListMacros.h" +#import "IGListMoveIndex.h" +#import "IGListMoveIndexPath.h" +#import "IGListReloadDataUpdater.h" +#import "IGListScrollDelegate.h" +#import "IGListSectionController.h" +#import "IGListSectionType.h" +#import "IGListSingleSectionController.h" +#import "IGListStackedSectionController.h" +#import "IGListSupplementaryViewSource.h" +#import "IGListUpdatingDelegate.h" +#import "IGListWorkingRangeDelegate.h" +#import "NSObject+IGListDiffable.h" + +FOUNDATION_EXPORT double IGListKitVersionNumber; +FOUNDATION_EXPORT const unsigned char IGListKitVersionString[]; + diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.modulemap b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.modulemap new file mode 100644 index 000000000..76fc8f034 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.modulemap @@ -0,0 +1,6 @@ +framework module IGListKit { + umbrella header "IGListKit-umbrella.h" + + export * + module * { export * } +} diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.xcconfig b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.xcconfig new file mode 100644 index 000000000..d26e3749d --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/IGListKit.xcconfig @@ -0,0 +1,11 @@ +CLANG_CXX_LANGUAGE_STANDARD = c++11 +CLANG_CXX_LIBRARY = libc++ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/IGListKit +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +OTHER_LDFLAGS = -l"c++" -framework "UIKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Examples-tvOS/Pods/Target Support Files/IGListKit/Info.plist b/Examples-tvOS/Pods/Target Support Files/IGListKit/Info.plist new file mode 100644 index 000000000..e4c7663fc --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/IGListKit/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + UIRequiredDeviceCapabilities + + arm64 + + + diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Info.plist b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Info.plist new file mode 100644 index 000000000..e4c7663fc --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + UIRequiredDeviceCapabilities + + arm64 + + + diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.markdown b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.markdown new file mode 100644 index 000000000..2c79cadac --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.markdown @@ -0,0 +1,37 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## IGListKit + +BSD License + +For `IGListKit` software + +Copyright (c) 2016, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.plist b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.plist new file mode 100644 index 000000000..cf1beb3f9 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-acknowledgements.plist @@ -0,0 +1,69 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + BSD License + +For `IGListKit` software + +Copyright (c) 2016, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + License + BSD + Title + IGListKit + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-dummy.m b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-dummy.m new file mode 100644 index 000000000..465dc7159 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_IGListKitExamples : NSObject +@end +@implementation PodsDummy_Pods_IGListKitExamples +@end diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh new file mode 100755 index 000000000..b452f0e2a --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-frameworks.sh @@ -0,0 +1,91 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/IGListKit/IGListKit.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/IGListKit/IGListKit.framework" +fi diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh new file mode 100755 index 000000000..25e9d3775 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-resources.sh @@ -0,0 +1,96 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-umbrella.h b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-umbrella.h new file mode 100644 index 000000000..7d2e33891 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples-umbrella.h @@ -0,0 +1,8 @@ +#ifdef __OBJC__ +#import +#endif + + +FOUNDATION_EXPORT double Pods_IGListKitExamplesVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_IGListKitExamplesVersionString[]; + diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig new file mode 100644 index 000000000..76789ae5c --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.debug.xcconfig @@ -0,0 +1,9 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IGListKit" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IGListKit/IGListKit.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "IGListKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap new file mode 100644 index 000000000..b026bedb6 --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.modulemap @@ -0,0 +1,6 @@ +framework module Pods_IGListKitExamples { + umbrella header "Pods-IGListKitExamples-umbrella.h" + + export * + module * { export * } +} diff --git a/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig new file mode 100644 index 000000000..76789ae5c --- /dev/null +++ b/Examples-tvOS/Pods/Target Support Files/Pods-IGListKitExamples/Pods-IGListKitExamples.release.xcconfig @@ -0,0 +1,9 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/IGListKit" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/IGListKit/IGListKit.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "IGListKit" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods