├── ASDKDemo.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
└── xcuserdata
│ └── Dee.xcuserdatad
│ └── xcschemes
│ ├── ASDKDemo.xcscheme
│ └── xcschememanagement.plist
├── ASDKDemo.xcworkspace
├── contents.xcworkspacedata
└── xcuserdata
│ └── Dee.xcuserdatad
│ ├── IDEFindNavigatorScopes.plist
│ └── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
├── ASDKDemo
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ ├── Contents.json
│ ├── dis_more.imageset
│ │ ├── Contents.json
│ │ ├── dis_more@2x.png
│ │ └── dis_more@3x.png
│ ├── home_report.imageset
│ │ ├── Contents.json
│ │ ├── home_report@2x.png
│ │ └── home_report@3x.png
│ └── mask_smallscreen.imageset
│ │ ├── Contents.json
│ │ ├── mask_smallscreen@2x.png
│ │ └── mask_smallscreen@3x.png
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Controller
│ ├── HomeController.h
│ ├── HomeController.m
│ ├── MusterController.h
│ ├── MusterController.m
│ ├── VideoController.h
│ └── VideoController.m
├── Foundation
│ ├── ASCategory
│ │ ├── ASButtonNode+DE.h
│ │ ├── ASButtonNode+DE.m
│ │ ├── ASCategory.h
│ │ ├── ASNetworkImageNode+DE.h
│ │ ├── ASNetworkImageNode+DE.m
│ │ ├── ASTableNode+DE.h
│ │ ├── ASTableNode+DE.m
│ │ ├── ASTextNode+DE.h
│ │ ├── ASTextNode+DE.m
│ │ ├── NSAttributedString+DE.h
│ │ ├── NSAttributedString+DE.m
│ │ ├── NSString+DE.h
│ │ ├── NSString+DE.m
│ │ ├── UIImage+DE.h
│ │ └── UIImage+DE.m
│ ├── Category
│ │ ├── NSDate
│ │ │ ├── NSData+Base64.h
│ │ │ ├── NSData+Base64.m
│ │ │ ├── NSData+Encrypt.h
│ │ │ ├── NSData+Encrypt.m
│ │ │ ├── NSDate+Compare.h
│ │ │ └── NSDate+Compare.m
│ │ ├── NSString
│ │ │ ├── NSString+Base64.h
│ │ │ ├── NSString+Base64.m
│ │ │ ├── NSString+Encrypt.h
│ │ │ ├── NSString+Encrypt.m
│ │ │ ├── NSString+MD5.h
│ │ │ ├── NSString+MD5.m
│ │ │ ├── NSString+Pinyin.h
│ │ │ ├── NSString+Pinyin.m
│ │ │ ├── NSString+Size.h
│ │ │ └── NSString+Size.m
│ │ ├── NSURL
│ │ │ ├── NSDictionary+Params.h
│ │ │ ├── NSDictionary+Params.m
│ │ │ ├── NSURL+Parameters.h
│ │ │ └── NSURL+Parameters.m
│ │ ├── UIBarButtonItem
│ │ │ ├── UIBarButtonItem+Item.h
│ │ │ └── UIBarButtonItem+Item.m
│ │ ├── UIColor
│ │ │ ├── UIColor+Hex.h
│ │ │ └── UIColor+Hex.m
│ │ ├── UIImage
│ │ │ ├── UIImage+Clip.h
│ │ │ ├── UIImage+Clip.m
│ │ │ ├── UIImage+Color.h
│ │ │ ├── UIImage+Color.m
│ │ │ ├── UIImage+Size.h
│ │ │ ├── UIImage+Size.m
│ │ │ ├── UIImage+Snap.h
│ │ │ ├── UIImage+Snap.m
│ │ │ ├── UIImage+TYLaunchImage.h
│ │ │ └── UIImage+TYLaunchImage.m
│ │ ├── UITabBarController
│ │ │ ├── UITabBarController+AddChildVC.h
│ │ │ └── UITabBarController+AddChildVC.m
│ │ └── UIView
│ │ │ ├── UIView+Frame.h
│ │ │ ├── UIView+Frame.m
│ │ │ ├── UIView+Nib.h
│ │ │ ├── UIView+Nib.m
│ │ │ ├── UIView+ViewController.h
│ │ │ └── UIView+ViewController.m
│ └── Header
│ │ ├── Define_Basic.h
│ │ └── Function_Basic.h
├── Info.plist
├── Model
│ ├── VideoModel.h
│ └── VideoModel.m
├── Tools
│ ├── Factories.h
│ └── Factories.m
├── View
│ ├── Muster
│ │ ├── CellNode
│ │ │ ├── MusterCellNode.h
│ │ │ └── MusterCellNode.m
│ │ ├── MusterOneNode.h
│ │ ├── MusterOneNode.m
│ │ ├── MusterTopNode.h
│ │ ├── MusterTopNode.m
│ │ ├── MusterTwoNode.h
│ │ └── MusterTwoNode.m
│ └── Video
│ │ ├── UserNode.h
│ │ ├── UserNode.m
│ │ ├── VideoCellNode.h
│ │ └── VideoCellNode.m
├── main.m
└── short_video.json
├── AppDelegate.h
├── AppDelegate.m
├── Podfile
├── Podfile.lock
├── Pods
├── Manifest.lock
├── PINCache
│ ├── LICENSE.txt
│ ├── README.md
│ └── Source
│ │ ├── PINCache.h
│ │ ├── PINCache.m
│ │ ├── PINCacheMacros.h
│ │ ├── PINCacheObjectSubscripting.h
│ │ ├── PINCaching.h
│ │ ├── PINDiskCache.h
│ │ ├── PINDiskCache.m
│ │ ├── PINMemoryCache.h
│ │ └── PINMemoryCache.m
├── PINOperation
│ ├── LICENSE.txt
│ ├── README.md
│ └── Source
│ │ ├── PINOperation.h
│ │ ├── PINOperationGroup.h
│ │ ├── PINOperationGroup.m
│ │ ├── PINOperationMacros.h
│ │ ├── PINOperationQueue.h
│ │ ├── PINOperationQueue.m
│ │ └── PINOperationTypes.h
├── PINRemoteImage
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ └── Classes
│ │ ├── AnimatedImages
│ │ ├── PINAnimatedImage.h
│ │ ├── PINAnimatedImage.m
│ │ ├── PINCachedAnimatedImage.h
│ │ ├── PINCachedAnimatedImage.m
│ │ ├── PINGIFAnimatedImage.h
│ │ ├── PINGIFAnimatedImage.m
│ │ ├── PINMemMapAnimatedImage.h
│ │ ├── PINMemMapAnimatedImage.m
│ │ ├── PINWebPAnimatedImage.h
│ │ └── PINWebPAnimatedImage.m
│ │ ├── Categories
│ │ ├── NSData+ImageDetectors.h
│ │ ├── NSData+ImageDetectors.m
│ │ ├── PINImage+DecodedImage.h
│ │ ├── PINImage+DecodedImage.m
│ │ ├── PINImage+ScaledImage.h
│ │ ├── PINImage+ScaledImage.m
│ │ ├── PINImage+WebP.h
│ │ ├── PINImage+WebP.m
│ │ └── PINRemoteImageTask+Subclassing.h
│ │ ├── ImageCategories
│ │ ├── PINButton+PINRemoteImage.h
│ │ ├── PINButton+PINRemoteImage.m
│ │ ├── PINImageView+PINRemoteImage.h
│ │ └── PINImageView+PINRemoteImage.m
│ │ ├── PINAlternateRepresentationProvider.h
│ │ ├── PINAlternateRepresentationProvider.m
│ │ ├── PINCache
│ │ ├── PINCache+PINRemoteImageCaching.h
│ │ └── PINCache+PINRemoteImageCaching.m
│ │ ├── PINGIFAnimatedImageManager.h
│ │ ├── PINGIFAnimatedImageManager.m
│ │ ├── PINProgressiveImage.h
│ │ ├── PINProgressiveImage.m
│ │ ├── PINRemoteImage.h
│ │ ├── PINRemoteImageBasicCache.h
│ │ ├── PINRemoteImageBasicCache.m
│ │ ├── PINRemoteImageCaching.h
│ │ ├── PINRemoteImageCallbacks.h
│ │ ├── PINRemoteImageCallbacks.m
│ │ ├── PINRemoteImageCategoryManager.h
│ │ ├── PINRemoteImageCategoryManager.m
│ │ ├── PINRemoteImageDownloadQueue.h
│ │ ├── PINRemoteImageDownloadQueue.m
│ │ ├── PINRemoteImageDownloadTask.h
│ │ ├── PINRemoteImageDownloadTask.m
│ │ ├── PINRemoteImageMacros.h
│ │ ├── PINRemoteImageManager+Private.h
│ │ ├── PINRemoteImageManager.h
│ │ ├── PINRemoteImageManager.m
│ │ ├── PINRemoteImageManagerResult.h
│ │ ├── PINRemoteImageManagerResult.m
│ │ ├── PINRemoteImageMemoryContainer.h
│ │ ├── PINRemoteImageMemoryContainer.m
│ │ ├── PINRemoteImageProcessorTask.h
│ │ ├── PINRemoteImageProcessorTask.m
│ │ ├── PINRemoteImageTask.h
│ │ ├── PINRemoteImageTask.m
│ │ ├── PINRemoteLock.h
│ │ ├── PINRemoteLock.m
│ │ ├── PINRequestRetryStrategy.h
│ │ ├── PINRequestRetryStrategy.m
│ │ ├── PINResume.h
│ │ ├── PINResume.m
│ │ ├── PINSpeedRecorder.h
│ │ ├── PINSpeedRecorder.m
│ │ ├── PINURLSessionManager.h
│ │ └── PINURLSessionManager.m
├── Pods.xcodeproj
│ ├── project.pbxproj
│ └── xcuserdata
│ │ └── Dee.xcuserdatad
│ │ └── xcschemes
│ │ ├── PINCache.xcscheme
│ │ ├── PINOperation.xcscheme
│ │ ├── PINRemoteImage.xcscheme
│ │ ├── Pods-ASDKDemo.xcscheme
│ │ ├── Texture.xcscheme
│ │ ├── YYModel.xcscheme
│ │ └── xcschememanagement.plist
├── Target Support Files
│ ├── PINCache
│ │ ├── Info.plist
│ │ ├── PINCache-dummy.m
│ │ ├── PINCache-prefix.pch
│ │ ├── PINCache-umbrella.h
│ │ ├── PINCache.modulemap
│ │ └── PINCache.xcconfig
│ ├── PINOperation
│ │ ├── Info.plist
│ │ ├── PINOperation-dummy.m
│ │ ├── PINOperation-prefix.pch
│ │ ├── PINOperation-umbrella.h
│ │ ├── PINOperation.modulemap
│ │ └── PINOperation.xcconfig
│ ├── PINRemoteImage
│ │ ├── Info.plist
│ │ ├── PINRemoteImage-dummy.m
│ │ ├── PINRemoteImage-prefix.pch
│ │ ├── PINRemoteImage-umbrella.h
│ │ ├── PINRemoteImage.modulemap
│ │ └── PINRemoteImage.xcconfig
│ ├── Pods-ASDKDemo
│ │ ├── Info.plist
│ │ ├── Pods-ASDKDemo-acknowledgements.markdown
│ │ ├── Pods-ASDKDemo-acknowledgements.plist
│ │ ├── Pods-ASDKDemo-dummy.m
│ │ ├── Pods-ASDKDemo-frameworks.sh
│ │ ├── Pods-ASDKDemo-resources.sh
│ │ ├── Pods-ASDKDemo-umbrella.h
│ │ ├── Pods-ASDKDemo.debug.xcconfig
│ │ ├── Pods-ASDKDemo.modulemap
│ │ └── Pods-ASDKDemo.release.xcconfig
│ ├── Texture
│ │ ├── Info.plist
│ │ ├── Texture-dummy.m
│ │ ├── Texture-prefix.pch
│ │ ├── Texture-umbrella.h
│ │ ├── Texture.modulemap
│ │ └── Texture.xcconfig
│ └── YYModel
│ │ ├── Info.plist
│ │ ├── YYModel-dummy.m
│ │ ├── YYModel-prefix.pch
│ │ ├── YYModel-umbrella.h
│ │ ├── YYModel.modulemap
│ │ └── YYModel.xcconfig
├── Texture
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ ├── ASBlockTypes.h
│ │ ├── ASButtonNode.h
│ │ ├── ASButtonNode.mm
│ │ ├── ASCellNode.h
│ │ ├── ASCellNode.mm
│ │ ├── ASCollectionNode+Beta.h
│ │ ├── ASCollectionNode.h
│ │ ├── ASCollectionNode.mm
│ │ ├── ASCollectionView.h
│ │ ├── ASCollectionView.mm
│ │ ├── ASCollectionViewLayoutFacilitatorProtocol.h
│ │ ├── ASCollectionViewProtocols.h
│ │ ├── ASContextTransitioning.h
│ │ ├── ASControlNode+Subclasses.h
│ │ ├── ASControlNode.h
│ │ ├── ASControlNode.mm
│ │ ├── ASDisplayNode+Beta.h
│ │ ├── ASDisplayNode+Convenience.h
│ │ ├── ASDisplayNode+Convenience.m
│ │ ├── ASDisplayNode+Layout.mm
│ │ ├── ASDisplayNode+Subclasses.h
│ │ ├── ASDisplayNode+Yoga.mm
│ │ ├── ASDisplayNode.h
│ │ ├── ASDisplayNode.mm
│ │ ├── ASDisplayNodeExtras.h
│ │ ├── ASDisplayNodeExtras.mm
│ │ ├── ASEditableTextNode.h
│ │ ├── ASEditableTextNode.mm
│ │ ├── ASImageNode+AnimatedImage.mm
│ │ ├── ASImageNode.h
│ │ ├── ASImageNode.mm
│ │ ├── ASMapNode.h
│ │ ├── ASMapNode.mm
│ │ ├── ASMultiplexImageNode.h
│ │ ├── ASMultiplexImageNode.mm
│ │ ├── ASNavigationController.h
│ │ ├── ASNavigationController.m
│ │ ├── ASNetworkImageNode.h
│ │ ├── ASNetworkImageNode.mm
│ │ ├── ASNodeController+Beta.h
│ │ ├── ASNodeController+Beta.m
│ │ ├── ASPagerFlowLayout.h
│ │ ├── ASPagerFlowLayout.m
│ │ ├── ASPagerNode+Beta.h
│ │ ├── ASPagerNode.h
│ │ ├── ASPagerNode.m
│ │ ├── ASRangeManagingNode.h
│ │ ├── ASRunLoopQueue.h
│ │ ├── ASRunLoopQueue.mm
│ │ ├── ASScrollNode.h
│ │ ├── ASScrollNode.mm
│ │ ├── ASSectionController.h
│ │ ├── ASSupplementaryNodeSource.h
│ │ ├── ASTabBarController.h
│ │ ├── ASTabBarController.m
│ │ ├── ASTableNode+Beta.h
│ │ ├── ASTableNode.h
│ │ ├── ASTableNode.mm
│ │ ├── ASTableView.h
│ │ ├── ASTableView.mm
│ │ ├── ASTableViewInternal.h
│ │ ├── ASTableViewProtocols.h
│ │ ├── ASTextNode+Beta.h
│ │ ├── ASTextNode.h
│ │ ├── ASTextNode.mm
│ │ ├── ASTextNode2.h
│ │ ├── ASTextNode2.mm
│ │ ├── ASVideoNode.h
│ │ ├── ASVideoNode.mm
│ │ ├── ASVideoPlayerNode.h
│ │ ├── ASVideoPlayerNode.mm
│ │ ├── ASViewController.h
│ │ ├── ASViewController.mm
│ │ ├── ASVisibilityProtocols.h
│ │ ├── ASVisibilityProtocols.m
│ │ ├── AsyncDisplayKit+IGListKitMethods.h
│ │ ├── AsyncDisplayKit+IGListKitMethods.m
│ │ ├── AsyncDisplayKit.h
│ │ ├── Base
│ │ ├── ASAssert.h
│ │ ├── ASAssert.m
│ │ ├── ASAvailability.h
│ │ ├── ASBaseDefines.h
│ │ ├── ASDisplayNode+Ancestry.h
│ │ ├── ASDisplayNode+Ancestry.m
│ │ ├── ASEqualityHelpers.h
│ │ ├── ASLog.h
│ │ ├── ASLog.m
│ │ └── ASSignpost.h
│ │ ├── Debug
│ │ ├── AsyncDisplayKit+Debug.h
│ │ ├── AsyncDisplayKit+Debug.m
│ │ ├── AsyncDisplayKit+Tips.h
│ │ └── AsyncDisplayKit+Tips.m
│ │ ├── Details
│ │ ├── ASAbstractLayoutController.h
│ │ ├── ASAbstractLayoutController.mm
│ │ ├── ASBasicImageDownloader.h
│ │ ├── ASBasicImageDownloader.mm
│ │ ├── ASBatchContext.h
│ │ ├── ASBatchContext.mm
│ │ ├── ASBatchFetchingDelegate.h
│ │ ├── ASCollectionElement.h
│ │ ├── ASCollectionElement.mm
│ │ ├── ASCollectionFlowLayoutDelegate.h
│ │ ├── ASCollectionFlowLayoutDelegate.m
│ │ ├── ASCollectionGalleryLayoutDelegate.h
│ │ ├── ASCollectionGalleryLayoutDelegate.mm
│ │ ├── ASCollectionInternal.h
│ │ ├── ASCollectionInternal.m
│ │ ├── ASCollectionLayoutContext.h
│ │ ├── ASCollectionLayoutContext.m
│ │ ├── ASCollectionLayoutDelegate.h
│ │ ├── ASCollectionLayoutState.h
│ │ ├── ASCollectionLayoutState.mm
│ │ ├── ASCollectionViewLayoutController.h
│ │ ├── ASCollectionViewLayoutController.m
│ │ ├── ASCollectionViewLayoutInspector.h
│ │ ├── ASCollectionViewLayoutInspector.m
│ │ ├── ASDataController.h
│ │ ├── ASDataController.mm
│ │ ├── ASDelegateProxy.h
│ │ ├── ASDelegateProxy.m
│ │ ├── ASElementMap.h
│ │ ├── ASElementMap.m
│ │ ├── ASEventLog.h
│ │ ├── ASEventLog.mm
│ │ ├── ASHashing.h
│ │ ├── ASHashing.m
│ │ ├── ASHighlightOverlayLayer.h
│ │ ├── ASHighlightOverlayLayer.mm
│ │ ├── ASImageContainerProtocolCategories.h
│ │ ├── ASImageContainerProtocolCategories.m
│ │ ├── ASImageProtocols.h
│ │ ├── ASIntegerMap.h
│ │ ├── ASIntegerMap.mm
│ │ ├── ASLayoutController.h
│ │ ├── ASLayoutRangeType.h
│ │ ├── ASMainSerialQueue.h
│ │ ├── ASMainSerialQueue.mm
│ │ ├── ASMutableAttributedStringBuilder.h
│ │ ├── ASMutableAttributedStringBuilder.m
│ │ ├── ASObjectDescriptionHelpers.h
│ │ ├── ASObjectDescriptionHelpers.m
│ │ ├── ASPINRemoteImageDownloader.h
│ │ ├── ASPINRemoteImageDownloader.m
│ │ ├── ASPageTable.h
│ │ ├── ASPageTable.m
│ │ ├── ASPhotosFrameworkImageRequest.h
│ │ ├── ASPhotosFrameworkImageRequest.m
│ │ ├── ASRangeController.h
│ │ ├── ASRangeController.mm
│ │ ├── ASRangeControllerUpdateRangeProtocol+Beta.h
│ │ ├── ASScrollDirection.h
│ │ ├── ASScrollDirection.m
│ │ ├── ASSectionContext.h
│ │ ├── ASTableLayoutController.h
│ │ ├── ASTableLayoutController.m
│ │ ├── ASThread.h
│ │ ├── ASTraceEvent.h
│ │ ├── ASTraceEvent.m
│ │ ├── ASTraitCollection.h
│ │ ├── ASTraitCollection.m
│ │ ├── ASWeakProxy.h
│ │ ├── ASWeakProxy.m
│ │ ├── ASWeakSet.h
│ │ ├── ASWeakSet.m
│ │ ├── CoreGraphics+ASConvenience.h
│ │ ├── CoreGraphics+ASConvenience.m
│ │ ├── NSArray+Diffing.h
│ │ ├── NSArray+Diffing.m
│ │ ├── NSIndexSet+ASHelpers.h
│ │ ├── NSIndexSet+ASHelpers.m
│ │ ├── NSMutableAttributedString+TextKitAdditions.h
│ │ ├── NSMutableAttributedString+TextKitAdditions.m
│ │ ├── Transactions
│ │ │ ├── _ASAsyncTransaction.h
│ │ │ ├── _ASAsyncTransaction.mm
│ │ │ ├── _ASAsyncTransactionContainer+Private.h
│ │ │ ├── _ASAsyncTransactionContainer.h
│ │ │ ├── _ASAsyncTransactionContainer.m
│ │ │ ├── _ASAsyncTransactionGroup.h
│ │ │ └── _ASAsyncTransactionGroup.m
│ │ ├── UICollectionViewLayout+ASConvenience.h
│ │ ├── UICollectionViewLayout+ASConvenience.m
│ │ ├── UIView+ASConvenience.h
│ │ ├── _ASCollectionReusableView.h
│ │ ├── _ASCollectionReusableView.m
│ │ ├── _ASCollectionViewCell.h
│ │ ├── _ASCollectionViewCell.m
│ │ ├── _ASDisplayLayer.h
│ │ ├── _ASDisplayLayer.mm
│ │ ├── _ASDisplayView.h
│ │ ├── _ASDisplayView.mm
│ │ ├── _ASDisplayViewAccessiblity.h
│ │ └── _ASDisplayViewAccessiblity.mm
│ │ ├── IGListAdapter+AsyncDisplayKit.h
│ │ ├── IGListAdapter+AsyncDisplayKit.m
│ │ ├── Layout
│ │ ├── ASAbsoluteLayoutElement.h
│ │ ├── ASAbsoluteLayoutSpec.h
│ │ ├── ASAbsoluteLayoutSpec.mm
│ │ ├── ASAsciiArtBoxCreator.h
│ │ ├── ASAsciiArtBoxCreator.m
│ │ ├── ASBackgroundLayoutSpec.h
│ │ ├── ASBackgroundLayoutSpec.mm
│ │ ├── ASCenterLayoutSpec.h
│ │ ├── ASCenterLayoutSpec.mm
│ │ ├── ASDimension.h
│ │ ├── ASDimension.mm
│ │ ├── ASDimensionInternal.h
│ │ ├── ASDimensionInternal.mm
│ │ ├── ASInsetLayoutSpec.h
│ │ ├── ASInsetLayoutSpec.mm
│ │ ├── ASLayout.h
│ │ ├── ASLayout.mm
│ │ ├── ASLayoutElement.h
│ │ ├── ASLayoutElement.mm
│ │ ├── ASLayoutElementExtensibility.h
│ │ ├── ASLayoutElementPrivate.h
│ │ ├── ASLayoutSpec+Subclasses.h
│ │ ├── ASLayoutSpec+Subclasses.mm
│ │ ├── ASLayoutSpec.h
│ │ ├── ASLayoutSpec.mm
│ │ ├── ASOverlayLayoutSpec.h
│ │ ├── ASOverlayLayoutSpec.mm
│ │ ├── ASRatioLayoutSpec.h
│ │ ├── ASRatioLayoutSpec.mm
│ │ ├── ASRelativeLayoutSpec.h
│ │ ├── ASRelativeLayoutSpec.mm
│ │ ├── ASStackLayoutDefines.h
│ │ ├── ASStackLayoutElement.h
│ │ ├── ASStackLayoutSpec.h
│ │ ├── ASStackLayoutSpec.mm
│ │ ├── ASYogaLayoutSpec.h
│ │ ├── ASYogaLayoutSpec.mm
│ │ ├── ASYogaUtilities.h
│ │ └── ASYogaUtilities.mm
│ │ ├── Private
│ │ ├── ASBasicImageDownloaderInternal.h
│ │ ├── ASBatchFetching.h
│ │ ├── ASBatchFetching.m
│ │ ├── ASCellNode+Internal.h
│ │ ├── ASCollectionLayout.h
│ │ ├── ASCollectionLayout.mm
│ │ ├── ASCollectionLayoutCache.h
│ │ ├── ASCollectionLayoutCache.mm
│ │ ├── ASCollectionLayoutContext+Private.h
│ │ ├── ASCollectionLayoutDefines.h
│ │ ├── ASCollectionLayoutDefines.m
│ │ ├── ASCollectionLayoutState+Private.h
│ │ ├── ASCollectionView+Undeprecated.h
│ │ ├── ASCollectionViewFlowLayoutInspector.h
│ │ ├── ASCollectionViewFlowLayoutInspector.m
│ │ ├── ASControlTargetAction.h
│ │ ├── ASControlTargetAction.m
│ │ ├── ASDefaultPlayButton.h
│ │ ├── ASDefaultPlayButton.m
│ │ ├── ASDefaultPlaybackButton.h
│ │ ├── ASDefaultPlaybackButton.m
│ │ ├── ASDispatch.h
│ │ ├── ASDispatch.m
│ │ ├── ASDisplayNode+AsyncDisplay.mm
│ │ ├── ASDisplayNode+DebugTiming.h
│ │ ├── ASDisplayNode+DebugTiming.mm
│ │ ├── ASDisplayNode+FrameworkPrivate.h
│ │ ├── ASDisplayNode+FrameworkSubclasses.h
│ │ ├── ASDisplayNode+UIViewBridge.mm
│ │ ├── ASDisplayNodeInternal.h
│ │ ├── ASDisplayNodeLayout.h
│ │ ├── ASDisplayNodeLayout.mm
│ │ ├── ASDisplayNodeTipState.h
│ │ ├── ASDisplayNodeTipState.m
│ │ ├── ASIGListAdapterBasedDataSource.h
│ │ ├── ASIGListAdapterBasedDataSource.m
│ │ ├── ASImageNode+AnimatedImagePrivate.h
│ │ ├── ASImageNode+CGExtras.h
│ │ ├── ASImageNode+CGExtras.m
│ │ ├── ASImageNode+Private.h
│ │ ├── ASInternalHelpers.h
│ │ ├── ASInternalHelpers.m
│ │ ├── ASLayerBackingTipProvider.h
│ │ ├── ASLayerBackingTipProvider.m
│ │ ├── ASLayoutTransition.h
│ │ ├── ASLayoutTransition.mm
│ │ ├── ASMutableElementMap.h
│ │ ├── ASMutableElementMap.m
│ │ ├── ASPendingStateController.h
│ │ ├── ASPendingStateController.mm
│ │ ├── ASRectTable.h
│ │ ├── ASRectTable.m
│ │ ├── ASResponderChainEnumerator.h
│ │ ├── ASResponderChainEnumerator.m
│ │ ├── ASSection.h
│ │ ├── ASSection.m
│ │ ├── ASTableView+Undeprecated.h
│ │ ├── ASTip.h
│ │ ├── ASTip.m
│ │ ├── ASTipNode.h
│ │ ├── ASTipNode.m
│ │ ├── ASTipProvider.h
│ │ ├── ASTipProvider.m
│ │ ├── ASTipsController.h
│ │ ├── ASTipsController.m
│ │ ├── ASTipsWindow.h
│ │ ├── ASTipsWindow.m
│ │ ├── ASTwoDimensionalArrayUtils.h
│ │ ├── ASTwoDimensionalArrayUtils.m
│ │ ├── ASWeakMap.h
│ │ ├── ASWeakMap.m
│ │ ├── Layout
│ │ │ ├── ASLayoutElementStylePrivate.h
│ │ │ ├── ASLayoutSpecPrivate.h
│ │ │ ├── ASLayoutSpecUtilities.h
│ │ │ ├── ASStackLayoutSpecUtilities.h
│ │ │ ├── ASStackPositionedLayout.h
│ │ │ ├── ASStackPositionedLayout.mm
│ │ │ ├── ASStackUnpositionedLayout.h
│ │ │ └── ASStackUnpositionedLayout.mm
│ │ ├── TextExperiment
│ │ │ ├── Component
│ │ │ │ ├── ASTextDebugOption.h
│ │ │ │ ├── ASTextDebugOption.m
│ │ │ │ ├── ASTextInput.h
│ │ │ │ ├── ASTextInput.m
│ │ │ │ ├── ASTextLayout.h
│ │ │ │ ├── ASTextLayout.m
│ │ │ │ ├── ASTextLine.h
│ │ │ │ └── ASTextLine.m
│ │ │ ├── String
│ │ │ │ ├── ASTextAttribute.h
│ │ │ │ ├── ASTextAttribute.m
│ │ │ │ ├── ASTextRunDelegate.h
│ │ │ │ └── ASTextRunDelegate.m
│ │ │ └── Utility
│ │ │ │ ├── ASTextUtilities.h
│ │ │ │ ├── ASTextUtilities.m
│ │ │ │ ├── NSAttributedString+ASText.h
│ │ │ │ ├── NSAttributedString+ASText.m
│ │ │ │ ├── NSParagraphStyle+ASText.h
│ │ │ │ └── NSParagraphStyle+ASText.m
│ │ ├── _ASCollectionGalleryLayoutInfo.h
│ │ ├── _ASCollectionGalleryLayoutInfo.m
│ │ ├── _ASCollectionGalleryLayoutItem.h
│ │ ├── _ASCollectionGalleryLayoutItem.mm
│ │ ├── _ASCoreAnimationExtras.h
│ │ ├── _ASCoreAnimationExtras.mm
│ │ ├── _ASHierarchyChangeSet.h
│ │ ├── _ASHierarchyChangeSet.mm
│ │ ├── _ASPendingState.h
│ │ ├── _ASPendingState.mm
│ │ └── _ASScopeTimer.h
│ │ ├── TextKit
│ │ ├── ASLayoutManager.h
│ │ ├── ASLayoutManager.m
│ │ ├── ASTextKitAttributes.h
│ │ ├── ASTextKitAttributes.mm
│ │ ├── ASTextKitComponents.h
│ │ ├── ASTextKitComponents.mm
│ │ ├── ASTextKitContext.h
│ │ ├── ASTextKitContext.mm
│ │ ├── ASTextKitCoreTextAdditions.h
│ │ ├── ASTextKitCoreTextAdditions.m
│ │ ├── ASTextKitEntityAttribute.h
│ │ ├── ASTextKitEntityAttribute.m
│ │ ├── ASTextKitFontSizeAdjuster.h
│ │ ├── ASTextKitFontSizeAdjuster.mm
│ │ ├── ASTextKitRenderer+Positioning.h
│ │ ├── ASTextKitRenderer+Positioning.mm
│ │ ├── ASTextKitRenderer+TextChecking.h
│ │ ├── ASTextKitRenderer+TextChecking.mm
│ │ ├── ASTextKitRenderer.h
│ │ ├── ASTextKitRenderer.mm
│ │ ├── ASTextKitShadower.h
│ │ ├── ASTextKitShadower.mm
│ │ ├── ASTextKitTailTruncater.h
│ │ ├── ASTextKitTailTruncater.mm
│ │ ├── ASTextKitTruncating.h
│ │ ├── ASTextNodeTypes.h
│ │ ├── ASTextNodeWordKerner.h
│ │ └── ASTextNodeWordKerner.m
│ │ ├── UIImage+ASConvenience.h
│ │ ├── UIImage+ASConvenience.m
│ │ ├── UIResponder+AsyncDisplayKit.h
│ │ ├── UIResponder+AsyncDisplayKit.m
│ │ ├── _ASTransitionContext.h
│ │ ├── _ASTransitionContext.m
│ │ └── tvOS
│ │ ├── ASControlNode+tvOS.h
│ │ ├── ASControlNode+tvOS.m
│ │ ├── ASImageNode+tvOS.h
│ │ └── ASImageNode+tvOS.m
└── YYModel
│ ├── LICENSE
│ ├── README.md
│ └── YYModel
│ ├── NSObject+YYModel.h
│ ├── NSObject+YYModel.m
│ ├── YYClassInfo.h
│ ├── YYClassInfo.m
│ └── YYModel.h
├── PrefixHeader.pch
└── README.md
/ASDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ASDKDemo.xcodeproj/xcuserdata/Dee.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | ASDKDemo.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 93E6DC7B1F41A35D00E3DAF0
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/ASDKDemo.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ASDKDemo.xcworkspace/xcuserdata/Dee.xcuserdatad/IDEFindNavigatorScopes.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ASDKDemo.xcworkspace/xcuserdata/Dee.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/dis_more.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "dis_more@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "dis_more@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/dis_more.imageset/dis_more@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/dis_more.imageset/dis_more@2x.png
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/dis_more.imageset/dis_more@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/dis_more.imageset/dis_more@3x.png
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/home_report.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "home_report@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "home_report@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/home_report.imageset/home_report@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/home_report.imageset/home_report@2x.png
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/home_report.imageset/home_report@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/home_report.imageset/home_report@3x.png
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/mask_smallscreen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "mask_smallscreen@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "mask_smallscreen@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/mask_smallscreen.imageset/mask_smallscreen@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/mask_smallscreen.imageset/mask_smallscreen@2x.png
--------------------------------------------------------------------------------
/ASDKDemo/Assets.xcassets/mask_smallscreen.imageset/mask_smallscreen@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/conversun/ASDK-Demo/977c149e8ff137d7bc55684f686dc485ab0e511f/ASDKDemo/Assets.xcassets/mask_smallscreen.imageset/mask_smallscreen@3x.png
--------------------------------------------------------------------------------
/ASDKDemo/Controller/HomeController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HomeController.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2018/1/31.
6 | // Copyright © 2018年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface HomeController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/Controller/HomeController.m:
--------------------------------------------------------------------------------
1 | //
2 | // HomeController.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2018/1/31.
6 | // Copyright © 2018年 Dee. All rights reserved.
7 | //
8 |
9 | #import "HomeController.h"
10 | #import "VideoController.h"
11 | #import "MusterController.h"
12 |
13 | @interface HomeController ()
14 |
15 | @end
16 |
17 | @implementation HomeController
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | [self.navigationController.navigationBar setHidden:YES];
22 |
23 | }
24 |
25 | - (IBAction)videoEvent:(UIButton *)sender {
26 | [self.navigationController pushViewController:[VideoController new] animated:YES];
27 |
28 | }
29 |
30 | - (IBAction)musterEvent:(UIButton *)sender {
31 | [self.navigationController pushViewController:[MusterController new] animated:YES];
32 |
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/ASDKDemo/Controller/MusterController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MusterController.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2018/1/31.
6 | // Copyright © 2018年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MusterController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/Controller/VideoController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/8/14.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface VideoController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASButtonNode+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASButtonNode+DE.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ASButtonNode (DE)
12 |
13 | + (ASButtonNode *)createWithImage:(UIImage *)img;
14 | + (ASButtonNode *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color;
15 | + (ASButtonNode *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color Image:(UIImage *)img Spacing:(CGFloat)spacing;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASButtonNode+DE.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASButtonNode+DE.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import "ASButtonNode+DE.h"
10 |
11 | @implementation ASButtonNode (DE)
12 |
13 | + (ASButtonNode *)createWithImage:(UIImage *)img{
14 | return [self createWithText:nil Font:nil Color:nil Image:img Spacing:0];
15 |
16 | }
17 |
18 | + (ASButtonNode *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color{
19 | return [self createWithText:text Font:font Color:color Image:nil Spacing:0];
20 |
21 | }
22 |
23 | + (ASButtonNode *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color Image:(UIImage *)img Spacing:(CGFloat)spacing{
24 |
25 | ASButtonNode *buttonNode = [[ASButtonNode alloc]init];
26 |
27 | if (text.length) {
28 | [buttonNode setTitle:text withFont:font withColor:color forState:UIControlStateNormal];
29 |
30 | }
31 |
32 | if (img) {
33 | [buttonNode setImage:img forState:UIControlStateNormal];
34 | [buttonNode setContentSpacing:spacing];
35 |
36 | }
37 | return buttonNode;
38 |
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASCategory.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCategory.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #ifndef ASCategory_h
10 | #define ASCategory_h
11 |
12 | #import "ASTextNode+DE.h"
13 | #import "ASNetworkImageNode+DE.h"
14 | #import "NSAttributedString+DE.h"
15 | #import "ASButtonNode+DE.h"
16 | #import "UIImage+DE.h"
17 | #import "ASTableNode+DE.h"
18 |
19 | #endif /* ASCategory_h */
20 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASNetworkImageNode+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASNetworkImageNode+DE.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ASNetworkImageNode (DE)
12 |
13 | + (ASNetworkImageNode *)createWithURLStr:(NSString *)urlStr;
14 |
15 | /**
16 | 增加圆角 8 和遮罩 mask_smallscreen
17 |
18 | @return asimagenode_modification_block_t
19 | */
20 | - (asimagenode_modification_block_t )imageMaskScreenBlock;
21 |
22 | /**
23 | 图片下载后自定义处理
24 |
25 | @param corner 圆角
26 | @return asimagenode_modification_block_t
27 | */
28 | - (asimagenode_modification_block_t )imageModBlockWithCorner:(CGFloat )corner;
29 |
30 | /**
31 | 图片下载后自定义处理
32 |
33 | @param corner 圆角
34 | @param maskImage 遮罩图
35 | @return asimagenode_modification_block_t
36 | */
37 | - (asimagenode_modification_block_t )imageModBlockWithCorner:(CGFloat )corner MaskImage:(UIImage *)maskImage;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASTableNode+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTableNode+DE.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/9.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ASTableNode (DE)
12 |
13 |
14 | /**
15 | 插入 Row
16 |
17 | @param start 开始位置
18 | @param count 新数量
19 | */
20 | - (void)insertRowWithStart:(NSInteger)start NewCount:(NSInteger)count;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASTableNode+DE.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASTableNode+DE.m
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/9.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import "ASTableNode+DE.h"
10 |
11 | @implementation ASTableNode (DE)
12 |
13 | /// 插入 Row
14 | - (void)insertRowWithStart:(NSInteger)start NewCount:(NSInteger)count{
15 | NSInteger section = 0;
16 | NSMutableArray *indexPaths = [NSMutableArray array];
17 | for (NSUInteger row = start; row < count; row++) {
18 | NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section];
19 | [indexPaths addObject:path];
20 |
21 | }
22 | [self insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
23 |
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASTextNode+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTextNode+DE.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ASTextNode (DE)
12 |
13 | + (ASTextNode *)createWithAttr:(NSAttributedString *)attr;
14 | + (ASTextNode *)createWithAttr:(NSAttributedString *)attr LineCount:(NSInteger)lineCount;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/ASTextNode+DE.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASTextNode+DE.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import "ASTextNode+DE.h"
10 |
11 | @implementation ASTextNode (DE)
12 |
13 | + (ASTextNode *)createWithAttr:(NSAttributedString *)attr{
14 | return [self createWithAttr:attr LineCount:0];
15 |
16 | }
17 |
18 | + (ASTextNode *)createWithAttr:(NSAttributedString *)attr LineCount:(NSInteger)lineCount{
19 | ASTextNode *textNode = [ASTextNode new];
20 | textNode.attributedText = attr;
21 | textNode.placeholderEnabled = YES;
22 | textNode.placeholderFadeDuration = 0.2;
23 | textNode.placeholderColor = [UIColor colorWithWhite:0.777 alpha:1.0];
24 | textNode.maximumNumberOfLines = lineCount;
25 | textNode.truncationMode = NSLineBreakByTruncatingTail;
26 | return textNode;
27 |
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/NSAttributedString+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSAttributedString+DE.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface NSAttributedString (DE)
13 |
14 | + (NSAttributedString *)getAttributedWithText:(NSString *)text Font:(UIFont *)font TextColor:(UIColor *)textColor Alignmant:(NSTextAlignment)alignment;
15 | + (NSAttributedString *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color;
16 | + (NSAttributedString *)createWithText:(NSString *)text Font:(UIFont *)font Color:(UIColor *)color Alignmant:(NSTextAlignment)alignment;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/NSString+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+DE.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (DE)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/NSString+DE.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+DE.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import "NSString+DE.h"
10 |
11 | @implementation NSString (DE)
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/UIImage+DE.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+DE.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (DE)
12 |
13 | /**
14 | 图片裁剪圆角
15 |
16 | @param radius 圆角
17 | @param size 图片大小, 未计算 ScreenScale
18 | @return UIImage
19 | */
20 | - (UIImage *)makeCornerRadius:(CGFloat)radius Size:(CGSize)size;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/ASCategory/UIImage+DE.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+DE.m
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import "UIImage+DE.h"
10 |
11 | @implementation UIImage (DE)
12 |
13 | - (UIImage *)makeCornerRadius:(CGFloat)radius Size:(CGSize)size{
14 | UIGraphicsBeginImageContext(size);
15 | UIBezierPath *path = [UIBezierPath
16 | bezierPathWithRoundedRect:CGRectMake(0, 0, size.width, size.height)
17 | cornerRadius:radius * [UIScreen mainScreen].scale];
18 | [path addClip];
19 | [self drawInRect:CGRectMake(0, 0, size.width, size.height)];
20 | UIImage *refinedImg = UIGraphicsGetImageFromCurrentImageContext();
21 | UIGraphicsEndImageContext();
22 | return refinedImg;
23 |
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSDate/NSData+Base64.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Base64.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Base64)
12 |
13 | + (NSData *)dataWithBase64EncodedString:(NSString *)string;
14 | - (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
15 | - (NSString *)base64EncodedString;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSDate/NSData+Encrypt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Encrypt.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Encrypt)
12 |
13 | /**
14 | * 利用AES加密数据
15 | *
16 | * @param key key
17 | * @param iv iv description
18 | *
19 | * @return data
20 | */
21 | - (NSData *)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
22 | /**
23 | * @brief 利用AES解密据
24 | *
25 | * @param key key
26 | * @param iv iv
27 | *
28 | * @return 解密后数据
29 | */
30 | - (NSData *)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSDate/NSDate+Compare.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+TY_Compare.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/9.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDate (TY_Compare)
12 |
13 |
14 | /**
15 | * 计算指定时间与当前的时间差
16 | *
17 | * @param compareDate 某一指定时间
18 | *
19 | * @return 多少(秒or分or天or月or年)+前(比如,3天前、10分钟前)
20 | */
21 | +(NSString *) compareCurrentTime:(NSDate*) compareDate;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSDate/NSDate+Compare.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+TY_Compare.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/9.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSDate+Compare.h"
10 |
11 | @implementation NSDate (TY_Compare)
12 |
13 | +(NSString *) compareCurrentTime:(NSDate*) compareDate
14 | {
15 | NSTimeInterval timeInterval = [compareDate timeIntervalSinceNow];
16 | timeInterval = -timeInterval;
17 | int temp = 0;
18 | NSString *result;
19 | if (timeInterval < 60) {
20 | result = [NSString stringWithFormat:@"刚刚"];
21 | }
22 | else if((temp = timeInterval/60) <60){
23 | result = [NSString stringWithFormat:@"%d分钟前",temp];
24 | }
25 |
26 | else if((temp = temp/60) <24){
27 | result = [NSString stringWithFormat:@"%d小时前",temp];
28 | }
29 |
30 | else if((temp = temp/24) <30){
31 | result = [NSString stringWithFormat:@"%d天前",temp];
32 | }
33 |
34 | else if((temp = temp/30) <12){
35 | result = [NSString stringWithFormat:@"%d月前",temp];
36 | }
37 | else{
38 | temp = temp/12;
39 | result = [NSString stringWithFormat:@"%d年前",temp];
40 | }
41 |
42 | return result;
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Base64.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Base64.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Base64)
12 |
13 | + (NSString *)stringWithBase64EncodedString:(NSString *)string;
14 | - (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
15 | - (NSString *)base64EncodedString;
16 | - (NSString *)base64DecodedString;
17 | - (NSData *)base64DecodedData;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Base64.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Base64.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSString+Base64.h"
10 | #import "NSData+Base64.h"
11 |
12 | @implementation NSString (Base64)
13 |
14 | + (NSString *)stringWithBase64EncodedString:(NSString *)string
15 | {
16 | NSData *data = [NSData dataWithBase64EncodedString:string];
17 | if (data)
18 | {
19 | return [[self alloc] initWithData:data encoding:NSUTF8StringEncoding];
20 | }
21 | return nil;
22 | }
23 |
24 | - (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth
25 | {
26 | NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
27 | return [data base64EncodedStringWithWrapWidth:wrapWidth];
28 | }
29 |
30 | - (NSString *)base64EncodedString
31 | {
32 | NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
33 | return [data base64EncodedString];
34 | }
35 |
36 | - (NSString *)base64DecodedString
37 | {
38 | return [NSString stringWithBase64EncodedString:self];
39 | }
40 |
41 | - (NSData *)base64DecodedData
42 | {
43 | return [NSData dataWithBase64EncodedString:self];
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Encrypt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Encrypt.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Encrypt)
12 |
13 | - (NSString*)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
14 | - (NSString*)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Encrypt.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Encrypt.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSString+Encrypt.h"
10 | #import "NSData+Encrypt.h"
11 | #import "NSData+Base64.h"
12 |
13 | @implementation NSString (Encrypt)
14 |
15 | -(NSString*)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {
16 | NSData *encrypted = [[self dataUsingEncoding:NSUTF8StringEncoding] encryptedWithAESUsingKey:key andIV:iv];
17 | NSString *encryptedString = [encrypted base64EncodedString];
18 |
19 | return encryptedString;
20 | }
21 |
22 | - (NSString*)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv {
23 | NSData *decrypted = [[NSData dataWithBase64EncodedString:self] decryptedWithAESUsingKey:key andIV:iv];
24 | NSString *decryptedString = [[NSString alloc] initWithData:decrypted encoding:NSUTF8StringEncoding];
25 |
26 | return decryptedString;
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+MD5.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+TY_MD5.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/23.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (TY_MD5)
12 |
13 | + (NSString *)md5:(NSString *)str;
14 |
15 | - (NSString *)md5String;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+MD5.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+TY_MD5.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/23.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSString+MD5.h"
10 | #import
11 |
12 | @implementation NSString (TY_MD5)
13 |
14 | + (NSString *)md5:(NSString *)str
15 | {
16 | const char *cStr = [str UTF8String];
17 | if (cStr == NULL) {
18 | cStr = "";
19 | }
20 | unsigned char result[CC_MD5_DIGEST_LENGTH];
21 | CC_MD5( cStr, (CC_LONG)strlen(cStr), result );
22 | return [NSString stringWithFormat:
23 | @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
24 | result[0], result[1], result[2], result[3],
25 | result[4], result[5], result[6], result[7],
26 | result[8], result[9], result[10], result[11],
27 | result[12], result[13], result[14], result[15]
28 | ];
29 | }
30 |
31 | - (NSString *)md5String
32 | {
33 | return [[self class] md5:self];
34 | }
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Pinyin.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Pinyin.h
3 | // Snowball
4 | //
5 | // Created by croath on 11/11/13.
6 | // Copyright (c) 2013 Snowball. All rights reserved.
7 | //
8 | // https://github.com/croath/NSString-Pinyin
9 | // the Chinese Pinyin string of the nsstring
10 |
11 | #import
12 |
13 | @interface NSString (Pinyin)
14 |
15 | - (NSString*)pinyinWithPhoneticSymbol;
16 | - (NSString*)pinyin;
17 | - (NSArray*)pinyinArray;
18 | - (NSString*)pinyinWithoutBlank;
19 | - (NSArray*)pinyinInitialsArray;
20 | - (NSString*)pinyinInitialsString;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Size.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+TY_Size.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/8.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (TY_Size)
12 |
13 | /**
14 | * 计算文本大小
15 | *
16 | * @param font 字体
17 | * @param size 约束大小
18 | */
19 | - (CGSize)boundingSizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSString/NSString+Size.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+TY_Size.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/8.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSString+Size.h"
10 |
11 | @implementation NSString (TY_Size)
12 |
13 | - (CGSize)boundingSizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
14 | {
15 | CGSize textSize = CGSizeZero;
16 |
17 | #if (__IPHONE_OS_VERSION_MIN_REQUIRED && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0)
18 |
19 | if (![self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {
20 | // below ios7
21 | textSize = [self sizeWithFont:font
22 | constrainedToSize:size
23 | lineBreakMode:NSLineBreakByWordWrapping];
24 | }
25 | else
26 |
27 | #endif
28 |
29 | {
30 | //iOS 7
31 | CGRect frame = [self boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{ NSFontAttributeName:font } context:nil];
32 | textSize = CGSizeMake(frame.size.width, frame.size.height + 1);
33 | }
34 |
35 | return textSize;
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSURL/NSDictionary+Params.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Base64.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (ty_Parameters)
12 |
13 | - (NSString*)parametersString;
14 | - (NSString*)orderedParametersString;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSURL/NSDictionary+Params.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Base64.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "NSDictionary+Params.h"
10 |
11 | @implementation NSDictionary (ty_Parameters)
12 |
13 | - (NSString*)buildParametersString:(BOOL)ordered {
14 | NSMutableArray* pairs = [NSMutableArray array];
15 |
16 | NSArray* keys = [self allKeys];
17 | if (ordered) {
18 | keys = [keys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
19 | }
20 | for (NSString* key in keys) {
21 | if(![[self objectForKey:key] isKindOfClass:[NSString class]]) {
22 | continue;
23 | }
24 |
25 | CFStringRef rv = CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef) [self objectForKey:key], NULL, CFSTR("=,!$&'()*+;@?\n\"<>#\t :/"), kCFStringEncodingUTF8);
26 | NSString *copyed = [NSString stringWithString:(__bridge NSString *)rv];
27 | CFRelease(rv);
28 | [pairs addObject:[NSString stringWithFormat:@"%@=%@", key, copyed]];
29 | }
30 | return [pairs componentsJoinedByString:@"&"];
31 | }
32 |
33 | - (NSString*)orderedParametersString {
34 | return [self buildParametersString:YES];
35 | }
36 |
37 | - (NSString*)parametersString {
38 | return [self buildParametersString:NO];
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/NSURL/NSURL+Parameters.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Base64.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/22.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSURL (ty_Parameters)
12 |
13 | @property (nonatomic, strong) NSDictionary *parameters;
14 |
15 | - (NSURL*)URLByAppendingParametersString:(NSString*)parametersString;
16 | - (NSURL*)URLByAppendingParameters:(NSDictionary*)parameters;
17 |
18 |
19 | - (NSString *)parameterForKey:(NSString *)key;
20 | - (id)objectForKeyedSubscript:(id)key NS_AVAILABLE(10_8, 6_0);
21 | @end
22 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIBarButtonItem/UIBarButtonItem+Item.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarButtonItem+TY_Item.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/9.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBarButtonItem (TY_Item)
12 |
13 | + (UIBarButtonItem *)itemWithImageName:(NSString *)imageName target:(id)target action:(SEL)action;
14 |
15 | + (UIBarButtonItem *)itemWithImageName:(NSString *)imageName highlightImageName:(NSString *)highlightImageName target:(id)target action:(SEL)action;
16 |
17 | + (UIBarButtonItem *)itemWithImageName:(NSString *)imageName highlightImageName:(NSString *)highlightImageName selectedImageName:(NSString *)selectedImageName target:(id)target action:(SEL)action;
18 |
19 | + (NSArray *)itemWithImageName:(NSString *)imageName offsetX:(CGFloat)offsetX target:(id)target action:(SEL)action;
20 |
21 | + (NSArray *)itemWithImageName:(NSString *)imageName highlightImageName:(NSString *)highlightImageName offsetX:(CGFloat)offsetX target:(id)target action:(SEL)action;
22 |
23 | + (NSArray *)itemWithImageName:(NSString *)imageName highlightImageName:(NSString *)highlightImageName selectedImageName:(NSString *)selectedImageName offsetX:(CGFloat)offsetX target:(id)target action:(SEL)action;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIColor/UIColor+Hex.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+Hex.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/23.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIColor (Hex)
12 |
13 | + (UIColor *)colorWithHex:(NSUInteger)hexColor;
14 |
15 | + (UIColor *)colorWithHex:(NSUInteger)hexColor alpha:(CGFloat)alpha;
16 |
17 | + (UIColor *)colorWithHexString:(NSString *)color;
18 |
19 | + (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alpha;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Clip.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Clip.h
3 | // ITHome
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (TY_Clip)
12 |
13 | /**
14 | * 生成相应圆角image
15 | *
16 | * @param radius 圆角度
17 | */
18 | - (UIImage *)imageWithCornerRadius:(CGFloat)radius;
19 |
20 | /**
21 | * 根据遮罩图生成相应image
22 | *
23 | * @param maskImage 遮罩图
24 | */
25 | - (UIImage *)imageWithMask:(UIImage *)maskImage;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Color.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Color.h
3 | // ITHome
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (TY_Color)
12 |
13 | /**
14 | * 用color生成image
15 | *
16 | * @param color 颜色
17 | */
18 | + (UIImage *)imageWithColor:(UIColor *)color;
19 |
20 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size;
21 | /**
22 | * 改变image透明度
23 | *
24 | * @param alpha 透明度
25 | */
26 | - (UIImage *)imageWithAlpha:(CGFloat)alpha;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Color.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Color.m
3 | // ITHome
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "UIImage+Color.h"
10 |
11 | @implementation UIImage (TY_Color)
12 |
13 | // 用color生成image
14 | + (UIImage *)imageWithColor:(UIColor *)color {
15 | return [self imageWithColor:color size:CGSizeMake(1.0, 1.0)];
16 | }
17 |
18 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
19 | {
20 | CGRect rect = (CGRect){CGPointZero,size};
21 | UIGraphicsBeginImageContext(rect.size);
22 | CGContextRef context = UIGraphicsGetCurrentContext();
23 |
24 | CGContextSetFillColorWithColor(context, [color CGColor]);
25 | CGContextFillRect(context, rect);
26 |
27 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
28 | UIGraphicsEndImageContext();
29 |
30 | return image;
31 | }
32 |
33 | - (UIImage *)imageWithAlpha:(CGFloat)alpha
34 | {
35 | //create drawing context
36 | UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
37 |
38 | //draw with alpha
39 | [self drawAtPoint:CGPointZero blendMode:kCGBlendModeNormal alpha:alpha];
40 |
41 | //capture resultant image
42 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
43 | UIGraphicsEndImageContext();
44 |
45 | //return image
46 | return image;
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Size.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Size.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/9.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (TY_Size)
12 |
13 | /**
14 | * 生成按0.5,0.5位置拉伸image
15 | *
16 | * @param name 图片名
17 | *
18 | * @return 支持拉伸后的image
19 | */
20 | + (UIImage *)resizedImageWithName:(NSString *)name;
21 |
22 | /**
23 | * 生成按left,top位置拉伸image
24 | *
25 | * @param name 图片名
26 | * @param left 左边比例
27 | * @param top 上边比例
28 | *
29 | * @return 支持拉伸后的image
30 | */
31 | + (UIImage *)resizedImageWithName:(NSString *)name left:(CGFloat)left top:(CGFloat)top;
32 |
33 | - (UIImage *)imageCroppedToRect:(CGRect)rect;
34 |
35 | - (UIImage *)imageScaledToSize:(CGSize)size;
36 |
37 | - (UIImage *)imageScaledToFitSize:(CGSize)size;
38 |
39 | - (UIImage *)imageScaledToFillSize:(CGSize)size;
40 |
41 | - (UIImage *)imageCroppedAndScaledToSize:(CGSize)size
42 | contentMode:(UIViewContentMode)contentMode
43 | padToFit:(BOOL)padToFit;
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Snap.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Snap.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/8.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (TY_Snap)
12 |
13 | /**
14 | * view截屏(快照)
15 | *
16 | * @param view 截屏的view
17 | */
18 | + (UIImage *)snapshotWithView:(UIView *)view;
19 |
20 | /**
21 | * view截屏(快照)
22 | *
23 | * @param view 截屏的view
24 | * @param snapSize 截屏大小
25 | */
26 | + (UIImage *)snapshotWithView:(UIView *)view size:(CGSize)snapSize;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+Snap.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TY_Snap.m
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/8.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "UIImage+Snap.h"
10 |
11 | @implementation UIImage (TY_Snap)
12 |
13 | + (UIImage *)snapshotWithView:(UIView *)view
14 | {
15 | return [self snapshotWithView:view size:view.bounds.size];
16 | }
17 |
18 | + (UIImage *)snapshotWithView:(UIView *)view size:(CGSize)snapSize
19 | {
20 | UIGraphicsBeginImageContextWithOptions(snapSize, NO, 0);
21 | [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
22 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
23 | UIGraphicsEndImageContext();
24 |
25 | return image;
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+TYLaunchImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TYLaunchImage.h
3 | // TYLaunchAnimationDemo
4 | //
5 | // Created by tanyang on 15/12/3.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (TYLaunchImage)
12 |
13 | + (NSString *)ty_getLaunchImageName;
14 |
15 | + (UIImage *)ty_getLaunchImage;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIImage/UIImage+TYLaunchImage.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+TYLaunchImage.m
3 | // TYLaunchAnimationDemo
4 | //
5 | // Created by tanyang on 15/12/3.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "UIImage+TYLaunchImage.h"
10 |
11 | //current window
12 | #define tyCurrentWindow [[UIApplication sharedApplication].windows firstObject]
13 |
14 | @implementation UIImage (TYLaunchImage)
15 |
16 | // 引用自stackflow
17 | + (NSString *)ty_getLaunchImageName
18 | {
19 | NSString *viewOrientation = @"Portrait";
20 | if (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation])) {
21 | viewOrientation = @"Landscape";
22 | }
23 | NSString *launchImageName = nil;
24 | NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];
25 | CGSize viewSize = tyCurrentWindow.bounds.size;
26 | for (NSDictionary* dict in imagesDict)
27 | {
28 | CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);
29 |
30 | if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])
31 | {
32 | launchImageName = dict[@"UILaunchImageName"];
33 | }
34 | }
35 | return launchImageName;
36 | }
37 |
38 | + (UIImage *)ty_getLaunchImage
39 | {
40 | return [UIImage imageNamed:[self ty_getLaunchImageName]];
41 | }
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UITabBarController/UITabBarController+AddChildVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarController+TY_AddChildVC.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITabBarController (TY_AddChildVC)
12 |
13 | /**
14 | * 添加一个子控制器
15 | *
16 | * @param childVc 子控制器
17 | * @param title 标题
18 | * @param image 图片
19 | * @param selectedImage 选中的图片
20 | * @param imageInsets 图片位移
21 | * @param titlePosition 标题位移
22 | * @param navControllerClass 包装子控制器的导航控制器
23 | */
24 | - (void)addChildViewController:(UIViewController *)childVc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage imageInsets:(UIEdgeInsets)imageInsets titlePosition:(UIOffset)titlePosition navControllerClass:(Class)navControllerClass;
25 |
26 | /**
27 | * 设置自控制器
28 | *
29 | * @param childVc 子控制器
30 | * @param title 标题
31 | * @param image 图片
32 | * @param selectedImage 选中的图片
33 | * @param imageInsets 图片位移
34 | * @param titlePosition 标题位移
35 | */
36 | - (void)configureChildViewController:(UIViewController *)childVc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage imageInsets:(UIEdgeInsets)imageInsets titlePosition:(UIOffset)titlePosition;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIView/UIView+Frame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+TY_Frame.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/15.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (TY_Frame)
12 |
13 | @property(nonatomic, assign) CGPoint origin;// 原点
14 |
15 | @property(nonatomic, assign) CGFloat left;//左
16 | @property(nonatomic, assign) CGFloat top;//上
17 |
18 | @property(nonatomic, assign) CGFloat right;//右
19 | @property(nonatomic, assign) CGFloat bottom;//下
20 |
21 | @property(nonatomic, assign) CGFloat width;//宽度
22 | @property(nonatomic, assign) CGFloat height;//高度
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIView/UIView+Nib.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+TY_Nib.h
3 | // ITHome
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (TY_Nib)
12 |
13 | /**
14 | * 加载nib
15 | */
16 | + (UINib *)loadNib;
17 |
18 | /**
19 | * 加载nib
20 | *
21 | * @param nibName nib名字
22 | */
23 | + (UINib *)loadNibNamed:(NSString*)nibName;
24 |
25 | /**
26 | * 加载nib
27 | *
28 | * @param nibName nib名字
29 | * @param bundle nib文件包(目录)
30 | */
31 | + (UINib *)loadNibNamed:(NSString*)nibName bundle:(NSBundle *)bundle;
32 |
33 |
34 | /**
35 | * 加载nib生成view
36 | */
37 | + (instancetype)loadInstanceFromNib;
38 |
39 | /**
40 | * 加载nib生成view
41 | *
42 | * @param nibName nib名字
43 | */
44 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName;
45 |
46 | /**
47 | * 加载nib生成view
48 | *
49 | * @param nibName nib名字
50 | * @param owner nib文件的File's Owner
51 | */
52 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner;
53 |
54 | /**
55 | * 加载nib生成view
56 | *
57 | * @param nibName nib名字
58 | * @param owner nib文件的File's Owner
59 | * @param bundle nib文件包(目录)
60 | */
61 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner bundle:(NSBundle *)bundle;
62 |
63 | @end
64 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIView/UIView+Nib.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+TY_Nib.m
3 | // ITHome
4 | //
5 | // Created by tanyang on 15/12/7.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #import "UIView+Nib.h"
10 |
11 | @implementation UIView (TY_Nib)
12 |
13 | + (UINib *)loadNib
14 | {
15 | return [self loadNibNamed:NSStringFromClass([self class])];
16 | }
17 |
18 | + (UINib *)loadNibNamed:(NSString*)nibName
19 | {
20 | return [self loadNibNamed:nibName bundle:[NSBundle mainBundle]];
21 | }
22 |
23 | + (UINib *)loadNibNamed:(NSString*)nibName bundle:(NSBundle *)bundle
24 | {
25 | return [UINib nibWithNibName:nibName bundle:bundle];
26 | }
27 |
28 |
29 |
30 | + (instancetype)loadInstanceFromNib
31 | {
32 | return [self loadInstanceFromNibWithName:NSStringFromClass([self class])];
33 | }
34 |
35 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName
36 | {
37 | return [self loadInstanceFromNibWithName:nibName owner:nil];
38 | }
39 |
40 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner
41 | {
42 | return [self loadInstanceFromNibWithName:nibName owner:owner bundle:[NSBundle mainBundle]];
43 | }
44 |
45 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner bundle:(NSBundle *)bundle
46 | {
47 | UIView *result = nil;
48 | NSArray* elements = [bundle loadNibNamed:nibName owner:owner options:nil];
49 | for (id object in elements)
50 | {
51 | if ([object isKindOfClass:[self class]])
52 | {
53 | result = object;
54 | break;
55 | }
56 | }
57 | return result;
58 | }
59 |
60 |
61 | @end
62 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIView/UIView+ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.h
3 | // LovePlayNews
4 | //
5 | // Created by tanyang on 16/8/20.
6 | // Copyright © 2016年 tany. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (ty_ViewController)
12 |
13 | - (UIViewController *)viewController;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Category/UIView/UIView+ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.m
3 | // LovePlayNews
4 | //
5 | // Created by tanyang on 16/8/20.
6 | // Copyright © 2016年 tany. All rights reserved.
7 | //
8 |
9 | #import "UIView+ViewController.h"
10 |
11 | @implementation UIView (ty_ViewController)
12 |
13 | - (UIViewController *)viewController
14 | {
15 | for (UIView* next = [self superview]; next; next =
16 | next.superview) {
17 | UIResponder* nextResponder = [next nextResponder];
18 | if ([nextResponder isKindOfClass:[UIViewController
19 | class]]) {
20 | return (UIViewController*)nextResponder;
21 | }
22 | }
23 | return nil;
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/ASDKDemo/Foundation/Header/Function_Basic.h:
--------------------------------------------------------------------------------
1 | //
2 | // Function_Basic.h
3 | // TYFoundationDemo
4 | //
5 | // Created by tanyang on 15/12/23.
6 | // Copyright © 2015年 tanyang. All rights reserved.
7 | //
8 |
9 | #ifndef Function_Basic_h
10 | #define Function_Basic_h
11 |
12 | #ifdef __OBJC__
13 | #import
14 |
15 | #endif
16 |
17 | //系统版本
18 | NS_INLINE float device_version()
19 | {
20 | return [[[UIDevice currentDevice] systemVersion] floatValue];
21 | }
22 |
23 | // 延迟执行
24 | NS_INLINE void dispatch_delay_async(NSTimeInterval delay, dispatch_block_t block)
25 | {
26 | dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC));
27 | dispatch_after(popTime, dispatch_get_main_queue(),block);
28 | }
29 |
30 | // 主线程执行
31 | NS_INLINE void dispatch_main_async(dispatch_block_t block) {
32 | if ([NSThread isMainThread]) {
33 | block();
34 | } else {
35 | dispatch_async(dispatch_get_main_queue(), block);
36 | }
37 | }
38 |
39 | #endif /* Function_Basic_h */
40 |
--------------------------------------------------------------------------------
/ASDKDemo/Model/VideoModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // VideoModel.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/4.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import "VideoModel.h"
10 |
11 | @implementation User_info
12 |
13 | @end
14 | @implementation Publish_files
15 |
16 | @end
17 | @implementation VideoModel
18 |
19 | @end
20 |
21 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Muster/CellNode/MusterCellNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NFHomeFilmsCellNode.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MusterCellNode : ASCellNode
12 |
13 | - (instancetype)initWithCount:(NSInteger)count;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Muster/MusterOneNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // MusterOneNode.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MusterOneNode : ASDisplayNode
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Muster/MusterTopNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // MusterTopNode.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MusterTopNode : ASDisplayNode
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Muster/MusterTwoNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // MusterTwoNode.h
3 | // LiveShow
4 | //
5 | // Created by Dee on 2018/1/2.
6 | // Copyright © 2018年 NiceFilm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MusterTwoNode : ASDisplayNode
12 |
13 | - (instancetype)initWithCount:(NSInteger)count;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Video/UserNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // userNode.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/12/25.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "VideoModel.h"
11 | #import "UIColor+Hex.h"
12 |
13 | @interface UserNode : ASDisplayNode
14 |
15 | - (instancetype)initWithModel:(User_info *)model;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ASDKDemo/View/Video/VideoCellNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // VideoCellNode.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/8/17.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "VideoModel.h"
11 | #import "Factories.h"
12 | #import "UIImage+Color.h"
13 |
14 | @interface VideoCellNode : ASCellNode
15 |
16 | -(instancetype)initWithModel:(VideoModel *)video;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ASDKDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/8/14.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // ASDKDemo
4 | //
5 | // Created by Dee on 2017/8/14.
6 | // Copyright © 2017年 Dee. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment the next line to define a global platform for your project
2 | platform :ios, '9.0'
3 |
4 | target 'ASDKDemo' do
5 | inhibit_all_warnings!
6 | # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
7 | use_frameworks!
8 | pod 'Texture'
9 | pod 'YYModel'
10 | # pod 'JPFPSStatus'
11 | # pod 'QMUIKit/UIKitExtensions'
12 | # pod 'AFNetworking'
13 |
14 | end
15 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - PINCache (3.0.1-beta.6):
3 | - PINCache/Arc-exception-safe (= 3.0.1-beta.6)
4 | - PINCache/Core (= 3.0.1-beta.6)
5 | - PINCache/Arc-exception-safe (3.0.1-beta.6):
6 | - PINCache/Core
7 | - PINCache/Core (3.0.1-beta.6):
8 | - PINOperation (~> 1.1.0)
9 | - PINOperation (1.1)
10 | - PINRemoteImage/Core (3.0.0-beta.13):
11 | - PINOperation
12 | - PINRemoteImage/iOS (3.0.0-beta.13):
13 | - PINRemoteImage/Core
14 | - PINRemoteImage/PINCache (3.0.0-beta.13):
15 | - PINCache (= 3.0.1-beta.6)
16 | - PINRemoteImage/Core
17 | - Texture (2.6):
18 | - Texture/PINRemoteImage (= 2.6)
19 | - Texture/Core (2.6)
20 | - Texture/PINRemoteImage (2.6):
21 | - PINRemoteImage/iOS (= 3.0.0-beta.13)
22 | - PINRemoteImage/PINCache
23 | - Texture/Core
24 | - YYModel (1.0.4)
25 |
26 | DEPENDENCIES:
27 | - Texture
28 | - YYModel
29 |
30 | SPEC CHECKSUMS:
31 | PINCache: d195fdba255283f7e9900a55e3cced377f431f9b
32 | PINOperation: 7f042fa6df5b606deb4bd5997654cf7033d5be1d
33 | PINRemoteImage: d6d51c5d2adda55f1ce30c96e850b6c4ebd2856a
34 | Texture: 7249074582daf75e524e59df5428b66b8e8db0e4
35 | YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
36 |
37 | PODFILE CHECKSUM: 318c95f777a045ee2186a220f94361faf4fec65f
38 |
39 | COCOAPODS: 1.3.1
40 |
--------------------------------------------------------------------------------
/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - PINCache (3.0.1-beta.6):
3 | - PINCache/Arc-exception-safe (= 3.0.1-beta.6)
4 | - PINCache/Core (= 3.0.1-beta.6)
5 | - PINCache/Arc-exception-safe (3.0.1-beta.6):
6 | - PINCache/Core
7 | - PINCache/Core (3.0.1-beta.6):
8 | - PINOperation (~> 1.1.0)
9 | - PINOperation (1.1)
10 | - PINRemoteImage/Core (3.0.0-beta.13):
11 | - PINOperation
12 | - PINRemoteImage/iOS (3.0.0-beta.13):
13 | - PINRemoteImage/Core
14 | - PINRemoteImage/PINCache (3.0.0-beta.13):
15 | - PINCache (= 3.0.1-beta.6)
16 | - PINRemoteImage/Core
17 | - Texture (2.6):
18 | - Texture/PINRemoteImage (= 2.6)
19 | - Texture/Core (2.6)
20 | - Texture/PINRemoteImage (2.6):
21 | - PINRemoteImage/iOS (= 3.0.0-beta.13)
22 | - PINRemoteImage/PINCache
23 | - Texture/Core
24 | - YYModel (1.0.4)
25 |
26 | DEPENDENCIES:
27 | - Texture
28 | - YYModel
29 |
30 | SPEC CHECKSUMS:
31 | PINCache: d195fdba255283f7e9900a55e3cced377f431f9b
32 | PINOperation: 7f042fa6df5b606deb4bd5997654cf7033d5be1d
33 | PINRemoteImage: d6d51c5d2adda55f1ce30c96e850b6c4ebd2856a
34 | Texture: 7249074582daf75e524e59df5428b66b8e8db0e4
35 | YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
36 |
37 | PODFILE CHECKSUM: 318c95f777a045ee2186a220f94361faf4fec65f
38 |
39 | COCOAPODS: 1.3.1
40 |
--------------------------------------------------------------------------------
/Pods/PINCache/Source/PINCacheMacros.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINCacheMacros.h
3 | // PINCache
4 | //
5 | // Created by Adlai Holler on 1/31/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #ifndef PIN_SUBCLASSING_RESTRICTED
10 | #if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
11 | #define PIN_SUBCLASSING_RESTRICTED __attribute__((objc_subclassing_restricted))
12 | #else
13 | #define PIN_SUBCLASSING_RESTRICTED
14 | #endif // #if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
15 | #endif // #ifndef PIN_SUBCLASSING_RESTRICTED
16 |
17 | #ifndef PIN_NOESCAPE
18 | #if defined(__has_attribute) && __has_attribute(noescape)
19 | #define PIN_NOESCAPE __attribute__((noescape))
20 | #else
21 | #define PIN_NOESCAPE
22 | #endif // #if defined(__has_attribute) && __has_attribute(noescape)
23 | #endif // #ifndef PIN_NOESCAPE
24 |
--------------------------------------------------------------------------------
/Pods/PINCache/Source/PINCacheObjectSubscripting.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINCacheObjectSubscripting.h
3 | // PINCache
4 | //
5 | // Created by Rocir Marcos Leite Santiago on 4/2/16.
6 | // Copyright © 2016 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @protocol PINCacheObjectSubscripting
14 |
15 | @required
16 |
17 | /**
18 | This method enables using literals on the receiving object, such as `id object = cache[@"key"];`.
19 |
20 | @param key The key associated with the object.
21 | @result The object for the specified key.
22 | */
23 | - (nullable id)objectForKeyedSubscript:(NSString *)key;
24 |
25 | /**
26 | This method enables using literals on the receiving object, such as `cache[@"key"] = object;`.
27 |
28 | @param object An object to be assigned for the key. Pass `nil` to remove the existing object for this key.
29 | @param key A key to associate with the object. This string will be copied.
30 | */
31 | - (void)setObject:(nullable id)object forKeyedSubscript:(NSString *)key;
32 |
33 | @end
34 |
35 | NS_ASSUME_NONNULL_END
36 |
--------------------------------------------------------------------------------
/Pods/PINOperation/Source/PINOperation.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINOperation.h
3 | // PINOperation
4 | //
5 | // Created by Adlai Holler on 1/10/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 | #import
13 |
--------------------------------------------------------------------------------
/Pods/PINOperation/Source/PINOperationGroup.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINOperationGroup.h
3 | // PINQueue
4 | //
5 | // Created by Garrett Moon on 10/8/16.
6 | // Copyright © 2016 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "PINOperationTypes.h"
11 | #import "PINOperationMacros.h"
12 |
13 | @class PINOperationQueue;
14 |
15 | NS_ASSUME_NONNULL_BEGIN
16 |
17 | @protocol PINGroupOperationReference;
18 |
19 | PINOP_SUBCLASSING_RESTRICTED
20 | @interface PINOperationGroup : NSObject
21 |
22 | - (instancetype)init NS_UNAVAILABLE;
23 | + (instancetype)asyncOperationGroupWithQueue:(PINOperationQueue *)operationQueue;
24 |
25 | - (nullable id )addOperation:(dispatch_block_t)operation;
26 | - (nullable id )addOperation:(dispatch_block_t)operation withPriority:(PINOperationQueuePriority)priority;
27 | - (void)start;
28 | - (void)cancel;
29 | - (void)setCompletion:(dispatch_block_t)completion;
30 | - (void)waitUntilComplete;
31 |
32 | @end
33 |
34 | @protocol PINGroupOperationReference
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/Pods/PINOperation/Source/PINOperationMacros.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINOperationMacros.h
3 | // PINOperation
4 | //
5 | // Created by Adlai Holler on 1/10/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #ifndef PINOP_SUBCLASSING_RESTRICTED
10 | #if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
11 | #define PINOP_SUBCLASSING_RESTRICTED __attribute__((objc_subclassing_restricted))
12 | #else
13 | #define PINOP_SUBCLASSING_RESTRICTED
14 | #endif // #if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
15 | #endif // #ifndef PINOP_SUBCLASSING_RESTRICTED
16 |
--------------------------------------------------------------------------------
/Pods/PINOperation/Source/PINOperationTypes.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINOperationTypes.h
3 | // PINOperation
4 | //
5 | // Created by Adlai Holler on 1/10/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSUInteger, PINOperationQueuePriority) {
12 | PINOperationQueuePriorityLow,
13 | PINOperationQueuePriorityDefault,
14 | PINOperationQueuePriorityHigh,
15 | };
16 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/AnimatedImages/PINGIFAnimatedImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINGIFAnimatedImage.h
3 | // PINRemoteImage
4 | //
5 | // Created by Garrett Moon on 9/17/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "PINAnimatedImage.h"
12 |
13 | @interface PINGIFAnimatedImage : PINAnimatedImage
14 |
15 | - (instancetype)init NS_UNAVAILABLE;
16 | - (instancetype)initWithAnimatedImageData:(NSData *)animatedImageData NS_DESIGNATED_INITIALIZER;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/AnimatedImages/PINWebPAnimatedImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINWebPAnimatedImage.h
3 | // PINRemoteImage
4 | //
5 | // Created by Garrett Moon on 9/14/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | #import "PINAnimatedImage.h"
13 |
14 | @interface PINWebPAnimatedImage : PINAnimatedImage
15 |
16 | - (instancetype)init NS_UNAVAILABLE;
17 | - (instancetype)initWithAnimatedImageData:(NSData *)animatedImageData NS_DESIGNATED_INITIALIZER;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/NSData+ImageDetectors.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+ImageDetectors.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 11/19/14.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (PINImageDetectors)
12 |
13 | - (BOOL)pin_isGIF;
14 | #if PIN_WEBP
15 | - (BOOL)pin_isWebP;
16 | - (BOOL)pin_isAnimatedWebP;
17 | #endif
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/NSData+ImageDetectors.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+ImageDetectors.m
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 11/19/14.
6 | //
7 | //
8 |
9 | #import "NSData+ImageDetectors.h"
10 |
11 | #if PIN_WEBP
12 | #import "webp/demux.h"
13 | #endif
14 |
15 | @implementation NSData (PINImageDetectors)
16 |
17 | - (BOOL)pin_isGIF
18 | {
19 | const NSInteger length = 3;
20 | Byte firstBytes[length];
21 | if ([self length] >= length) {
22 | [self getBytes:&firstBytes length:length];
23 | //G, I, F
24 | if (firstBytes[0] == 0x47 && firstBytes[1] == 0x49 && firstBytes[2] == 0x46) {
25 | return YES;
26 | }
27 | }
28 | return NO;
29 | }
30 |
31 | #if PIN_WEBP
32 | - (BOOL)pin_isWebP
33 | {
34 | const NSInteger length = 12;
35 | Byte firstBytes[length];
36 | if ([self length] >= length) {
37 | [self getBytes:&firstBytes length:length];
38 | //R, I, F, F, -, -, -, -, W, E, B, P
39 | if (firstBytes[0] == 0x52 && firstBytes[1] == 0x49 && firstBytes[2] == 0x46 && firstBytes[3] == 0x46 && firstBytes[8] == 0x57 && firstBytes[9] == 0x45 && firstBytes[10] == 0x42 && firstBytes[11] == 0x50) {
40 | return YES;
41 | }
42 | }
43 | return NO;
44 | }
45 |
46 | - (BOOL)pin_isAnimatedWebP
47 | {
48 | WebPBitstreamFeatures features;
49 | if (WebPGetFeatures([self bytes], [self length], &features) == VP8_STATUS_OK) {
50 | return features.has_animation;
51 | }
52 |
53 | return NO;
54 | }
55 |
56 | #endif
57 |
58 | @end
59 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/PINImage+DecodedImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+DecodedImage.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 11/19/14.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #if PIN_TARGET_IOS
12 | #import
13 | #elif PIN_TARGET_MAC
14 | #import
15 | #endif
16 |
17 | #import "PINRemoteImageMacros.h"
18 |
19 | #if !PIN_TARGET_IOS
20 | @interface NSImage (PINiOSMapping)
21 |
22 | @property(nonatomic, readonly, nullable) CGImageRef CGImage;
23 |
24 | + (nullable NSImage *)imageWithData:(nonnull NSData *)imageData;
25 | + (nullable NSImage *)imageWithContentsOfFile:(nonnull NSString *)path;
26 | + (nonnull NSImage *)imageWithCGImage:(nonnull CGImageRef)imageRef;
27 |
28 | @end
29 | #endif
30 |
31 | NSData * __nullable PINImageJPEGRepresentation(PINImage * __nonnull image, CGFloat compressionQuality);
32 | NSData * __nullable PINImagePNGRepresentation(PINImage * __nonnull image);
33 |
34 | @interface PINImage (PINDecodedImage)
35 |
36 | + (nullable PINImage *)pin_decodedImageWithData:(nonnull NSData *)data;
37 | + (nullable PINImage *)pin_decodedImageWithData:(nonnull NSData *)data skipDecodeIfPossible:(BOOL)skipDecodeIfPossible;
38 | + (nullable PINImage *)pin_decodedImageWithCGImageRef:(nonnull CGImageRef)imageRef;
39 | #if PIN_TARGET_IOS
40 | + (nullable PINImage *)pin_decodedImageWithCGImageRef:(nonnull CGImageRef)imageRef orientation:(UIImageOrientation) orientation;
41 | #endif
42 | + (nullable CGImageRef)pin_decodedImageRefWithCGImageRef:(nonnull CGImageRef)imageRef;
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/PINImage+ScaledImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+ScaledImage.h
3 | // Pods
4 | //
5 | // Created by Michael Schneider on 2/9/17.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #if PIN_TARGET_IOS
12 | #import
13 | #elif PIN_TARGET_MAC
14 | #import
15 | #endif
16 |
17 | #import "PINRemoteImageMacros.h"
18 |
19 | @interface PINImage (PINScaledImage)
20 |
21 | - (PINImage *)pin_scaledImageForKey:(NSString *)key;
22 | + (PINImage *)pin_scaledImageForImage:(PINImage *)image withKey:(NSString *)key;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/PINImage+ScaledImage.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+ScaledImage.m
3 | // Pods
4 | //
5 | // Created by Michael Schneider on 2/9/17.
6 | //
7 | //
8 |
9 | #import "PINImage+ScaledImage.h"
10 |
11 | static inline PINImage *PINScaledImageForKey(NSString * __nullable key, PINImage * __nullable image) {
12 | if (image == nil) {
13 | return nil;
14 | }
15 |
16 | #if PIN_TARGET_IOS
17 |
18 | NSCAssert(image.CGImage != NULL, @"CGImage should not be NULL");
19 |
20 | CGFloat scale = 1.0;
21 | if (key.length >= 8) {
22 | if ([key rangeOfString:@"_2x."].location != NSNotFound ||
23 | [key rangeOfString:@"@2x."].location != NSNotFound) {
24 | scale = 2.0;
25 | }
26 |
27 | if ([key rangeOfString:@"_3x."].location != NSNotFound ||
28 | [key rangeOfString:@"@3x."].location != NSNotFound) {
29 | scale = 3.0;
30 | }
31 | }
32 |
33 | if (scale != image.scale) {
34 | return [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation];
35 | }
36 |
37 | return image;
38 |
39 | #elif PIN_TARGET_MAC
40 | return image;
41 | #endif
42 | }
43 |
44 | @implementation PINImage (ScaledImage)
45 |
46 | - (PINImage *)pin_scaledImageForKey:(NSString *)key
47 | {
48 | return PINScaledImageForKey(key, self);
49 | }
50 |
51 | + (PINImage *)pin_scaledImageForImage:(PINImage *)image withKey:(NSString *)key
52 | {
53 | return PINScaledImageForKey(key, image);
54 | }
55 |
56 | @end
57 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/PINImage+WebP.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+WebP.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 11/18/14.
6 | //
7 | //
8 |
9 | #if PIN_WEBP
10 |
11 | #if PIN_TARGET_IOS
12 | #import
13 | #elif PIN_TARGET_MAC
14 | #import
15 | #endif
16 |
17 | #import "PINRemoteImageMacros.h"
18 |
19 | @interface PINImage (PINWebP)
20 |
21 | + (PINImage *)pin_imageWithWebPData:(NSData *)webPData;
22 |
23 | @end
24 |
25 | #endif
26 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/Categories/PINRemoteImageTask+Subclassing.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageTask+Subclassing.h
3 | // PINRemoteImage
4 | //
5 | // Created by Garrett Moon on 5/22/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import "PINRemoteImageTask.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface PINRemoteImageTask (Subclassing)
14 |
15 | - (NSMutableDictionary *)l_callbackBlocks;
16 | - (BOOL)l_cancelWithUUID:(NSUUID *)UUID;
17 |
18 | @end
19 |
20 | NS_ASSUME_NONNULL_END
21 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/ImageCategories/PINButton+PINRemoteImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+PINRemoteImage.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 8/18/14.
6 | //
7 | //
8 |
9 | #if PIN_TARGET_IOS
10 | #import
11 | #elif PIN_TARGET_MAC
12 | #import
13 | #endif
14 |
15 | #import "PINRemoteImageManager.h"
16 | #import "PINRemoteImageCategoryManager.h"
17 |
18 | @interface PINButton (PINRemoteImage)
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/ImageCategories/PINImageView+PINRemoteImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+PINRemoteImage.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 8/17/14.
6 | //
7 | //
8 |
9 | #if PIN_TARGET_IOS
10 | #import
11 | #elif PIN_TARGET_MAC
12 | #import
13 | #endif
14 |
15 | #import "PINRemoteImageManager.h"
16 | #import "PINRemoteImageCategoryManager.h"
17 |
18 | @interface PINImageView (PINRemoteImage)
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINAlternateRepresentationProvider.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINAlternateRepresentationProvider.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/17/16.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #import "PINRemoteImageManager.h"
12 |
13 | @protocol PINRemoteImageManagerAlternateRepresentationProvider
14 | @required
15 |
16 | /**
17 | @discussion This method will be called with data off the wire or stored in the cache. Return an object to have it returned as the alternativeRepresentation object in the PINRemoteImageManagerResult. @warning this method can be called on the main thread, be careful of doing expensive work.
18 | */
19 | - (id)alternateRepresentationWithData:(NSData *)data options:(PINRemoteImageManagerDownloadOptions)options;
20 |
21 | @end
22 |
23 | @interface PINAlternateRepresentationProvider : NSObject
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINAlternateRepresentationProvider.m:
--------------------------------------------------------------------------------
1 | //
2 | // PINAlternateRepresentationProvider.m
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/17/16.
6 | //
7 | //
8 |
9 | #import "PINAlternateRepresentationProvider.h"
10 |
11 | #import "NSData+ImageDetectors.h"
12 | #if USE_FLANIMATED_IMAGE
13 | #import
14 | #endif
15 |
16 | @implementation PINAlternateRepresentationProvider
17 |
18 | - (id)alternateRepresentationWithData:(NSData *)data options:(PINRemoteImageManagerDownloadOptions)options
19 | {
20 | #if USE_FLANIMATED_IMAGE
21 | if ([data pin_isGIF]) {
22 | return [FLAnimatedImage animatedImageWithGIFData:data];
23 | }
24 | #endif
25 | return nil;
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINCache/PINCache+PINRemoteImageCaching.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINCache+PINRemoteImageCaching.h
3 | // Pods
4 | //
5 | // Created by Aleksei Shevchenko on 7/28/16.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #import "PINRemoteImageCaching.h"
12 | #import "PINRemoteImageManager.h"
13 |
14 | @interface PINCache (PINRemoteImageCaching)
15 |
16 | @end
17 |
18 | @interface PINRemoteImageManager (PINCache)
19 |
20 | @property (nonatomic, nullable, readonly) PINCache *pinCache;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImage.h
3 | //
4 | // Created by Garrett Moon on 8/17/14.
5 | //
6 | //
7 |
8 | #import "PINRemoteImageMacros.h"
9 |
10 | #if USE_PINCACHE
11 | #import "PINCache+PINRemoteImageCaching.h"
12 | #endif
13 |
14 | #import "NSData+ImageDetectors.h"
15 | #import "PINAlternateRepresentationProvider.h"
16 | #import "PINCachedAnimatedImage.h"
17 | #import "PINGIFAnimatedImage.h"
18 | #import "PINWebPAnimatedImage.h"
19 | #import "PINRemoteImageManager.h"
20 | #import "PINRemoteImageCategoryManager.h"
21 | #import "PINRemoteImageManagerResult.h"
22 | #import "PINRemoteImageCaching.h"
23 | #import "PINProgressiveImage.h"
24 | #import "PINURLSessionManager.h"
25 | #import "PINRequestRetryStrategy.h"
26 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageBasicCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageBasicCache.h
3 | // Pods
4 | //
5 | // Created by Aleksei Shevchenko on 7/28/16.
6 | //
7 | //
8 |
9 | #import
10 | #import "PINRemoteImageCaching.h"
11 |
12 | /**
13 | * Simplistic wrapper based on NSCache.
14 | * not persisting any data on disk
15 | */
16 | @interface PINRemoteImageBasicCache : NSObject
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageCallbacks.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageCallbacks.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/9/15.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #import "PINRemoteImageManager.h"
12 |
13 | @interface PINRemoteImageCallbacks : NSObject
14 |
15 | @property (atomic, strong, nullable) PINRemoteImageManagerImageCompletion completionBlock;
16 | @property (atomic, strong, nullable) PINRemoteImageManagerImageCompletion progressImageBlock;
17 | @property (atomic, strong, nullable) PINRemoteImageManagerProgressDownload progressDownloadBlock;
18 | @property (assign, readonly) CFTimeInterval requestTime;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageCallbacks.m:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageCallbacks.m
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/9/15.
6 | //
7 | //
8 |
9 | #import "PINRemoteImageCallbacks.h"
10 |
11 | @implementation PINRemoteImageCallbacks
12 |
13 | - (instancetype)init
14 | {
15 | if (self = [super init]) {
16 | _requestTime = CACurrentMediaTime();
17 | }
18 | return self;
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageDownloadTask.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageDownloadTask.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/9/15.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #import "PINRemoteImageManager+Private.h"
12 | #import "PINRemoteImageTask.h"
13 | #import "PINProgressiveImage.h"
14 | #import "PINResume.h"
15 |
16 | @interface PINRemoteImageDownloadTask : PINRemoteImageTask
17 |
18 | @property (nonatomic, strong, nullable) NSURL *URL;
19 | @property (nonatomic, copy, nullable) NSString *ifRange;
20 | @property (nonatomic, copy, readonly, nullable) NSData *data;
21 |
22 | @property (nonatomic, readonly) CFTimeInterval estimatedRemainingTime;
23 |
24 | - (void)scheduleDownloadWithRequest:(nonnull NSURLRequest *)request
25 | resume:(nullable PINResume *)resume
26 | skipRetry:(BOOL)skipRetry
27 | priority:(PINRemoteImageManagerPriority)priority
28 | completionHandler:(nonnull PINRemoteImageManagerDataCompletion)completionHandler;
29 |
30 | - (void)didReceiveData:(nonnull NSData *)data;
31 | - (void)didReceiveResponse:(nonnull NSURLResponse *)response;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageManager+Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageManager+Private.h
3 | // PINRemoteImage
4 | //
5 | // Created by Garrett Moon on 5/18/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #ifndef PINRemoteImageManager_Private_h
10 | #define PINRemoteImageManager_Private_h
11 |
12 | #import "PINRemoteImageDownloadQueue.h"
13 |
14 | typedef void (^PINRemoteImageManagerDataCompletion)(NSData *data, NSURLResponse *response, NSError *error);
15 |
16 | @interface PINRemoteImageManager (private)
17 |
18 | @property (nonatomic, strong, readonly) dispatch_queue_t callbackQueue;
19 | @property (nonatomic, strong, readonly) PINOperationQueue *concurrentOperationQueue;
20 | @property (nonatomic, strong, readonly) PINRemoteImageDownloadQueue *urlSessionTaskQueue;
21 | @property (nonatomic, strong, readonly) PINURLSessionManager *sessionManager;
22 |
23 | @property (nonatomic, readonly) NSArray *progressThresholds;
24 | @property (nonatomic, readonly) NSTimeInterval estimatedRemainingTimeThreshold;
25 | @property (nonatomic, readonly) BOOL shouldBlurProgressive;
26 | @property (nonatomic, readonly) CGSize maxProgressiveRenderSize;
27 |
28 | @end
29 |
30 | #endif /* PINRemoteImageManager_Private_h */
31 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageMemoryContainer.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageMemoryContainer.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/17/16.
6 | //
7 | //
8 |
9 | #import
10 |
11 | #import "PINRemoteImageMacros.h"
12 | #import "PINRemoteLock.h"
13 |
14 | @class PINImage;
15 |
16 | @interface PINRemoteImageMemoryContainer : NSObject
17 |
18 | @property (nonatomic, strong) PINImage *image;
19 | @property (nonatomic, strong) NSData *data;
20 | @property (nonatomic, strong) PINRemoteLock *lock;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageMemoryContainer.m:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageMemoryContainer.m
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/17/16.
6 | //
7 | //
8 |
9 | #import "PINRemoteImageMemoryContainer.h"
10 |
11 | @implementation PINRemoteImageMemoryContainer
12 |
13 | - (instancetype)init
14 | {
15 | if (self = [super init]) {
16 | _lock = [[PINRemoteLock alloc] initWithName:@"PINRemoteImageMemoryContainer" lockType:PINRemoteLockTypeNonRecursive];
17 | }
18 | return self;
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageProcessorTask.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageProcessorTask.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/9/15.
6 | //
7 | //
8 |
9 | #import "PINRemoteImageTask.h"
10 |
11 | @interface PINRemoteImageProcessorTask : PINRemoteImageTask
12 |
13 | @property (nonatomic, strong, nullable) NSUUID *downloadTaskUUID;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteImageProcessorTask.m:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteImageProcessorTask.m
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/9/15.
6 | //
7 | //
8 |
9 | #import "PINRemoteImageProcessorTask.h"
10 |
11 | @implementation PINRemoteImageProcessorTask
12 |
13 | @synthesize downloadTaskUUID = _downloadTaskUUID;
14 |
15 | - (BOOL)cancelWithUUID:(NSUUID *)UUID resume:(PINResume **)resume
16 | {
17 | BOOL noMoreCompletions = [super cancelWithUUID:UUID resume:resume];
18 | [self.lock lockWithBlock:^{
19 | if (noMoreCompletions && _downloadTaskUUID) {
20 | [self.manager cancelTaskWithUUID:_downloadTaskUUID];
21 | _downloadTaskUUID = nil;
22 | }
23 | }];
24 | return noMoreCompletions;
25 | }
26 |
27 | - (void)setDownloadTaskUUID:(NSUUID *)downloadTaskUUID
28 | {
29 | [self.lock lockWithBlock:^{
30 | NSAssert(_downloadTaskUUID == nil, @"downloadTaskUUID should be nil");
31 | _downloadTaskUUID = downloadTaskUUID;
32 | }];
33 | }
34 |
35 | - (NSUUID *)downloadTaskUUID
36 | {
37 | __block NSUUID *downloadTaskUUID;
38 | [self.lock lockWithBlock:^{
39 | downloadTaskUUID = _downloadTaskUUID;
40 | }];
41 | return downloadTaskUUID;
42 | }
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRemoteLock.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRemoteLock.h
3 | // Pods
4 | //
5 | // Created by Garrett Moon on 3/17/16.
6 | //
7 | //
8 |
9 | #import
10 |
11 | /** The type of lock, either recursive or non-recursive */
12 | typedef NS_ENUM(NSUInteger, PINRemoteLockType) {
13 | /** A non-recursive version of the lock. The default. */
14 | PINRemoteLockTypeNonRecursive = 0,
15 | /** A recursive version of the lock. More expensive. */
16 | PINRemoteLockTypeRecursive,
17 | };
18 |
19 | @interface PINRemoteLock : NSObject
20 |
21 | - (instancetype)initWithName:(NSString *)lockName lockType:(PINRemoteLockType)lockType NS_DESIGNATED_INITIALIZER;
22 | - (instancetype)initWithName:(NSString *)lockName;
23 | - (void)lockWithBlock:(dispatch_block_t)block;
24 |
25 | - (void)lock;
26 | - (void)unlock;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINRequestRetryStrategy.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINRequestRetryStrategy.h
3 | // Pods
4 | //
5 | // Created by Hovhannes Safaryan on 9/24/16.
6 | //
7 | //
8 |
9 | #import
10 |
11 | /*
12 | Decide whether request should be retried based on the error.
13 | **/
14 |
15 | @protocol PINRequestRetryStrategy
16 |
17 | - (BOOL)shouldRetryWithError:(NSError *)error;
18 | - (int)nextDelay;
19 | - (void)incrementRetryCount;
20 | - (int)numberOfRetries;
21 |
22 | @end
23 |
24 | @interface PINRequestExponentialRetryStrategy : NSObject
25 |
26 | - (instancetype)initWithRetryMaxCount:(int)retryMaxCount delayBase:(int)delayBase;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/PINRemoteImage/Source/Classes/PINResume.h:
--------------------------------------------------------------------------------
1 | //
2 | // PINResume.h
3 | // PINRemoteImage
4 | //
5 | // Created by Garrett Moon on 3/10/17.
6 | // Copyright © 2017 Pinterest. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface PINResume : NSObject
14 |
15 | - (id)init NS_UNAVAILABLE;
16 | + (PINResume *)resumeData:(NSData *)resumeData ifRange:(NSString *)ifRange totalBytes:(long long)totalBytes;
17 |
18 | @property (nonatomic, strong, readonly) NSData *resumeData;
19 | @property (nonatomic, copy, readonly) NSString *ifRange;
20 | @property (nonatomic, assign, readonly) long long totalBytes;
21 |
22 | @end
23 |
24 | NS_ASSUME_NONNULL_END
25 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/Dee.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | PINCache.xcscheme
8 |
9 | isShown
10 |
11 |
12 | PINOperation.xcscheme
13 |
14 | isShown
15 |
16 |
17 | PINRemoteImage.xcscheme
18 |
19 | isShown
20 |
21 |
22 | Pods-ASDKDemo.xcscheme
23 |
24 | isShown
25 |
26 |
27 | Texture.xcscheme
28 |
29 | isShown
30 |
31 |
32 | YYModel.xcscheme
33 |
34 | isShown
35 |
36 |
37 |
38 | SuppressBuildableAutocreation
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 3.0.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/PINCache-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_PINCache : NSObject
3 | @end
4 | @implementation PodsDummy_PINCache
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/PINCache-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #ifndef TARGET_OS_WATCH
14 | #define TARGET_OS_WATCH 0
15 | #endif
16 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/PINCache-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "PINCache.h"
14 | #import "PINCacheMacros.h"
15 | #import "PINCacheObjectSubscripting.h"
16 | #import "PINCaching.h"
17 | #import "PINDiskCache.h"
18 | #import "PINMemoryCache.h"
19 |
20 | FOUNDATION_EXPORT double PINCacheVersionNumber;
21 | FOUNDATION_EXPORT const unsigned char PINCacheVersionString[];
22 |
23 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/PINCache.modulemap:
--------------------------------------------------------------------------------
1 | framework module PINCache {
2 | umbrella header "PINCache-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINCache/PINCache.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PINCache
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/PINOperation"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
5 | OTHER_LDFLAGS = -framework "Foundation" -weak_framework "UIKit"
6 | PODS_BUILD_DIR = $BUILD_DIR
7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
8 | PODS_ROOT = ${SRCROOT}
9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/PINCache
10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | SKIP_INSTALL = YES
12 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/PINOperation-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_PINOperation : NSObject
3 | @end
4 | @implementation PodsDummy_PINOperation
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/PINOperation-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #ifndef TARGET_OS_WATCH
14 | #define TARGET_OS_WATCH 0
15 | #endif
16 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/PINOperation-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "PINOperation.h"
14 | #import "PINOperationGroup.h"
15 | #import "PINOperationMacros.h"
16 | #import "PINOperationQueue.h"
17 | #import "PINOperationTypes.h"
18 |
19 | FOUNDATION_EXPORT double PINOperationVersionNumber;
20 | FOUNDATION_EXPORT const unsigned char PINOperationVersionString[];
21 |
22 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/PINOperation.modulemap:
--------------------------------------------------------------------------------
1 | framework module PINOperation {
2 | umbrella header "PINOperation-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINOperation/PINOperation.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PINOperation
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
4 | OTHER_LDFLAGS = -framework "Foundation"
5 | PODS_BUILD_DIR = $BUILD_DIR
6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/PINOperation
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINRemoteImage/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 3.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_PINRemoteImage : NSObject
3 | @end
4 | @implementation PodsDummy_PINRemoteImage
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.modulemap:
--------------------------------------------------------------------------------
1 | framework module PINRemoteImage {
2 | umbrella header "PINRemoteImage-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage
2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINOperation"
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
5 | OTHER_LDFLAGS = -framework "Accelerate" -framework "ImageIO" -framework "UIKit"
6 | PODS_BUILD_DIR = $BUILD_DIR
7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
8 | PODS_ROOT = ${SRCROOT}
9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/PINRemoteImage
10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | SKIP_INSTALL = YES
12 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Pods-ASDKDemo-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_ASDKDemo : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_ASDKDemo
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Pods-ASDKDemo-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
14 | FOUNDATION_EXPORT double Pods_ASDKDemoVersionNumber;
15 | FOUNDATION_EXPORT const unsigned char Pods_ASDKDemoVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Pods-ASDKDemo.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINOperation" "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage" "$PODS_CONFIGURATION_BUILD_DIR/Texture" "$PODS_CONFIGURATION_BUILD_DIR/YYModel"
2 | GCC_PRECOMPILE_PREFIX_HEADER = YES
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINCache/PINCache.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINOperation/PINOperation.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage/PINRemoteImage.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Texture/AsyncDisplayKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/YYModel/YYModel.framework/Headers"
6 | OTHER_LDFLAGS = $(inherited) -framework "AsyncDisplayKit" -framework "PINCache" -framework "PINOperation" -framework "PINRemoteImage" -framework "YYModel"
7 | PODS_BUILD_DIR = $BUILD_DIR
8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
10 | PODS_ROOT = ${SRCROOT}/Pods
11 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Pods-ASDKDemo.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_ASDKDemo {
2 | umbrella header "Pods-ASDKDemo-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-ASDKDemo/Pods-ASDKDemo.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINOperation" "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage" "$PODS_CONFIGURATION_BUILD_DIR/Texture" "$PODS_CONFIGURATION_BUILD_DIR/YYModel"
2 | GCC_PRECOMPILE_PREFIX_HEADER = YES
3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINCache/PINCache.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINOperation/PINOperation.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage/PINRemoteImage.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Texture/AsyncDisplayKit.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/YYModel/YYModel.framework/Headers"
6 | OTHER_LDFLAGS = $(inherited) -framework "AsyncDisplayKit" -framework "PINCache" -framework "PINOperation" -framework "PINRemoteImage" -framework "YYModel"
7 | PODS_BUILD_DIR = $BUILD_DIR
8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
10 | PODS_ROOT = ${SRCROOT}/Pods
11 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Texture/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.6.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Texture/Texture-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Texture : NSObject
3 | @end
4 | @implementation PodsDummy_Texture
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Texture/Texture-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Texture/Texture.modulemap:
--------------------------------------------------------------------------------
1 | framework module AsyncDisplayKit {
2 | umbrella header "Texture-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Texture/Texture.xcconfig:
--------------------------------------------------------------------------------
1 | CLANG_CXX_LANGUAGE_STANDARD = c++11
2 | CLANG_CXX_LIBRARY = libc++
3 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Texture
4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINOperation" "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage"
5 | GCC_PRECOMPILE_PREFIX_HEADER = YES
6 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
7 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
8 | OTHER_LDFLAGS = -l"c++" -weak_framework "AssetsLibrary" -weak_framework "MapKit" -weak_framework "Photos"
9 | PODS_BUILD_DIR = $BUILD_DIR
10 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
11 | PODS_ROOT = ${SRCROOT}
12 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Texture
13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
14 | SKIP_INSTALL = YES
15 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | ${PRODUCT_BUNDLE_IDENTIFIER}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.4
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/YYModel-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_YYModel : NSObject
3 | @end
4 | @implementation PodsDummy_YYModel
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/YYModel-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/YYModel-umbrella.h:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 | #import "NSObject+YYModel.h"
14 | #import "YYClassInfo.h"
15 | #import "YYModel.h"
16 |
17 | FOUNDATION_EXPORT double YYModelVersionNumber;
18 | FOUNDATION_EXPORT const unsigned char YYModelVersionString[];
19 |
20 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/YYModel.modulemap:
--------------------------------------------------------------------------------
1 | framework module YYModel {
2 | umbrella header "YYModel-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/YYModel/YYModel.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYModel
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public"
4 | OTHER_LDFLAGS = -framework "CoreFoundation" -framework "Foundation"
5 | PODS_BUILD_DIR = $BUILD_DIR
6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_ROOT = ${SRCROOT}
8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/YYModel
9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
10 | SKIP_INSTALL = YES
11 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASBlockTypes.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASBlockTypes.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @class ASCellNode;
21 |
22 | /**
23 | * ASCellNode creation block. Used to lazily create the ASCellNode instance for a specified indexPath.
24 | */
25 | typedef ASCellNode * _Nonnull(^ASCellNodeBlock)(void);
26 |
27 | // Type for the cancellation checker block passed into the async display blocks. YES means the operation has been cancelled, NO means continue.
28 | typedef BOOL(^asdisplaynode_iscancelled_block_t)(void);
29 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASDisplayNode+Convenience.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNode+Convenience.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @class UIViewController;
23 |
24 | @interface ASDisplayNode (Convenience)
25 |
26 | /**
27 | * @abstract Returns the view controller nearest to this node in the view hierarchy.
28 | *
29 | * @warning This property may only be accessed on the main thread. This property may
30 | * be @c nil until the node's view is actually hosted in the view hierarchy.
31 | */
32 | @property (nonatomic, nullable, readonly) __kindof UIViewController *closestViewController;
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASNavigationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASNavigationController.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | #import
21 |
22 | NS_ASSUME_NONNULL_BEGIN
23 |
24 | /**
25 | * ASNavigationController
26 | *
27 | * @discussion ASNavigationController is a drop in replacement for UINavigationController
28 | * which improves memory efficiency by implementing the @c ASManagesChildVisibilityDepth protocol.
29 | * You can use ASNavigationController with regular UIViewControllers, as well as ASViewControllers.
30 | * It is safe to subclass or use even where AsyncDisplayKit is not adopted.
31 | *
32 | * @see ASManagesChildVisibilityDepth
33 | */
34 | @interface ASNavigationController : UINavigationController
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASPagerFlowLayout.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASPagerFlowLayout.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @interface ASPagerFlowLayout : UICollectionViewFlowLayout
23 |
24 | @end
25 |
26 | NS_ASSUME_NONNULL_END
27 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASPagerNode+Beta.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASPagerNode+Beta.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | @interface ASPagerNode (Beta)
16 |
17 | - (instancetype)initUsingAsyncCollectionLayout;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASRangeManagingNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASRangeManagingNode.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 |
16 | @class ASCellNode;
17 |
18 | NS_ASSUME_NONNULL_BEGIN
19 |
20 | /**
21 | * Basically ASTableNode or ASCollectionNode.
22 | */
23 | @protocol ASRangeManagingNode
24 |
25 | /**
26 | * Retrieve the index path for the given node, if it's a member of this container.
27 | *
28 | * @param node The node.
29 | * @return The index path, or nil if the node is not part of this container.
30 | */
31 | - (nullable NSIndexPath *)indexPathForNode:(ASCellNode *)node;
32 |
33 | @end
34 |
35 | NS_ASSUME_NONNULL_END
36 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASTabBarController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTabBarController.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | #import
21 |
22 | NS_ASSUME_NONNULL_BEGIN
23 |
24 | /**
25 | * ASTabBarController
26 | *
27 | * @discussion ASTabBarController is a drop in replacement for UITabBarController
28 | * which implements the memory efficiency improving @c ASManagesChildVisibilityDepth protocol.
29 | *
30 | * @see ASManagesChildVisibilityDepth
31 | */
32 | @interface ASTabBarController : UITabBarController
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASTableNode+Beta.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTableNode+Beta.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | @protocol ASBatchFetchingDelegate;
16 |
17 | NS_ASSUME_NONNULL_BEGIN
18 |
19 | @interface ASTableNode (Beta)
20 |
21 | @property (nonatomic, weak) id batchFetchingDelegate;
22 |
23 | @end
24 |
25 | NS_ASSUME_NONNULL_END
26 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/ASVisibilityProtocols.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASVisibilityProtocols.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | ASLayoutRangeMode ASLayoutRangeModeForVisibilityDepth(NSUInteger visibilityDepth)
21 | {
22 | if (visibilityDepth == 0) {
23 | return ASLayoutRangeModeFull;
24 | } else if (visibilityDepth == 1) {
25 | return ASLayoutRangeModeMinimum;
26 | } else if (visibilityDepth == 2) {
27 | return ASLayoutRangeModeVisibleOnly;
28 | }
29 | return ASLayoutRangeModeLowMemory;
30 | }
31 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Base/ASAssert.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASAssert.m
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 |
16 | static pthread_key_t ASMainThreadAssertionsDisabledKey()
17 | {
18 | return ASPthreadStaticKey(NULL);
19 | }
20 |
21 | BOOL ASMainThreadAssertionsAreDisabled() {
22 | return (size_t)pthread_getspecific(ASMainThreadAssertionsDisabledKey()) > 0;
23 | }
24 |
25 | void ASPushMainThreadAssertionsDisabled() {
26 | pthread_key_t key = ASMainThreadAssertionsDisabledKey();
27 | size_t oldValue = (size_t)pthread_getspecific(key);
28 | pthread_setspecific(key, (void *)(oldValue + 1));
29 | }
30 |
31 | void ASPopMainThreadAssertionsDisabled() {
32 | pthread_key_t key = ASMainThreadAssertionsDisabledKey();
33 | size_t oldValue = (size_t)pthread_getspecific(key);
34 | if (oldValue > 0) {
35 | pthread_setspecific(key, (void *)(oldValue - 1));
36 | } else {
37 | ASDisplayNodeCFailAssert(@"Attempt to pop thread assertion-disabling without corresponding push.");
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Base/ASEqualityHelpers.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASEqualityHelpers.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | /**
21 | @abstract Correctly equates two objects, including cases where both objects are nil. The latter is a case where `isEqual:` fails.
22 | @param obj The first object in the comparison. Can be nil.
23 | @param otherObj The second object in the comparison. Can be nil.
24 | @result YES if the objects are equal, including cases where both object are nil.
25 | */
26 | ASDISPLAYNODE_INLINE BOOL ASObjectIsEqual(id obj, id otherObj)
27 | {
28 | return obj == otherObj || [obj isEqual:otherObj];
29 | }
30 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASBatchFetchingDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASBatchFetchingDelegate.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | @protocol ASBatchFetchingDelegate
16 |
17 | /**
18 | * @abstract Determine if batch fetching should begin based on the remaining time.
19 | * If the delegate doesn't have enough information to confidently decide, it can take the given hint.
20 | *
21 | * @param remainingTime The amount of time left for user to reach the end of the scroll view's content.
22 | *
23 | * @param hint A hint for the delegate to fallback to.
24 | */
25 | - (BOOL)shouldFetchBatchWithRemainingTime:(NSTimeInterval)remainingTime hint:(BOOL)hint;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASCollectionFlowLayoutDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionFlowLayoutDelegate.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | AS_SUBCLASSING_RESTRICTED
23 |
24 | /**
25 | * A thread-safe, high performant layout delegate that arranges items into a flow layout.
26 | * It uses a concurrent and multi-line ASStackLayoutSpec under the hood. Thus, per-child flex properties (i.e alignSelf,
27 | * flexShrink, flexGrow, etc - see @ASStackLayoutElement) can be set directly on cell nodes to be used
28 | * to calculate the final collection layout.
29 | */
30 | @interface ASCollectionFlowLayoutDelegate : NSObject
31 |
32 | - (instancetype)initWithScrollableDirections:(ASScrollDirection)scrollableDirections NS_DESIGNATED_INITIALIZER;
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASCollectionInternal.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionInternal.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASCollectionLayoutContext.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionLayoutContext.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 | #import
21 |
22 | @class ASElementMap;
23 |
24 | NS_ASSUME_NONNULL_BEGIN
25 |
26 | AS_SUBCLASSING_RESTRICTED
27 | @interface ASCollectionLayoutContext : NSObject
28 |
29 | @property (nonatomic, assign, readonly) CGSize viewportSize;
30 | @property (nonatomic, assign, readonly) CGPoint initialContentOffset;
31 | @property (nonatomic, assign, readonly) ASScrollDirection scrollableDirections;
32 | @property (nonatomic, weak, readonly) ASElementMap *elements;
33 | @property (nonatomic, strong, readonly, nullable) id additionalInfo;
34 |
35 | - (instancetype)init __unavailable;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASCollectionViewLayoutController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionViewLayoutController.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @class ASCollectionView;
23 |
24 | AS_SUBCLASSING_RESTRICTED
25 | @interface ASCollectionViewLayoutController : ASAbstractLayoutController
26 |
27 | - (instancetype)initWithCollectionView:(ASCollectionView *)collectionView;
28 |
29 | @end
30 |
31 | NS_ASSUME_NONNULL_END
32 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASEventLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASEventLog.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #ifndef ASEVENTLOG_CAPACITY
22 | #define ASEVENTLOG_CAPACITY 5
23 | #endif
24 |
25 | #ifndef ASEVENTLOG_ENABLE
26 | #define ASEVENTLOG_ENABLE 0
27 | #endif
28 |
29 | NS_ASSUME_NONNULL_BEGIN
30 |
31 | AS_SUBCLASSING_RESTRICTED
32 | @interface ASEventLog : NSObject
33 |
34 | /**
35 | * Create a new event log.
36 | *
37 | * @param anObject The object whose events we are logging. This object is not retained.
38 | */
39 | - (instancetype)initWithObject:(id)anObject;
40 |
41 | - (void)logEventWithBacktrace:(nullable NSArray *)backtrace format:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3);
42 |
43 | - (instancetype)init NS_UNAVAILABLE;
44 |
45 | @end
46 |
47 | NS_ASSUME_NONNULL_END
48 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASHashing.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASHashing.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 |
16 | NS_ASSUME_NONNULL_BEGIN
17 | ASDISPLAYNODE_EXTERN_C_BEGIN
18 |
19 | /**
20 | * When std::hash is unavailable, this function will hash a bucket o' bits real fast.
21 | * The hashing algorithm is copied from CoreFoundation's private function CFHashBytes.
22 | * https://opensource.apple.com/source/CF/CF-1153.18/CFUtilities.c.auto.html
23 | *
24 | * Simple example:
25 | * CGRect myRect = { ... };
26 | * ASHashBytes(&myRect, sizeof(myRect));
27 | *
28 | * Example:
29 | * struct {
30 | * NSUInteger imageHash;
31 | * CGSize size;
32 | * } data = {
33 | * _image.hash,
34 | * _bounds.size
35 | * };
36 | * return ASHashBytes(&data, sizeof(data));
37 | *
38 | * @warning: If a struct has padding, any fields that are intiailized in {}
39 | * will have garbage data for their padding, which will break this hash! Either
40 | * use `pragma clang diagnostic warning "-Wpadded"` around your struct definition
41 | * or manually initialize the fields of your struct (`myStruct.x = 7;` etc).
42 | */
43 | NSUInteger ASHashBytes(void *bytes, size_t length);
44 |
45 | ASDISPLAYNODE_EXTERN_C_END
46 | NS_ASSUME_NONNULL_END
47 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASHashing.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASHashing.m
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | #define ELF_STEP(B) T1 = (H << 4) + B; T2 = T1 & 0xF0000000; if (T2) T1 ^= (T2 >> 24); T1 &= (~T2); H = T1;
16 |
17 | /**
18 | * The hashing algorithm copied from CoreFoundation CFHashBytes function.
19 | * https://opensource.apple.com/source/CF/CF-1153.18/CFUtilities.c.auto.html
20 | */
21 | NSUInteger ASHashBytes(void *bytesarg, size_t length) {
22 | /* The ELF hash algorithm, used in the ELF object file format */
23 | uint8_t *bytes = (uint8_t *)bytesarg;
24 | UInt32 H = 0, T1, T2;
25 | SInt32 rem = (SInt32)length;
26 | while (3 < rem) {
27 | ELF_STEP(bytes[length - rem]);
28 | ELF_STEP(bytes[length - rem + 1]);
29 | ELF_STEP(bytes[length - rem + 2]);
30 | ELF_STEP(bytes[length - rem + 3]);
31 | rem -= 4;
32 | }
33 | switch (rem) {
34 | case 3: ELF_STEP(bytes[length - 3]);
35 | case 2: ELF_STEP(bytes[length - 2]);
36 | case 1: ELF_STEP(bytes[length - 1]);
37 | case 0: ;
38 | }
39 | return H;
40 | }
41 |
42 | #undef ELF_STEP
43 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASImageContainerProtocolCategories.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASImageContainerProtocolCategories.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @interface UIImage (ASImageContainerProtocol)
22 |
23 | @end
24 |
25 | @interface NSData (ASImageContainerProtocol)
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASImageContainerProtocolCategories.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASImageContainerProtocolCategories.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @implementation UIImage (ASImageContainerProtocol)
21 |
22 | - (UIImage *)asdk_image
23 | {
24 | return self;
25 | }
26 |
27 | - (NSData *)asdk_animatedImageData
28 | {
29 | return nil;
30 | }
31 |
32 | @end
33 |
34 | @implementation NSData (ASImageContainerProtocol)
35 |
36 | - (UIImage *)asdk_image
37 | {
38 | return nil;
39 | }
40 |
41 | - (NSData *)asdk_animatedImageData
42 | {
43 | return self;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASMainSerialQueue.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASMainSerialQueue.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | AS_SUBCLASSING_RESTRICTED
22 | @interface ASMainSerialQueue : NSObject
23 |
24 | @property (nonatomic, readonly) NSUInteger numberOfScheduledBlocks;
25 | - (void)performBlockOnMainThread:(dispatch_block_t)block;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASRangeControllerUpdateRangeProtocol+Beta.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASRangeControllerUpdateRangeProtocol+Beta.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @protocol ASRangeControllerUpdateRangeProtocol
22 |
23 | /**
24 | * Updates the current range mode of the range controller for at least the next range update
25 | * and, if the new mode is different from the previous mode, enqueues a range update.
26 | */
27 | - (void)updateCurrentRangeWithMode:(ASLayoutRangeMode)rangeMode;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASSectionContext.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASSectionContext.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @class ASCollectionView;
21 |
22 | @protocol ASSectionContext
23 |
24 | /**
25 | * Custom name of this section, for debugging only.
26 | */
27 | @property (nonatomic, copy, nullable) NSString *sectionName;
28 | @property (nonatomic, weak, nullable) ASCollectionView *collectionView;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASTableLayoutController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTableLayoutController.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | @class UITableView;
24 |
25 | /**
26 | * A layout controller designed for use with UITableView.
27 | */
28 | AS_SUBCLASSING_RESTRICTED
29 | @interface ASTableLayoutController : ASAbstractLayoutController
30 |
31 | @property (nonatomic, weak, readonly) UITableView *tableView;
32 |
33 | - (instancetype)initWithTableView:(UITableView *)tableView;
34 |
35 | @end
36 |
37 | NS_ASSUME_NONNULL_END
38 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASTraceEvent.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTraceEvent.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | AS_SUBCLASSING_RESTRICTED
24 | @interface ASTraceEvent : NSObject
25 |
26 | /**
27 | * This method is dealloc safe.
28 | */
29 | - (instancetype)initWithBacktrace:(nullable NSArray *)backtrace
30 | format:(NSString *)format
31 | arguments:(va_list)arguments NS_FORMAT_FUNCTION(2,0);
32 |
33 | // Will be nil unless AS_SAVE_EVENT_BACKTRACES=1 (default=0)
34 | @property (nonatomic, nullable, readonly) NSArray *backtrace;
35 | @property (nonatomic, strong, readonly) NSString *message;
36 | @property (nonatomic, readonly) NSTimeInterval timestamp;
37 |
38 | @end
39 |
40 | NS_ASSUME_NONNULL_END
41 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/ASWeakProxy.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASWeakProxy.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | AS_SUBCLASSING_RESTRICTED
22 | @interface ASWeakProxy : NSProxy
23 |
24 | /**
25 | * @return target The target which will be forwarded all messages sent to the weak proxy.
26 | */
27 | @property (nonatomic, weak, readonly) id target;
28 |
29 | /**
30 | * An object which forwards messages to a target which it weakly references
31 | *
32 | * @discussion This class is useful for breaking retain cycles. You can pass this in place
33 | * of the target to something which creates a strong reference. All messages sent to the
34 | * proxy will be passed onto the target.
35 | *
36 | * @return an instance of ASWeakProxy
37 | */
38 | + (instancetype)weakProxyWithTarget:(id)target;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/CoreGraphics+ASConvenience.m:
--------------------------------------------------------------------------------
1 | //
2 | // CoreGraphics+ASConvenience.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/NSMutableAttributedString+TextKitAdditions.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableAttributedString+TextKitAdditions.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @interface NSMutableAttributedString (TextKitAdditions)
23 |
24 | - (void)attributeTextInRange:(NSRange)range withTextKitMinimumLineHeight:(CGFloat)minimumLineHeight;
25 |
26 | - (void)attributeTextInRange:(NSRange)range withTextKitMinimumLineHeight:(CGFloat)minimumLineHeight maximumLineHeight:(CGFloat)maximumLineHeight;
27 |
28 | - (void)attributeTextInRange:(NSRange)range withTextKitLineHeight:(CGFloat)lineHeight;
29 |
30 | - (void)attributeTextInRange:(NSRange)range withTextKitParagraphStyle:(NSParagraphStyle *)paragraphStyle;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/Transactions/_ASAsyncTransactionContainer+Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASAsyncTransactionContainer+Private.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | @class _ASAsyncTransaction;
24 |
25 | @interface CALayer (ASAsyncTransactionContainerTransactions)
26 | @property (nonatomic, strong, nullable, setter=asyncdisplaykit_setAsyncLayerTransactions:) NSHashTable<_ASAsyncTransaction *> *asyncdisplaykit_asyncLayerTransactions;
27 |
28 | - (void)asyncdisplaykit_asyncTransactionContainerWillBeginTransaction:(_ASAsyncTransaction *)transaction;
29 | - (void)asyncdisplaykit_asyncTransactionContainerDidCompleteTransaction:(_ASAsyncTransaction *)transaction;
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/Transactions/_ASAsyncTransactionGroup.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASAsyncTransactionGroup.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @class _ASAsyncTransaction;
23 | @protocol ASAsyncTransactionContainer;
24 |
25 | /// A group of transaction containers, for which the current transactions are committed together at the end of the next runloop tick.
26 | @interface _ASAsyncTransactionGroup : NSObject
27 | /// The main transaction group is scheduled to commit on every tick of the main runloop.
28 | + (_ASAsyncTransactionGroup *)mainTransactionGroup;
29 | + (void)commit;
30 |
31 | /// Add a transaction container to be committed.
32 | /// @see ASAsyncTransactionContainer
33 | - (void)addTransactionContainer:(id)container;
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/UICollectionViewLayout+ASConvenience.h:
--------------------------------------------------------------------------------
1 | //
2 | // UICollectionViewLayout+ASConvenience.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @protocol ASCollectionViewLayoutInspecting;
21 |
22 | NS_ASSUME_NONNULL_BEGIN
23 |
24 | @interface UICollectionViewLayout (ASLayoutInspectorProviding)
25 |
26 | /**
27 | * You can override this method on your @c UICollectionViewLayout subclass to
28 | * return a layout inspector tailored to your layout.
29 | *
30 | * It's fine to return @c self. You must not return @c nil.
31 | */
32 | - (id)asdk_layoutInspector;
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/UICollectionViewLayout+ASConvenience.m:
--------------------------------------------------------------------------------
1 | //
2 | // UICollectionViewLayout+ASConvenience.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | #import
21 |
22 | #import
23 |
24 | @implementation UICollectionViewLayout (ASLayoutInspectorProviding)
25 |
26 | - (id)asdk_layoutInspector
27 | {
28 | UICollectionViewFlowLayout *flow = ASDynamicCast(self, UICollectionViewFlowLayout);
29 | if (flow != nil) {
30 | return [[ASCollectionViewFlowLayoutInspector alloc] initWithFlowLayout:flow];
31 | } else {
32 | return [[ASCollectionViewLayoutInspector alloc] init];
33 | }
34 | }
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/_ASCollectionReusableView.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASCollectionReusableView.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @class ASCellNode, ASCollectionElement;
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | AS_SUBCLASSING_RESTRICTED // Note: ASDynamicCastStrict is used on instances of this class based on this restriction.
26 | @interface _ASCollectionReusableView : UICollectionReusableView
27 |
28 | @property (nonatomic, strong, readonly, nullable) ASCellNode *node;
29 | @property (nonatomic, strong, nullable) ASCollectionElement *element;
30 | @property (nonatomic, strong, nullable) UICollectionViewLayoutAttributes *layoutAttributes;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/_ASDisplayView.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASDisplayView.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | // This class is only for use by ASDisplayNode and should never be subclassed or used directly.
21 | // Note that the "node" property is added to UIView directly via a category in ASDisplayNode.
22 |
23 | @interface _ASDisplayView : UIView
24 |
25 | // These methods expose a way for ASDisplayNode touch events to let the view call super touch events
26 | // Some UIKit mechanisms, like UITableView and UICollectionView selection handling, require this to work
27 | - (void)__forwardTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
28 | - (void)__forwardTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
29 | - (void)__forwardTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
30 | - (void)__forwardTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Details/_ASDisplayViewAccessiblity.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASDisplayViewAccessiblity.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @interface _ASDisplayView (UIAccessibilityContainer)
22 | @property (copy, nonatomic) NSArray *accessibleElements;
23 | @end
24 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/IGListAdapter+AsyncDisplayKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // IGListAdapter+AsyncDisplayKit.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | #if AS_IG_LIST_KIT
21 |
22 | #import
23 |
24 | NS_ASSUME_NONNULL_BEGIN
25 |
26 | @class ASCollectionNode;
27 |
28 | @interface IGListAdapter (AsyncDisplayKit)
29 |
30 | /**
31 | * Connect this list adapter to the given collection node.
32 | *
33 | * @param collectionNode The collection node to drive with this list adapter.
34 | *
35 | * @note This method may only be called once per list adapter,
36 | * and it must be called on the main thread. -[UIViewController init]
37 | * is a good place to call it. This method does not retain the collection node.
38 | */
39 | - (void)setASDKCollectionNode:(ASCollectionNode *)collectionNode;
40 |
41 | @end
42 |
43 | NS_ASSUME_NONNULL_END
44 |
45 | #endif // AS_IG_LIST_KIT
46 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Layout/ASAbsoluteLayoutElement.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASAbsoluteLayoutElement.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | /**
23 | * Layout options that can be defined for an ASLayoutElement being added to a ASAbsoluteLayoutSpec.
24 | */
25 | @protocol ASAbsoluteLayoutElement
26 |
27 | /**
28 | * @abstract The position of this object within its parent spec.
29 | */
30 | @property (nonatomic, assign) CGPoint layoutPosition;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Layout/ASRatioLayoutSpec.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASRatioLayoutSpec.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @protocol ASLayoutElement;
23 |
24 | /**
25 | Ratio layout spec
26 | For when the content should respect a certain inherent ratio but can be scaled (think photos or videos)
27 | The ratio passed is the ratio of height / width you expect
28 |
29 | For a ratio 0.5, the spec will have a flat rectangle shape
30 | _ _ _ _
31 | | |
32 | |_ _ _ _|
33 |
34 | For a ratio 2.0, the spec will be twice as tall as it is wide
35 | _ _
36 | | |
37 | | |
38 | | |
39 | |_ _|
40 |
41 | **/
42 | @interface ASRatioLayoutSpec : ASLayoutSpec
43 |
44 | @property (nonatomic, assign) CGFloat ratio;
45 |
46 | + (instancetype)ratioLayoutSpecWithRatio:(CGFloat)ratio child:(id)child AS_WARN_UNUSED_RESULT;
47 |
48 | @end
49 |
50 | NS_ASSUME_NONNULL_END
51 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Layout/ASYogaLayoutSpec.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASYogaLayoutSpec.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | #if YOGA /* YOGA */
16 |
17 | #import
18 | #import
19 |
20 | @interface ASYogaLayoutSpec : ASLayoutSpec
21 | @property (nonatomic, strong, nonnull) ASDisplayNode *rootNode;
22 | @end
23 |
24 | #endif /* YOGA */
25 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASBasicImageDownloaderInternal.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASBasicImageDownloaderInternal.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | @interface ASBasicImageDownloaderContext : NSObject
19 |
20 | + (ASBasicImageDownloaderContext *)contextForURL:(NSURL *)URL;
21 |
22 | @property (nonatomic, strong, readonly) NSURL *URL;
23 | @property (nonatomic, weak) NSURLSessionTask *sessionTask;
24 |
25 | - (BOOL)isCancelled;
26 | - (void)cancel;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASCollectionLayoutCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionLayoutCache.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 |
16 | NS_ASSUME_NONNULL_BEGIN
17 |
18 | @class ASCollectionLayoutContext, ASCollectionLayoutState;
19 |
20 | /// A thread-safe cache for ASCollectionLayoutContext-ASCollectionLayoutState pairs
21 | AS_SUBCLASSING_RESTRICTED
22 | @interface ASCollectionLayoutCache : NSObject
23 |
24 | - (nullable ASCollectionLayoutState *)layoutForContext:(ASCollectionLayoutContext *)context;
25 |
26 | - (void)setLayout:(ASCollectionLayoutState *)layout forContext:(ASCollectionLayoutContext *)context;
27 |
28 | - (void)removeLayoutForContext:(ASCollectionLayoutContext *)context;
29 |
30 | - (void)removeAllLayouts;
31 |
32 | @end
33 |
34 | NS_ASSUME_NONNULL_END
35 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASCollectionLayoutDefines.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionLayoutDefines.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | #import
16 | #import
17 | #import
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | ASDISPLAYNODE_EXTERN_C_BEGIN
22 |
23 | FOUNDATION_EXPORT ASSizeRange ASSizeRangeForCollectionLayoutThatFitsViewportSize(CGSize viewportSize, ASScrollDirection scrollableDirections) AS_WARN_UNUSED_RESULT;
24 |
25 | ASDISPLAYNODE_EXTERN_C_END
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASCollectionLayoutDefines.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionLayoutDefines.m
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | extern ASSizeRange ASSizeRangeForCollectionLayoutThatFitsViewportSize(CGSize viewportSize, ASScrollDirection scrollableDirections)
16 | {
17 | ASSizeRange sizeRange = ASSizeRangeUnconstrained;
18 | if (ASScrollDirectionContainsVerticalDirection(scrollableDirections) == NO) {
19 | sizeRange.min.height = viewportSize.height;
20 | sizeRange.max.height = viewportSize.height;
21 | }
22 | if (ASScrollDirectionContainsHorizontalDirection(scrollableDirections) == NO) {
23 | sizeRange.min.width = viewportSize.width;
24 | sizeRange.max.width = viewportSize.width;
25 | }
26 | return sizeRange;
27 | }
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASCollectionLayoutState+Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionLayoutState+Private.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 |
16 | NS_ASSUME_NONNULL_BEGIN
17 |
18 | @interface ASCollectionLayoutState (Private)
19 |
20 | /**
21 | * Remove and returns layout attributes for unmeasured elements that intersect the specified rect
22 | *
23 | * @discussion This method is atomic and thread-safe
24 | */
25 | - (nullable ASPageToLayoutAttributesTable *)getAndRemoveUnmeasuredLayoutAttributesPageTableInRect:(CGRect)rect;
26 |
27 | @end
28 |
29 | NS_ASSUME_NONNULL_END
30 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASCollectionViewFlowLayoutInspector.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASCollectionViewFlowLayoutInspector.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | NS_ASSUME_NONNULL_BEGIN
21 |
22 | @class ASCollectionView;
23 | @class UICollectionViewFlowLayout;
24 |
25 | /**
26 | * A layout inspector implementation specific for the sizing behavior of UICollectionViewFlowLayouts
27 | */
28 | AS_SUBCLASSING_RESTRICTED
29 | @interface ASCollectionViewFlowLayoutInspector : NSObject
30 |
31 | @property (nonatomic, weak, readonly) UICollectionViewFlowLayout *layout;
32 |
33 | - (instancetype)init NS_UNAVAILABLE;
34 | - (instancetype)initWithFlowLayout:(UICollectionViewFlowLayout *)flowLayout NS_DESIGNATED_INITIALIZER;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASControlTargetAction.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASControlTargetAction.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | /**
21 | @abstract ASControlTargetAction stores target action pairs registered for specific ASControlNodeEvent values.
22 | */
23 | @interface ASControlTargetAction : NSObject
24 |
25 | /**
26 | The action to be called on the registered target.
27 | */
28 | @property (nonatomic, readwrite, assign) SEL action;
29 |
30 | /**
31 | Event handler target. The specified action will be called on this object.
32 | */
33 | @property (nonatomic, readwrite, weak) id target;
34 |
35 | /**
36 | Indicated whether this target was created without a target, so the action should travel up in the responder chain.
37 | */
38 | @property (nonatomic, readonly) BOOL createdWithNoTarget;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDefaultPlayButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDefaultPlayButton.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @interface ASDefaultPlayButton : ASButtonNode
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDefaultPlaybackButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDefaultPlaybackButton.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | typedef NS_ENUM(NSInteger, ASDefaultPlaybackButtonType) {
21 | ASDefaultPlaybackButtonTypePlay,
22 | ASDefaultPlaybackButtonTypePause
23 | };
24 |
25 | @interface ASDefaultPlaybackButton : ASControlNode
26 | @property (nonatomic, assign) ASDefaultPlaybackButtonType buttonType;
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDisplayNode+DebugTiming.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNode+DebugTiming.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | @interface ASDisplayNode (DebugTiming)
21 |
22 | @property (nonatomic, readonly) NSTimeInterval debugTimeToCreateView;
23 | @property (nonatomic, readonly) NSTimeInterval debugTimeToApplyPendingState;
24 | @property (nonatomic, readonly) NSTimeInterval debugTimeToAddSubnodeViews;
25 | @property (nonatomic, readonly) NSTimeInterval debugTimeForDidLoad;
26 |
27 | - (NSTimeInterval)debugAllCreationTime;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDisplayNode+FrameworkSubclasses.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNode+FrameworkSubclasses.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | //
19 | // The following methods are ONLY for use by _ASDisplayLayer, _ASDisplayView, and ASDisplayNode.
20 | // These methods must never be called or overridden by other classes.
21 | //
22 |
23 | #import
24 | #import
25 |
26 | // These are included because most internal subclasses need it.
27 | #import
28 | #import
29 |
30 | NS_ASSUME_NONNULL_BEGIN
31 |
32 | @interface ASDisplayNode ()
33 | {
34 | // Protects access to _view, _layer, _pendingViewState, _subnodes, _supernode, and other properties which are accessed from multiple threads.
35 | @package
36 | ASDN::RecursiveMutex __instanceLock__;
37 | }
38 | @end
39 |
40 | NS_ASSUME_NONNULL_END
41 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDisplayNodeLayout.mm:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNodeLayout.mm
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | BOOL ASDisplayNodeLayout::isValid(ASSizeRange theConstrainedSize, CGSize theParentSize, NSUInteger versionArg)
21 | {
22 | return version >= versionArg
23 | && layout != nil
24 | && CGSizeEqualToSize(parentSize, theParentSize)
25 | && ASSizeRangeEqualToSizeRange(constrainedSize, theConstrainedSize);
26 | }
27 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDisplayNodeTipState.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNodeTipState.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @class ASDisplayNode, ASTipNode;
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | AS_SUBCLASSING_RESTRICTED
26 | @interface ASDisplayNodeTipState : NSObject
27 |
28 | - (instancetype)initWithNode:(ASDisplayNode *)node NS_DESIGNATED_INITIALIZER;
29 |
30 | - (instancetype)init NS_UNAVAILABLE;
31 |
32 | /// Unsafe because once the node is deallocated, we will not be able to access the tip state.
33 | @property (nonatomic, unsafe_unretained, readonly) ASDisplayNode *node;
34 |
35 | /// Main-thread-only.
36 | @property (nonatomic, strong, nullable) ASTipNode *tipNode;
37 |
38 | @end
39 |
40 | NS_ASSUME_NONNULL_END
41 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASDisplayNodeTipState.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASDisplayNodeTipState.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import "ASDisplayNodeTipState.h"
19 |
20 | @interface ASDisplayNodeTipState ()
21 | @end
22 |
23 | @implementation ASDisplayNodeTipState
24 |
25 | - (instancetype)initWithNode:(ASDisplayNode *)node
26 | {
27 | if (self = [super init]) {
28 | _node = node;
29 | }
30 | return self;
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASIGListAdapterBasedDataSource.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASIGListAdapterBasedDataSource.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 |
20 | #if AS_IG_LIST_KIT
21 |
22 | #import
23 | #import
24 | #import
25 |
26 | NS_ASSUME_NONNULL_BEGIN
27 |
28 | AS_SUBCLASSING_RESTRICTED
29 | @interface ASIGListAdapterBasedDataSource : NSObject
30 |
31 | - (instancetype)initWithListAdapter:(IGListAdapter *)listAdapter;
32 |
33 | @end
34 |
35 | #endif
36 |
37 | NS_ASSUME_NONNULL_END
38 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASImageNode+Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASImageNode+Private.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #pragma once
19 |
20 | @interface ASImageNode (Private)
21 |
22 | - (void)_locked_setImage:(UIImage *)image;
23 | - (UIImage *)_locked_Image;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASLayerBackingTipProvider.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASLayerBackingTipProvider.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import "ASTipProvider.h"
19 | #import
20 |
21 | #if AS_ENABLE_TIPS
22 |
23 | NS_ASSUME_NONNULL_BEGIN
24 |
25 | AS_SUBCLASSING_RESTRICTED
26 | @interface ASLayerBackingTipProvider : ASTipProvider
27 |
28 | @end
29 |
30 | NS_ASSUME_NONNULL_END
31 |
32 | #endif // AS_ENABLE_TIPS
33 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASResponderChainEnumerator.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASResponderChainEnumerator.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | NS_ASSUME_NONNULL_BEGIN
22 |
23 | AS_SUBCLASSING_RESTRICTED
24 | @interface ASResponderChainEnumerator : NSEnumerator
25 |
26 | - (instancetype)initWithResponder:(UIResponder *)responder;
27 |
28 | @end
29 |
30 | @interface UIResponder (ASResponderChainEnumerator)
31 |
32 | - (ASResponderChainEnumerator *)asdk_responderChainEnumerator;
33 |
34 | @end
35 |
36 |
37 | NS_ASSUME_NONNULL_END
38 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASSection.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASSection.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | @implementation ASSection
22 |
23 | - (instancetype)initWithSectionID:(NSInteger)sectionID context:(id)context
24 | {
25 | self = [super init];
26 | if (self) {
27 | _sectionID = sectionID;
28 | _context = context;
29 | }
30 | return self;
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTip.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASTip.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import "ASTip.h"
19 |
20 | #if AS_ENABLE_TIPS
21 |
22 | #import
23 |
24 | @implementation ASTip
25 |
26 | - (instancetype)initWithNode:(ASDisplayNode *)node
27 | kind:(ASTipKind)kind
28 | format:(NSString *)format, ...
29 | {
30 | if (self = [super init]) {
31 | _node = node;
32 | _kind = kind;
33 | va_list args;
34 | va_start(args, format);
35 | _text = [[NSString alloc] initWithFormat:format arguments:args];
36 | va_end(args);
37 | }
38 | return self;
39 | }
40 |
41 | @end
42 |
43 | #endif // AS_ENABLE_TIPS
44 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipNode.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipNode.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #if AS_ENABLE_TIPS
22 |
23 | @class ASTip;
24 |
25 | NS_ASSUME_NONNULL_BEGIN
26 |
27 | /**
28 | * ASTipNode will send these up the responder chain.
29 | */
30 | @protocol ASTipNodeActions
31 | - (void)didTapTipNode:(id)sender;
32 | @end
33 |
34 | AS_SUBCLASSING_RESTRICTED
35 | @interface ASTipNode : ASControlNode
36 |
37 | - (instancetype)initWithTip:(ASTip *)tip NS_DESIGNATED_INITIALIZER;
38 |
39 | - (instancetype)init NS_UNAVAILABLE;
40 |
41 | @property (nonatomic, strong, readonly) ASTip *tip;
42 |
43 | @end
44 |
45 | NS_ASSUME_NONNULL_END
46 |
47 | #endif // AS_ENABLE_TIPS
48 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipNode.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipNode.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import "ASTipNode.h"
19 |
20 | #if AS_ENABLE_TIPS
21 |
22 | @implementation ASTipNode
23 |
24 | - (instancetype)initWithTip:(ASTip *)tip
25 | {
26 | if (self = [super init]) {
27 | self.backgroundColor = [UIColor colorWithRed:0 green:0.7 blue:0.2 alpha:0.3];
28 | _tip = tip;
29 | [self addTarget:nil action:@selector(didTapTipNode:) forControlEvents:ASControlNodeEventTouchUpInside];
30 | }
31 | return self;
32 | }
33 |
34 | @end
35 |
36 | #endif // AS_ENABLE_TIPS
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipProvider.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipProvider.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #if AS_ENABLE_TIPS
22 |
23 | @class ASDisplayNode, ASTip;
24 |
25 | NS_ASSUME_NONNULL_BEGIN
26 |
27 | /**
28 | * An abstract superclass for all tip providers.
29 | */
30 | @interface ASTipProvider : NSObject
31 |
32 | /**
33 | * The provider looks at the node's current situation and
34 | * generates a tip, if any, to add to the node.
35 | *
36 | * Subclasses must override this.
37 | */
38 | - (nullable ASTip *)tipForNode:(ASDisplayNode *)node;
39 |
40 | @end
41 |
42 | @interface ASTipProvider (Lookup)
43 |
44 | @property (class, nonatomic, copy, readonly) NSArray<__kindof ASTipProvider *> *all;
45 |
46 | @end
47 |
48 | NS_ASSUME_NONNULL_END
49 |
50 | #endif // AS_ENABLE_TIPS
51 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipProvider.m:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipProvider.m
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import "ASTipProvider.h"
19 |
20 | #if AS_ENABLE_TIPS
21 |
22 | #import
23 |
24 | // Concrete classes
25 | #import
26 |
27 | @implementation ASTipProvider
28 |
29 | - (ASTip *)tipForNode:(ASDisplayNode *)node
30 | {
31 | ASDisplayNodeFailAssert(@"Subclasses must override %@", NSStringFromSelector(_cmd));
32 | return nil;
33 | }
34 |
35 | @end
36 |
37 | @implementation ASTipProvider (Lookup)
38 |
39 | + (NSArray *)all
40 | {
41 | static NSArray *providers;
42 | static dispatch_once_t onceToken;
43 | dispatch_once(&onceToken, ^{
44 | providers = @[ [ASLayerBackingTipProvider new] ];
45 | });
46 | return providers;
47 | }
48 |
49 | @end
50 |
51 | #endif // AS_ENABLE_TIPS
52 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipsController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipsController.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #if AS_ENABLE_TIPS
22 |
23 | @class ASDisplayNode;
24 |
25 | NS_ASSUME_NONNULL_BEGIN
26 |
27 | AS_SUBCLASSING_RESTRICTED
28 | @interface ASTipsController : NSObject
29 |
30 | /**
31 | * The shared tip controller instance.
32 | */
33 | @property (class, strong, readonly) ASTipsController *shared;
34 |
35 | #pragma mark - Node Event Hooks
36 |
37 | /**
38 | * Informs the controller that the sender did enter the visible range.
39 | *
40 | * The controller will run a pass with its tip providers, adding tips as needed.
41 | */
42 | - (void)nodeDidAppear:(ASDisplayNode *)node;
43 |
44 | @end
45 |
46 | NS_ASSUME_NONNULL_END
47 |
48 | #endif // AS_ENABLE_TIPS
49 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/ASTipsWindow.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASTipsWindow.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #if AS_ENABLE_TIPS
22 |
23 | @class ASDisplayNode, ASDisplayNodeTipState;
24 |
25 | NS_ASSUME_NONNULL_BEGIN
26 |
27 | /**
28 | * A window that shows tips. This was originally meant to be a view controller
29 | * but UIKit will not manage view controllers in non-key windows correctly AT ALL
30 | * as of the time of this writing.
31 | */
32 | AS_SUBCLASSING_RESTRICTED
33 | @interface ASTipsWindow : UIWindow
34 |
35 | /// The main application window that the tips are tracking.
36 | @property (nonatomic, weak) UIWindow *mainWindow;
37 |
38 | @property (nonatomic, copy, nullable) NSMapTable *nodeToTipStates;
39 |
40 | @end
41 |
42 | NS_ASSUME_NONNULL_END
43 |
44 | #endif
45 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/Layout/ASLayoutElementStylePrivate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASLayoutElementStylePrivate.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #pragma once
19 |
20 | #import
21 |
22 | @interface ASLayoutElementStyle ()
23 |
24 | /**
25 | * @abstract The object that acts as the delegate of the style.
26 | *
27 | * @discussion The delegate must adopt the ASLayoutElementStyleDelegate protocol. The delegate is not retained.
28 | */
29 | @property (nullable, nonatomic, weak) id delegate;
30 |
31 | /**
32 | * @abstract A size constraint that should apply to this ASLayoutElement.
33 | */
34 | @property (nonatomic, assign, readonly) ASLayoutElementSize size;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/Layout/ASLayoutSpecPrivate.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASLayoutSpecPrivate.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 |
21 | #if DEBUG
22 | #define AS_DEDUPE_LAYOUT_SPEC_TREE 1
23 | #else
24 | #define AS_DEDUPE_LAYOUT_SPEC_TREE 0
25 | #endif
26 |
27 | NS_ASSUME_NONNULL_BEGIN
28 |
29 | @interface ASLayoutSpec() {
30 | ASDN::RecursiveMutex __instanceLock__;
31 | std::atomic _primitiveTraitCollection;
32 | ASLayoutElementStyle *_style;
33 | NSMutableArray *_childrenArray;
34 | }
35 |
36 | #if AS_DEDUPE_LAYOUT_SPEC_TREE
37 | /**
38 | * Recursively search the subtree for elements that occur more than once.
39 | */
40 | - (nullable NSHashTable> *)findDuplicatedElementsInSubtree;
41 | #endif
42 |
43 | @end
44 |
45 | NS_ASSUME_NONNULL_END
46 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/Layout/ASStackPositionedLayout.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASStackPositionedLayout.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import
20 | #import
21 |
22 | /** Represents a set of laid out and positioned stack layout children. */
23 | struct ASStackPositionedLayout {
24 | const std::vector items;
25 | /** Final size of the stack */
26 | const CGSize size;
27 |
28 | /** Given an unpositioned layout, computes the positions each child should be placed at. */
29 | static ASStackPositionedLayout compute(const ASStackUnpositionedLayout &unpositionedLayout,
30 | const ASStackLayoutSpecStyle &style,
31 | const ASSizeRange &constrainedSize);
32 | };
33 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/TextExperiment/Utility/NSParagraphStyle+ASText.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSParagraphStyle+ASText.h
3 | // Modified from YYText
4 | //
5 | // Created by ibireme on 14/10/7.
6 | // Copyright (c) 2015 ibireme.
7 | //
8 | // This source code is licensed under the MIT-style license found in the
9 | // LICENSE file in the root directory of this source tree.
10 | //
11 |
12 | #import
13 |
14 | NS_ASSUME_NONNULL_BEGIN
15 |
16 | /**
17 | Provides extensions for `NSParagraphStyle` to work with CoreText.
18 | */
19 | @interface NSParagraphStyle (ASText)
20 |
21 | /**
22 | Creates a new NSParagraphStyle object from the CoreText Style.
23 |
24 | @param CTStyle CoreText Paragraph Style.
25 |
26 | @return a new NSParagraphStyle
27 | */
28 | + (nullable NSParagraphStyle *)as_styleWithCTStyle:(CTParagraphStyleRef)CTStyle;
29 |
30 | /**
31 | Creates and returns a CoreText Paragraph Style. (need call CFRelease() after used)
32 | */
33 | - (nullable CTParagraphStyleRef)as_CTStyle CF_RETURNS_RETAINED;
34 |
35 | @end
36 |
37 | NS_ASSUME_NONNULL_END
38 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/_ASCollectionGalleryLayoutInfo.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASCollectionGalleryLayoutInfo.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 |
15 | @interface _ASCollectionGalleryLayoutInfo : NSObject
16 |
17 | // Read-only properties
18 | @property (nonatomic, assign, readonly) CGSize itemSize;
19 | @property (nonatomic, assign, readonly) CGFloat minimumLineSpacing;
20 | @property (nonatomic, assign, readonly) CGFloat minimumInteritemSpacing;
21 | @property (nonatomic, assign, readonly) UIEdgeInsets sectionInset;
22 |
23 | - (instancetype)initWithItemSize:(CGSize)itemSize
24 | minimumLineSpacing:(CGFloat)minimumLineSpacing
25 | minimumInteritemSpacing:(CGFloat)minimumInteritemSpacing
26 | sectionInset:(UIEdgeInsets)sectionInset NS_DESIGNATED_INITIALIZER;
27 |
28 | - (instancetype)init __unavailable;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/Private/_ASCollectionGalleryLayoutItem.h:
--------------------------------------------------------------------------------
1 | //
2 | // _ASCollectionGalleryLayoutItem.h
3 | // Texture
4 | //
5 | // Copyright (c) 2017-present, Pinterest, Inc. All rights reserved.
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 |
13 | #import
14 | #import
15 | #import
16 |
17 | @class ASCollectionElement;
18 |
19 | NS_ASSUME_NONNULL_BEGIN
20 |
21 | /**
22 | * A dummy item that represents a collection element to participate in the collection layout calculation process
23 | * without triggering measurement on the actual node of the collection element.
24 | *
25 | * This item always has a fixed size that is the item size passed to it.
26 | */
27 | AS_SUBCLASSING_RESTRICTED
28 | @interface _ASGalleryLayoutItem : NSObject
29 |
30 | @property (nonatomic, assign, readonly) CGSize itemSize;
31 | @property (nonatomic, weak, readonly) ASCollectionElement *collectionElement;
32 |
33 | - (instancetype)initWithItemSize:(CGSize)itemSize collectionElement:(ASCollectionElement *)collectionElement;
34 | - (instancetype)init __unavailable;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/Pods/Texture/Source/TextKit/ASLayoutManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // ASLayoutManager.h
3 | // Texture
4 | //
5 | // Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
6 | // This source code is licensed under the BSD-style license found in the
7 | // LICENSE file in the /ASDK-Licenses directory of this source tree. An additional
8 | // grant of patent rights can be found in the PATENTS file in the same directory.
9 | //
10 | // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
11 | // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
12 | // you may not use this file except in compliance with the License.
13 | // You may obtain a copy of the License at
14 | //
15 | // http://www.apache.org/licenses/LICENSE-2.0
16 | //
17 |
18 | #import
19 | #import