From e01b8c36e596f222954d1993a3a4d2b7bd7a7f1c Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 13 Sep 2017 10:15:59 -0500 Subject: [PATCH 01/30] Hide home indicator --- BFRImageViewController/BFRImageViewController.m | 4 ++++ BFRImageViewer.podspec | 2 +- BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index e3850c5..5c89947 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -228,6 +228,10 @@ - (void)registerNotifcations { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissWithoutCustomAnimation) name:@"DimissUIFromDraggingGesture" object:nil]; } +- (BOOL)prefersHomeIndicatorAutoHidden { + return YES; +} + #pragma mark - Memory Considerations - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 1c8a640..ee4b456 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -18,7 +18,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' - s.platform = :ios, '8.0' + s.platform = :ios, '10.0' s.requires_arc = true s.frameworks = "UIKit", "Photos" s.dependency 'DACircularProgress' diff --git a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj index bcb6adf..03df250 100644 --- a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj +++ b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj @@ -413,6 +413,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = UYDA63C4EC; INFOPLIST_FILE = BFRImageViewer/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.buffer.BFRImageViewer; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -426,6 +427,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = UYDA63C4EC; INFOPLIST_FILE = BFRImageViewer/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.buffer.BFRImageViewer; PRODUCT_NAME = "$(TARGET_NAME)"; From f9223145c7c12ce06c1b73c5ce1b5aa2b6fda773 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 13 Sep 2017 10:17:03 -0500 Subject: [PATCH 02/30] Version bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index ee4b456..28a1af0 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.0.32" + s.version = "1.1.0" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.0.32' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.0' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From aadddb86bc88a7fe811f85704fb0d18ebcb9ab5b Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 4 Oct 2017 11:57:16 -0500 Subject: [PATCH 03/30] Account for iPhone X --- BFRImageViewController/BFRImageViewController.m | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index 5c89947..95b4c85 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -157,7 +157,13 @@ - (void)addChromeToUI { - (void)updateChromeFrames { if (self.enableDoneButton) { CGFloat buttonX = self.showDoneButtonOnLeft ? 20 : CGRectGetMaxX(self.view.bounds) - 37; - self.doneButton.frame = CGRectMake(buttonX, 20, 17, 17); + CGFloat closeButtonY = 20; + + if (@available(iOS 11.0, *)) { + closeButtonY = self.view.safeAreaInsets.top > 0 ? self.view.safeAreaInsets.top : 20; + } + + self.doneButton.frame = CGRectMake(buttonX, closeButtonY, 17, 17); } } From b725cd2d03658ebc8c248c65b7793117bb9535bf Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 4 Oct 2017 12:01:41 -0500 Subject: [PATCH 04/30] Spec bump --- BFRImageViewer.podspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 28a1af0..656ea9a 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.1.0" + s.version = "1.1.1" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.0' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.1' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' @@ -22,5 +22,5 @@ Pod::Spec.new do |s| s.requires_arc = true s.frameworks = "UIKit", "Photos" s.dependency 'DACircularProgress' - s.dependency 'PINRemoteImage', '~> 3.0.0-beta.7' + s.dependency 'PINRemoteImage', :git => 'https://github.com/pinterest/PINRemoteImage.git', :tag => '3.0.0-beta.12' end From e5dbb4a82432161957b2d1fe57d2deb67b8403cd Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 4 Oct 2017 12:08:19 -0500 Subject: [PATCH 05/30] Fix pod spec --- BFRImageViewer.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 656ea9a..a8fc48b 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -22,5 +22,5 @@ Pod::Spec.new do |s| s.requires_arc = true s.frameworks = "UIKit", "Photos" s.dependency 'DACircularProgress' - s.dependency 'PINRemoteImage', :git => 'https://github.com/pinterest/PINRemoteImage.git', :tag => '3.0.0-beta.12' + s.dependency 'PINRemoteImage', '~> 3.0.0-beta.12' end From 948f47528fc8c7fad0c24b5dec8b4ade0f5a0f4f Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Thu, 5 Oct 2017 13:59:36 -0500 Subject: [PATCH 06/30] Ability to disable long press to share --- BFRImageViewController/BFRImageContainerViewController.h | 5 ++++- BFRImageViewController/BFRImageContainerViewController.m | 8 +++++--- BFRImageViewController/BFRImageViewController.h | 5 ++++- BFRImageViewController/BFRImageViewController.m | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/BFRImageViewController/BFRImageContainerViewController.h b/BFRImageViewController/BFRImageContainerViewController.h index eef43be..4a4270b 100644 --- a/BFRImageViewController/BFRImageContainerViewController.h +++ b/BFRImageViewController/BFRImageContainerViewController.h @@ -20,9 +20,12 @@ /*! A helper integer to simplify using this view controller inside a @c UIPagerViewController when swiping between views. */ @property (nonatomic, assign) NSUInteger pageIndex; -/*! Assigning YES to this property will make the background transparent. */ +/*! Assigning YES to this property will make the background transparent. You typically don't set this property yourself, instead, the value is derived from the containing @c BFRImageViewController instance. */ @property (nonatomic, getter=isUsingTransparentBackground) BOOL useTransparentBackground; +/*! Assigning YES to this property will disable long pressing media to present the activity view controller. You typically don't set this property yourself, instead, the value is derived from the containing @c BFRImageViewController instance. */ +@property (nonatomic, getter=shouldDisableSharingLongPress) BOOL disableSharingLongPress; + /*! If there is more than one image in the containing @c BFRImageViewController - this property is set to YES to make swiping from image to image easier. */ @property (nonatomic, getter=shouldDisableHorizontalDrag) BOOL disableHorizontalDrag; diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index c943fce..2c56cda 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -180,12 +180,14 @@ - (FLAnimatedImageView *)createImageView { [resizableImageView addGestureRecognizer:doubleImgTap]; // Share options - UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(showActivitySheet:)]; - [resizableImageView addGestureRecognizer:longPress]; + if (self.shouldDisableSharingLongPress == NO) { + UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(showActivitySheet:)]; + [resizableImageView addGestureRecognizer:longPress]; + [singleImgTap requireGestureRecognizerToFail:longPress]; + } // Ensure the single tap doesn't fire when a user attempts to double tap [singleImgTap requireGestureRecognizerToFail:doubleImgTap]; - [singleImgTap requireGestureRecognizerToFail:longPress]; // Dragging to dismiss UIPanGestureRecognizer *panImg = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleDrag:)]; diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index 6551f3d..eaee0f5 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -18,9 +18,12 @@ /*! Initializes an instance of @C BFRImageViewController from the image source provided. The array can contain a mix of @c NSURL, @c UIImage, @c PHAsset, or @c NSStrings of URLS. This can be a mix of all these types, or just one. Additionally, this customizes the user interface to defer showing some of its user interface elements, such as the close button, until it's been fully popped.*/ - (instancetype _Nullable)initForPeekWithImageSource:(NSArray * _Nonnull)images; -/*! Assigning YES to this property will make the background transparent. */ +/*! Assigning YES to this property will make the background transparent. Default is NO. */ @property (nonatomic, getter=isUsingTransparentBackground) BOOL useTransparentBackground; +/*! Assigning YES to this property will disable long pressing media to present the activity view controller. Default is NO. */ +@property (nonatomic, getter=shouldDisableSharingLongPress) BOOL disableSharingLongPress; + /*! Flag property that toggles the doneButton. Defaults to YES */ @property (nonatomic) BOOL enableDoneButton; diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index 95b4c85..be04c05 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -88,6 +88,7 @@ - (void)viewDidLoad { imgVC.pageIndex = self.startingIndex; imgVC.usedFor3DTouch = self.isBeingUsedFor3DTouch; imgVC.useTransparentBackground = self.isUsingTransparentBackground; + imgVC.disableSharingLongPress = self.shouldDisableSharingLongPress; imgVC.disableHorizontalDrag = (self.images.count > 1); [self.imageViewControllers addObject:imgVC]; } From 446f397009ecd4cf0f3e94f2a42f926dd81855ac Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Thu, 5 Oct 2017 14:58:23 -0500 Subject: [PATCH 07/30] Completion handler for backloading, constants file --- .../BFRBackLoadedImageSource.h | 6 ++- .../BFRBackLoadedImageSource.m | 19 +++++---- .../BFRImageContainerViewController.m | 36 ++++++++++-------- .../BFRImageTransitionAnimator.m | 3 +- .../BFRImageViewController.m | 11 +++--- .../BFRImageViewerConstants.h | 28 ++++++++++++++ .../BFRImageViewerConstants.m | 26 +++++++++++++ .../Resources/lowResImage.png | Bin 228726 -> 223014 bytes .../BFRImageViewer.xcodeproj/project.pbxproj | 14 +++++-- .../BFRImageViewer/FourthViewController.m | 33 +++++++++++++++- 10 files changed, 141 insertions(+), 35 deletions(-) create mode 100644 BFRImageViewController/BFRImageViewerConstants.h create mode 100644 BFRImageViewController/BFRImageViewerConstants.m diff --git a/BFRImageViewController/BFRBackLoadedImageSource.h b/BFRImageViewController/BFRBackLoadedImageSource.h index cded45e..204e337 100644 --- a/BFRImageViewController/BFRBackLoadedImageSource.h +++ b/BFRImageViewController/BFRBackLoadedImageSource.h @@ -9,14 +9,16 @@ #import #import +typedef void(^onHiResDownloadComplete)(UIImage * _Nullable, NSError * _Nullable); + /*! This class allows you to show an image that you already have available initially, while loading a higher fidelity version in the background which will replace the lower fidelity one. This class assumes that the new image will have the same aspect ratio as the old one. */ @interface BFRBackLoadedImageSource : NSObject /*! The image that is available for use right away. */ @property (strong, nonatomic, readonly, nonnull) UIImage *image; -/*! This is called on the main thread when the higher resolution image is finished loading. */ -@property (copy) void (^ _Nonnull onHighResImageLoaded)(UIImage * _Nullable highResImage); +/*! This is called on the main thread when the higher resolution image is finished loading. Assign to this if you wish to do any specific logic when the download completes. NOTE: Do not attempt to assign the image to any @c BFRImageContainerViewController, this is done for you. Use this block soley for any other business logic you might have to carry out. */ +@property (copy) onHiResDownloadComplete _Nullable onCompletion; /*! Use initWithInitialImage:hiResURL instead. */ - (instancetype _Nullable)init NS_UNAVAILABLE; diff --git a/BFRImageViewController/BFRBackLoadedImageSource.m b/BFRImageViewController/BFRBackLoadedImageSource.m index 4a8254c..7b1ce39 100644 --- a/BFRImageViewController/BFRBackLoadedImageSource.m +++ b/BFRImageViewController/BFRBackLoadedImageSource.m @@ -7,6 +7,7 @@ // #import "BFRBackLoadedImageSource.h" +#import "BFRImageViewerConstants.h" #import #import #import @@ -41,15 +42,19 @@ - (instancetype)initWithInitialImage:(UIImage *)image hiResURL:(NSURL *)url { - (void)loadHighFidelityImage { [[PINRemoteImageManager sharedImageManager] downloadImageWithURL:self.url options:PINRemoteImageManagerDisallowAlternateRepresentations progressDownload:nil completion:^(PINRemoteImageManagerResult * _Nonnull result) { dispatch_async(dispatch_get_main_queue(), ^{ - if (result.image) { - if (self.onHighResImageLoaded != nil) { - dispatch_async(dispatch_get_main_queue(), ^ { - self.onHighResImageLoaded(result.image); - }); + if (self.onCompletion != nil) { + if (result.image) { + self.onCompletion(result.image, nil); + } else { + NSLog(@"BFRImageViewer: Unable to load high resolution photo via backloading."); + NSError *downloadError = [NSError errorWithDomain:HI_RES_IMG_ERROR_DOMAIN + code:HI_RES_IMG_ERROR_CODE + userInfo:@{NSLocalizedFailureReasonErrorKey:[NSString stringWithFormat:@"Failed to download an image for high resolution url %@", self.url.absoluteString]}]; + self.onCompletion(nil, downloadError); } - } else { - NSLog(@"BFRImageViewer: Unable to load high resolution photo via backloading."); } + + [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_HI_RES_IMG_DOWNLOADED object:result.image]; }); }]; } diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index 2c56cda..a775ac2 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -8,6 +8,7 @@ #import "BFRImageContainerViewController.h" #import "BFRBackLoadedImageSource.h" +#import "BFRImageViewerConstants.h" #import #import #import @@ -53,6 +54,10 @@ - (void)viewDidLoad { self.scrollView = [self createScrollView]; [self.view addSubview:self.scrollView]; + // Animator - used to snap the image back to the center when done dragging + self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.scrollView]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePop) name:NOTE_VC_POPPED object:nil]; + // Fetch image - or just display it if ([self.imgSrc isKindOfClass:[NSURL class]]) { self.progressView = [self createProgressView]; @@ -74,21 +79,12 @@ - (void)viewDidLoad { [self.view addSubview:self.progressView]; [self retrieveImageFromURL]; } else if ([self.imgSrc isKindOfClass:[BFRBackLoadedImageSource class]]) { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleHiResImageDownloaded:) name:NOTE_HI_RES_IMG_DOWNLOADED object:nil]; self.imgLoaded = ((BFRBackLoadedImageSource *)self.imgSrc).image; [self addImageToScrollView]; - - __weak BFRImageContainerViewController *weakSelf = self; - ((BFRBackLoadedImageSource *)self.imgSrc).onHighResImageLoaded = ^ (UIImage *highResImage) { - weakSelf.imgLoaded = highResImage; - weakSelf.imgView.image = weakSelf.imgLoaded; - }; } else { [self showError]; } - - // Animator - used to snap the image back to the center when done dragging - self.animator = [[UIDynamicAnimator alloc] initWithReferenceView:self.scrollView]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePop) name:@"ViewControllerPopped" object:nil]; } - (void)viewWillLayoutSubviews { @@ -207,6 +203,16 @@ - (void)addImageToScrollView { } } +#pragma mark - Backloaded Image Notification +- (void)handleHiResImageDownloaded:(NSNotification *)note { + UIImage *hiResImg = note.object; + + if (hiResImg && [hiResImg isKindOfClass:[UIImage class]]) { + self.imgLoaded = hiResImg; + self.imgView.image = self.imgLoaded; + } +} + #pragma mark - Gesture Recognizer Delegate // If we have more than one image, this will cancel out dragging horizontally to make it easy to navigate between images - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { @@ -413,18 +419,18 @@ - (void)retrieveImageFromURL { #pragma mark - Misc. Methods - (void)dismissUI { - [[NSNotificationCenter defaultCenter] postNotificationName:@"DismissUI" object:nil]; + [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_VC_SHOULD_DISMISS object:nil]; } - (void)dimissUIFromDraggingGesture { // If we drag the image away to close things, don't do the custom dismissal transition - [[NSNotificationCenter defaultCenter] postNotificationName:@"DimissUIFromDraggingGesture" object:nil]; + [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_VC_SHOULD_DISMISS_FROM_DRAGGING object:nil]; } - (void)showError { - UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"Whoops" message:@"Looks like we ran into an issue loading the image, sorry about that!" preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *closeAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ - [[NSNotificationCenter defaultCenter] postNotificationName:@"ImageLoadingError" object:nil]; + UIAlertController *controller = [UIAlertController alertControllerWithTitle:ERROR_TITLE message:ERROR_MESSAGE preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *closeAction = [UIAlertAction actionWithTitle:GENERAL_OK style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){ + [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_IMG_FAILED object:nil]; }]; [controller addAction:closeAction]; [self presentViewController:controller animated:YES completion:nil]; diff --git a/BFRImageViewController/BFRImageTransitionAnimator.m b/BFRImageViewController/BFRImageTransitionAnimator.m index 51315d0..c50a63f 100644 --- a/BFRImageViewController/BFRImageTransitionAnimator.m +++ b/BFRImageViewController/BFRImageTransitionAnimator.m @@ -7,6 +7,7 @@ // #import "BFRImageTransitionAnimator.h" +#import "BFRImageViewerConstants.h" @interface BFRImageTransitionAnimator() @@ -32,7 +33,7 @@ - (instancetype)init { self.desiredContentMode = UIViewContentModeScaleAspectFill; self.animationDuration = DEFAULT_ANIMATION_DURATION; self.dismissWithoutCustomTransition = NO; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleCancelCustomTransitionNotification:) name:@"CancelCustomDismissalTransition" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleCancelCustomTransitionNotification:) name:NOTE_VC_SHOULD_CANCEL_CUSTOM_TRANSITION object:nil]; } return self; diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index be04c05..c28d9c9 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -10,6 +10,7 @@ #import "BFRImageContainerViewController.h" #import "BFRImageViewerLocalizations.h" #import "BFRImageTransitionAnimator.h" +#import "BFRImageViewerConstants.h" @interface BFRImageViewController () @@ -212,7 +213,7 @@ - (void)dismiss { } - (void)dismissWithoutCustomAnimation { - [[NSNotificationCenter defaultCenter] postNotificationName:@"CancelCustomDismissalTransition" object:@(1)]; + [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_VC_SHOULD_CANCEL_CUSTOM_TRANSITION object:@(1)]; self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self dismissViewControllerAnimated:YES completion:nil]; @@ -229,10 +230,10 @@ - (void)handleDoneAction { /*! The images and scrollview are not part of this view controller, so instances of @c BFRimageContainerViewController will post notifications when they are touched for things to happen. */ - (void)registerNotifcations { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name:@"DismissUI" object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name:@"ImageLoadingError" object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePop) name:@"ViewControllerPopped" object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissWithoutCustomAnimation) name:@"DimissUIFromDraggingGesture" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name:NOTE_VC_SHOULD_DISMISS object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismiss) name:NOTE_IMG_FAILED object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePop) name:NOTE_VC_POPPED object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissWithoutCustomAnimation) name:NOTE_VC_SHOULD_DISMISS_FROM_DRAGGING object:nil]; } - (BOOL)prefersHomeIndicatorAutoHidden { diff --git a/BFRImageViewController/BFRImageViewerConstants.h b/BFRImageViewController/BFRImageViewerConstants.h new file mode 100644 index 0000000..23bf764 --- /dev/null +++ b/BFRImageViewController/BFRImageViewerConstants.h @@ -0,0 +1,28 @@ +// +// BFRImageViewerConstants.h +// BFRImageViewer +// +// Created by Jordan Morgan on 10/5/17. +// Copyright © 2017 Andrew Yates. All rights reserved. +// + +#import + +@interface BFRImageViewerConstants : NSObject + +// Notifications +extern NSString * const NOTE_VC_POPPED; +extern NSString * const NOTE_HI_RES_IMG_DOWNLOADED; +extern NSString * const NOTE_VC_SHOULD_DISMISS; +extern NSString * const NOTE_VC_SHOULD_DISMISS_FROM_DRAGGING; +extern NSString * const NOTE_VC_SHOULD_CANCEL_CUSTOM_TRANSITION; +extern NSString * const NOTE_IMG_FAILED; + +// NSError +extern NSString * const ERROR_TITLE; +extern NSString * const ERROR_MESSAGE; +extern NSString * const GENERAL_OK; +extern NSString * const HI_RES_IMG_ERROR_DOMAIN; +extern NSInteger const HI_RES_IMG_ERROR_CODE; + +@end diff --git a/BFRImageViewController/BFRImageViewerConstants.m b/BFRImageViewController/BFRImageViewerConstants.m new file mode 100644 index 0000000..be86b4e --- /dev/null +++ b/BFRImageViewController/BFRImageViewerConstants.m @@ -0,0 +1,26 @@ +// +// BFRImageViewerConstants.m +// BFRImageViewer +// +// Created by Jordan Morgan on 10/5/17. +// Copyright © 2017 Andrew Yates. All rights reserved. +// + +#import "BFRImageViewerConstants.h" + +@implementation BFRImageViewerConstants + +NSString * const NOTE_VC_POPPED = @"ViewControllerPopped"; +NSString * const NOTE_HI_RES_IMG_DOWNLOADED = @"HiResDownloadDone"; +NSString * const NOTE_VC_SHOULD_DISMISS = @"DismissUI"; +NSString * const NOTE_VC_SHOULD_DISMISS_FROM_DRAGGING = @"DimissUIFromDraggingGesture"; +NSString * const NOTE_VC_SHOULD_CANCEL_CUSTOM_TRANSITION = @"CancelCustomDismissalTransition"; +NSString * const NOTE_IMG_FAILED = @"ImageLoadingError"; + +NSString * const ERROR_TITLE = @"Whoops"; +NSString * const ERROR_MESSAGE = @"Looks like we ran into an issue loading the image, sorry about that!"; +NSString * const GENERAL_OK = @"Ok"; +NSString * const HI_RES_IMG_ERROR_DOMAIN = @"com.bfrImageViewer.backLoadedImgSource"; +NSInteger const HI_RES_IMG_ERROR_CODE = 44; + +@end diff --git a/BFRImageViewController/Resources/lowResImage.png b/BFRImageViewController/Resources/lowResImage.png index 18ffa92f83b24f7ea4913e82a2a392cbacff80c3..ace48633893b164505f296b8149b261b02f77177 100644 GIT binary patch literal 223014 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ⅇ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�boDa}N)}b+hx1`3N^pclM?Y3fc}`&LIAHfV|(} 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

VbcFIg!#hq`SoG1M^T_b4>&sLGWqGS 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

?Sy>;eee?aQ;JW=YJU)N$_zXt%Gt+d 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 literal 228726 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

1tV(a5e0QS^ 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

@SjD)M9Q%K22fPx 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 WEF!2AH2A1amy!NWy=sVa?7slPF^wJo diff --git a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj index 03df250..65d20d3 100644 --- a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj +++ b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj @@ -7,9 +7,10 @@ objects = { /* Begin PBXBuildFile section */ + 1702C69A1F86BBFC00104D0B /* BFRImageViewerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */; }; + 1702C69C1F86C3A400104D0B /* lowResImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 1702C69B1F86C32100104D0B /* lowResImage.png */; }; 171F4AD01E96BE0500F4AF01 /* BFRBackLoadedImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */; }; 171F4AD31E96C31400F4AF01 /* FourthViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 171F4AD21E96C31400F4AF01 /* FourthViewController.m */; }; - 171F4AD71E96D56D00F4AF01 /* lowResImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 171F4AD61E96D56D00F4AF01 /* lowResImage.png */; }; 1797CB8E1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1797CB8D1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m */; }; 1797CB911E81BBB200D9F729 /* ThirdViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1797CB901E81BBB200D9F729 /* ThirdViewController.m */; }; 17C1AAB61D9D6EBF00FF1B67 /* BFRImageViewerLocalizations.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 17C1AAB51D9D6EBF00FF1B67 /* BFRImageViewerLocalizations.bundle */; }; @@ -28,11 +29,13 @@ /* Begin PBXFileReference section */ 1264A436520DEA8753316972 /* Pods-BFRImageViewer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BFRImageViewer.release.xcconfig"; path = "Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.release.xcconfig"; sourceTree = ""; }; + 1702C6981F86BBFC00104D0B /* BFRImageViewerConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BFRImageViewerConstants.h; sourceTree = ""; }; + 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BFRImageViewerConstants.m; sourceTree = ""; }; + 1702C69B1F86C32100104D0B /* lowResImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lowResImage.png; sourceTree = ""; }; 171F4ACE1E96BE0500F4AF01 /* BFRBackLoadedImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BFRBackLoadedImageSource.h; sourceTree = ""; }; 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BFRBackLoadedImageSource.m; sourceTree = ""; }; 171F4AD11E96C31400F4AF01 /* FourthViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FourthViewController.h; sourceTree = ""; }; 171F4AD21E96C31400F4AF01 /* FourthViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FourthViewController.m; sourceTree = ""; }; - 171F4AD61E96D56D00F4AF01 /* lowResImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lowResImage.png; sourceTree = ""; }; 1797CB8C1E81BB4F00D9F729 /* BFRImageTransitionAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BFRImageTransitionAnimator.h; sourceTree = ""; }; 1797CB8D1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BFRImageTransitionAnimator.m; sourceTree = ""; }; 1797CB8F1E81BBB200D9F729 /* ThirdViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThirdViewController.h; sourceTree = ""; }; @@ -83,7 +86,7 @@ 578DFD551CB6E7F400BFBD00 /* Resources */ = { isa = PBXGroup; children = ( - 171F4AD61E96D56D00F4AF01 /* lowResImage.png */, + 1702C69B1F86C32100104D0B /* lowResImage.png */, 578DFD581CB6F17B00BFBD00 /* cross.png */, 578DFD591CB6F17B00BFBD00 /* cross@2x.png */, 578DFD5A1CB6F17B00BFBD00 /* cross@3x.png */, @@ -152,6 +155,8 @@ 1797CB8D1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m */, 171F4ACE1E96BE0500F4AF01 /* BFRBackLoadedImageSource.h */, 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */, + 1702C6981F86BBFC00104D0B /* BFRImageViewerConstants.h */, + 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */, ); name = BFRImageViewController; path = ../../BFRImageViewController; @@ -227,12 +232,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 1702C69C1F86C3A400104D0B /* lowResImage.png in Resources */, 578DFD5C1CB6F17B00BFBD00 /* cross@2x.png in Resources */, 944B4DC11BFFC0C000B9BF87 /* LaunchScreen.storyboard in Resources */, 578DFD5D1CB6F17B00BFBD00 /* cross@3x.png in Resources */, 578DFD5B1CB6F17B00BFBD00 /* cross.png in Resources */, 17C1AAB61D9D6EBF00FF1B67 /* BFRImageViewerLocalizations.bundle in Resources */, - 171F4AD71E96D56D00F4AF01 /* lowResImage.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -298,6 +303,7 @@ 944B4DB31BFFC0C000B9BF87 /* AppDelegate.m in Sources */, 171F4AD01E96BE0500F4AF01 /* BFRBackLoadedImageSource.m in Sources */, 171F4AD31E96C31400F4AF01 /* FourthViewController.m in Sources */, + 1702C69A1F86BBFC00104D0B /* BFRImageViewerConstants.m in Sources */, 944B4DE91BFFC0E300B9BF87 /* BFRImageContainerViewController.m in Sources */, 944B4DB61BFFC0C000B9BF87 /* FirstViewController.m in Sources */, 944B4DB01BFFC0C000B9BF87 /* main.m in Sources */, diff --git a/BFRImageViewerDemo/BFRImageViewer/FourthViewController.m b/BFRImageViewerDemo/BFRImageViewer/FourthViewController.m index 623d086..528b789 100644 --- a/BFRImageViewerDemo/BFRImageViewer/FourthViewController.m +++ b/BFRImageViewerDemo/BFRImageViewer/FourthViewController.m @@ -33,7 +33,16 @@ - (void)viewDidLoad { [btn setTitle:@"Backload URL Image" forState:UIControlStateNormal]; [self.view addSubview:btn]; [btn.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES; - [btn.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES; + [btn.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor constant:-20].active = YES; + + + UIButton *btnClosure = [UIButton buttonWithType:UIButtonTypeRoundedRect]; + [btnClosure addTarget:self action:@selector(openImageViewerWithCompletionHandler) forControlEvents:UIControlEventTouchUpInside]; + btnClosure.translatesAutoresizingMaskIntoConstraints = NO; + [btnClosure setTitle:@"Backload URL Image + Completion Handler" forState:UIControlStateNormal]; + [self.view addSubview:btnClosure]; + [btnClosure.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES; + [btnClosure.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor constant:20].active = YES; } - (void)openImageViewer { @@ -43,4 +52,26 @@ - (void)openImageViewer { [self presentViewController:imageVC animated:YES completion:nil]; } +- (void)openImageViewerWithCompletionHandler { + BFRBackLoadedImageSource *backloadedImage = [[BFRBackLoadedImageSource alloc] initWithInitialImage:[UIImage imageNamed:@"lowResImage"] hiResURL:[NSURL URLWithString:@"https://overflow.buffer.com/wp-content/uploads/2016/12/1-hByZ0VpJusdVwpZd-Z4-Zw.png"]]; + + backloadedImage.onCompletion = ^(UIImage * _Nullable img, NSError * _Nullable error) { + UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Download Done" message:[NSString stringWithFormat:@"Finished downloading hi res image.\nImage:%@\nError:%@", img, error] preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction *close = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; + [alertVC addAction:close]; + + + UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController; + while (topController.presentedViewController) { + topController = topController.presentedViewController; + } + + [topController presentViewController:alertVC animated:YES completion:nil]; + }; + + BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[backloadedImage]]; + [self presentViewController:imageVC animated:YES completion:nil]; +} + @end From ad1d1911a870ebe9cc8224787a5e4d213be47a23 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Thu, 5 Oct 2017 15:14:52 -0500 Subject: [PATCH 08/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index a8fc48b..078f370 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.1.1" + s.version = "1.1.2" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.1' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.2' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From 8aa3dea1b6aac32e149248558ed7acd79926396b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96mer=20Aslan?= Date: Sat, 21 Oct 2017 00:18:47 +0300 Subject: [PATCH 09/30] Implemented Live Photo feature --- .../BFRImageContainerViewController.h | 3 + .../BFRImageContainerViewController.m | 45 +++++- .../BFRImageViewController.h | 3 + .../BFRImageViewController.m | 3 + .../BFRImageViewer.xcodeproj/project.pbxproj | 6 + .../BFRImageViewer/AppDelegate.m | 7 +- .../BFRImageViewer/FifthViewController.h | 13 ++ .../BFRImageViewer/FifthViewController.m | 135 ++++++++++++++++++ BFRImageViewerDemo/BFRImageViewer/Info.plist | 2 + 9 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 BFRImageViewerDemo/BFRImageViewer/FifthViewController.h create mode 100644 BFRImageViewerDemo/BFRImageViewer/FifthViewController.m diff --git a/BFRImageViewController/BFRImageContainerViewController.h b/BFRImageViewController/BFRImageContainerViewController.h index 4a4270b..b0ae111 100644 --- a/BFRImageViewController/BFRImageContainerViewController.h +++ b/BFRImageViewController/BFRImageContainerViewController.h @@ -29,4 +29,7 @@ /*! If there is more than one image in the containing @c BFRImageViewController - this property is set to YES to make swiping from image to image easier. */ @property (nonatomic, getter=shouldDisableHorizontalDrag) BOOL disableHorizontalDrag; +/*! Assigning YES to this property will disable autoplay for live photos when it used with 3DTouch peek feature */ +@property (nonatomic, getter=shouldDisableAutoplayForLivePhoto) BOOL disableAutoplayForLivePhoto; + @end diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index a775ac2..5159779 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -10,6 +10,7 @@ #import "BFRBackLoadedImageSource.h" #import "BFRImageViewerConstants.h" #import +#import #import #import #import @@ -67,7 +68,17 @@ - (void)viewDidLoad { self.imgLoaded = (UIImage *)self.imgSrc; [self addImageToScrollView]; } else if ([self.imgSrc isKindOfClass:[PHAsset class]]) { - [self retrieveImageFromAsset]; + PHAsset *assetSource = (PHAsset *)self.imgSrc; + + if (@available(iOS 9.1, *)) { + if (assetSource.mediaSubtypes & PHAssetMediaSubtypePhotoLive) { + [self retrieveLivePhotoFromAsset]; + } else { + [self retrieveImageFromAsset]; + } + } else { + [self retrieveImageFromAsset]; + } } else if ([self.imgSrc isKindOfClass:[FLAnimatedImage class]]) { self.imgLoaded = ((FLAnimatedImage *)self.imgSrc).posterImage; [self retrieveImageFromFLAnimatedImage]; @@ -417,6 +428,38 @@ - (void)retrieveImageFromURL { }]; } +- (void)retrieveLivePhotoFromAsset { + if (![self.imgSrc isKindOfClass:[PHAsset class]]) { + return; + } + + PHAsset *assetSource = (PHAsset *)self.imgSrc; + + if (!(assetSource.mediaSubtypes & PHAssetMediaSubtypePhotoLive)) { + return; + } + + PHLivePhotoView *livePhotoView = [[PHLivePhotoView alloc] + initWithFrame:self.view.frame]; + + if (self.shouldDisableAutoplayForLivePhoto == NO) { + [livePhotoView startPlaybackWithStyle:PHLivePhotoViewPlaybackStyleFull]; + } + + [self.scrollView addSubview:livePhotoView]; + + PHLivePhotoRequestOptions *liveOptions = [[PHLivePhotoRequestOptions alloc] init]; + liveOptions.deliveryMode = PHImageRequestOptionsDeliveryModeHighQualityFormat; + + [[PHImageManager defaultManager] + requestLivePhotoForAsset:assetSource + targetSize:self.view.frame.size + contentMode:PHImageContentModeAspectFit + options:liveOptions + resultHandler:^(PHLivePhoto * _Nullable livePhoto, NSDictionary * _Nullable info) { + livePhotoView.livePhoto = livePhoto; + }]; +} #pragma mark - Misc. Methods - (void)dismissUI { [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_VC_SHOULD_DISMISS object:nil]; diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index eaee0f5..6a1258d 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -33,4 +33,7 @@ /*! Allows you to assign an index which to show first when opening multiple images. */ @property (nonatomic, assign) NSInteger startingIndex; +/*! Allows you to enable autoplay for peek&play feature on photo live view. Default to YES */ +@property (nonatomic, getter=shouldDisableAutoplayForLivePhoto) BOOL disableAutoplayForLivePhoto; + @end diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index c28d9c9..03dd26d 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -49,6 +49,7 @@ - (instancetype)initWithImageSource:(NSArray *)images { self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; self.enableDoneButton = YES; self.showDoneButtonOnLeft = YES; + self.disableAutoplayForLivePhoto = YES; } return self; @@ -64,6 +65,7 @@ - (instancetype)initForPeekWithImageSource:(NSArray *)images { self.enableDoneButton = YES; self.showDoneButtonOnLeft = YES; self.usedFor3DTouch = YES; + self.disableAutoplayForLivePhoto = YES; } return self; @@ -91,6 +93,7 @@ - (void)viewDidLoad { imgVC.useTransparentBackground = self.isUsingTransparentBackground; imgVC.disableSharingLongPress = self.shouldDisableSharingLongPress; imgVC.disableHorizontalDrag = (self.images.count > 1); + imgVC.disableAutoplayForLivePhoto = self.shouldDisableAutoplayForLivePhoto; [self.imageViewControllers addObject:imgVC]; } diff --git a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj index 65d20d3..66f3c0c 100644 --- a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj +++ b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj @@ -25,6 +25,7 @@ 944B4DC11BFFC0C000B9BF87 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 944B4DBF1BFFC0C000B9BF87 /* LaunchScreen.storyboard */; }; 944B4DE91BFFC0E300B9BF87 /* BFRImageContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 944B4DE61BFFC0E300B9BF87 /* BFRImageContainerViewController.m */; }; 944B4DEA1BFFC0E300B9BF87 /* BFRImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 944B4DE81BFFC0E300B9BF87 /* BFRImageViewController.m */; }; + 95D4797D1F97C348001E54D4 /* FifthViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 95D4797C1F97C348001E54D4 /* FifthViewController.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -61,6 +62,8 @@ 944B4DE61BFFC0E300B9BF87 /* BFRImageContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BFRImageContainerViewController.m; sourceTree = ""; }; 944B4DE71BFFC0E300B9BF87 /* BFRImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BFRImageViewController.h; sourceTree = ""; }; 944B4DE81BFFC0E300B9BF87 /* BFRImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BFRImageViewController.m; sourceTree = ""; }; + 95D4797B1F97C348001E54D4 /* FifthViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FifthViewController.h; sourceTree = ""; }; + 95D4797C1F97C348001E54D4 /* FifthViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FifthViewController.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -130,6 +133,8 @@ 944B4DAE1BFFC0C000B9BF87 /* Supporting Files */, 171F4AD11E96C31400F4AF01 /* FourthViewController.h */, 171F4AD21E96C31400F4AF01 /* FourthViewController.m */, + 95D4797B1F97C348001E54D4 /* FifthViewController.h */, + 95D4797C1F97C348001E54D4 /* FifthViewController.m */, ); path = BFRImageViewer; sourceTree = ""; @@ -299,6 +304,7 @@ 944B4DB91BFFC0C000B9BF87 /* SecondViewController.m in Sources */, 1797CB8E1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m in Sources */, 1797CB911E81BBB200D9F729 /* ThirdViewController.m in Sources */, + 95D4797D1F97C348001E54D4 /* FifthViewController.m in Sources */, 944B4DEA1BFFC0E300B9BF87 /* BFRImageViewController.m in Sources */, 944B4DB31BFFC0C000B9BF87 /* AppDelegate.m in Sources */, 171F4AD01E96BE0500F4AF01 /* BFRBackLoadedImageSource.m in Sources */, diff --git a/BFRImageViewerDemo/BFRImageViewer/AppDelegate.m b/BFRImageViewerDemo/BFRImageViewer/AppDelegate.m index ee3d10b..82b1ecd 100644 --- a/BFRImageViewerDemo/BFRImageViewer/AppDelegate.m +++ b/BFRImageViewerDemo/BFRImageViewer/AppDelegate.m @@ -11,6 +11,7 @@ #import "SecondViewController.h" #import "ThirdViewController.h" #import "FourthViewController.h" +#import "FifthViewController.h" @interface AppDelegate () @@ -24,7 +25,11 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( UITabBarController *tabVC = [UITabBarController new]; tabVC.view.backgroundColor = [UIColor whiteColor]; - tabVC.viewControllers = @[[FirstViewController new], [SecondViewController new], [ThirdViewController new], [FourthViewController new]]; + tabVC.viewControllers = @[[FirstViewController new], + [SecondViewController new], + [ThirdViewController new], + [FourthViewController new], + [FifthViewController new]]; self.window.rootViewController = tabVC; [self.window makeKeyAndVisible]; diff --git a/BFRImageViewerDemo/BFRImageViewer/FifthViewController.h b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.h new file mode 100644 index 0000000..77de02c --- /dev/null +++ b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.h @@ -0,0 +1,13 @@ +// +// FifthViewController.h +// BFRImageViewer +// +// Created by Omer Emre Aslan on 18.10.2017. +// Copyright © 2017 Andrew Yates. All rights reserved. +// + +#import + +@interface FifthViewController : UIViewController + +@end diff --git a/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m new file mode 100644 index 0000000..d0f712a --- /dev/null +++ b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m @@ -0,0 +1,135 @@ +// +// FifthViewController.m +// BFRImageViewer +// +// Created by Omer Emre Aslan on 18.10.2017. +// Copyright © 2017 Andrew Yates. All rights reserved. +// + +#import +#import "FifthViewController.h" +#import "BFRImageViewController.h" + +@interface FifthViewController () + +@end + +@implementation FifthViewController + +- (instancetype) init { + if (self = [super init]) { + self.title = @"Live Photo"; + } + + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + [self check3DTouch]; + + [self addImageButtonToView]; +} + +#pragma mark - 3D Touch +- (void)check3DTouch { + if ([self.traitCollection respondsToSelector:@selector(forceTouchCapability)] && self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) { + [self registerForPreviewingWithDelegate:self sourceView:self.view]; + } +} + +- (UIViewController *)previewingContext:(id)previewingContext viewControllerForLocation:(CGPoint)location { + PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; + + if (status == PHAuthorizationStatusAuthorized) { + return [self imageViewControllerForLivePhotoDisableAutoplay:NO]; + } else { + [self showAuthorizationAlertViewControllerAnimated:YES]; + return nil; + } +} + +- (void)previewingContext:(id)previewingContext commitViewController:(UIViewController *)viewControllerToCommit { + [self presentViewController:viewControllerToCommit animated:YES completion:nil]; +} + +- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { + if ([self.traitCollection respondsToSelector:@selector(forceTouchCapability)] && self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) { + [self check3DTouch]; + } +} + +#pragma mark - Misc +- (void)addImageButtonToView { + UIButton *openImageFromURL = [UIButton buttonWithType:UIButtonTypeRoundedRect]; + openImageFromURL.translatesAutoresizingMaskIntoConstraints = NO; + [openImageFromURL setTitle:@"Open Image" forState:UIControlStateNormal]; + [openImageFromURL addTarget:self + action:@selector(openImage:) + forControlEvents:UIControlEventTouchUpInside]; + [self.view addSubview:openImageFromURL]; + [openImageFromURL.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = YES; + [openImageFromURL.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = YES; +} + +#pragma mark - Actions + +- (void)openImage:(UIButton *)sender { + PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; + + if (status == PHAuthorizationStatusAuthorized) { + BFRImageViewController *imageViewController = [self + imageViewControllerForLivePhotoDisableAutoplay:YES]; + [self presentViewController:imageViewController + animated:YES + completion:nil]; + } else { + [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { + if (status == PHAuthorizationStatusAuthorized) { + BFRImageViewController *imageViewController = [self imageViewControllerForLivePhotoDisableAutoplay:YES]; + [self presentViewController:imageViewController + animated:YES + completion:nil]; + } else { + [self showAuthorizationAlertViewControllerAnimated:YES]; + } + }]; + } + +} + +- (void)showAuthorizationAlertViewControllerAnimated:(BOOL)isAnimated { + UIAlertController *controller = [UIAlertController + alertControllerWithTitle:NSLocalizedString(@"Authorization Failed!", nil) + message:NSLocalizedString(@"In order to access live photo feature, please allow authorization on Settings.", nil) + preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *closeAction = [UIAlertAction + actionWithTitle:NSLocalizedString(@"Close", nil) + style:UIAlertActionStyleDefault + handler:nil]; + [controller addAction:closeAction]; + + [self presentViewController:controller + animated:isAnimated + completion:nil]; +} + +- (BFRImageViewController *)imageViewControllerForLivePhotoDisableAutoplay:(BOOL)shouldDisableAutoPlay { + PHFetchOptions *options = [[PHFetchOptions alloc] init]; + options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]]; + options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage]; + options.predicate = [NSPredicate predicateWithFormat:@"mediaSubtype == %d", PHAssetMediaSubtypePhotoLive]; + options.includeAllBurstAssets = NO; + PHFetchResult *allLivePhotos = [PHAsset fetchAssetsWithOptions:options]; + + PHAsset *firstImage = (PHAsset *)[allLivePhotos firstObject]; + + BFRImageViewController *viewController = [[BFRImageViewController alloc] + initWithImageSource:@[firstImage]]; + viewController.disableAutoplayForLivePhoto = shouldDisableAutoPlay; + return viewController; +} + + +@end diff --git a/BFRImageViewerDemo/BFRImageViewer/Info.plist b/BFRImageViewerDemo/BFRImageViewer/Info.plist index 7bfe257..a0e47a9 100644 --- a/BFRImageViewerDemo/BFRImageViewer/Info.plist +++ b/BFRImageViewerDemo/BFRImageViewer/Info.plist @@ -2,6 +2,8 @@ + NSPhotoLibraryUsageDescription + The app will open an image from your library. CFBundleDevelopmentRegion en CFBundleExecutable From 9052794fdfd817859be02b00f2b0c5144abd660f Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Fri, 12 Jan 2018 14:29:09 -0600 Subject: [PATCH 10/30] Hook into scrollview for percent complete --- .../BFRImageViewController.m | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index c28d9c9..1c74001 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -12,7 +12,7 @@ #import "BFRImageTransitionAnimator.h" #import "BFRImageViewerConstants.h" -@interface BFRImageViewController () +@interface BFRImageViewController () /*! This view controller just acts as a container to hold a page view controller, which pages between the view controllers that hold an image. */ @property (strong, nonatomic, nonnull) UIPageViewController *pagerVC; @@ -106,6 +106,14 @@ - (void)viewDidLoad { [[self view] addSubview:[self.pagerVC view]]; [self.pagerVC didMoveToParentViewController:self]; + // Attach to pager controller's scrollview for parallax effect when swiping between images + for (UIView *subview in self.pagerVC.view.subviews) { + if ([subview isKindOfClass:[UIScrollView class]]) { + ((UIScrollView *)subview).delegate = self; + break; + } + } + // Add chrome to UI now if we aren't waiting to be peeked into if (!self.isBeingUsedFor3DTouch) { [self addChromeToUI]; @@ -200,6 +208,14 @@ - (UIViewController *)pageViewController:(UIPageViewController *)pageViewControl return vc; } +#pragma mark - Scrollview Delegate + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGPoint point = scrollView.contentOffset; + CGFloat percentComplete = fabs(point.x - self.view.frame.size.width)/self.view.frame.size.width; + NSLog(@"Percent scrolled %f", percentComplete); +} + #pragma mark - Utility methods - (void)dismiss { // If we dismiss from a different image than what was animated in - don't do the custom dismiss transition animation From fb01df26d48f27c2a57e959c845b867fb3b6c003 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Tue, 16 Jan 2018 09:41:35 -0600 Subject: [PATCH 11/30] Parallax view, correct coding style for pragma marks --- BFRImageViewController/BFRBackLoadedImageSource.m | 2 ++ .../BFRImageContainerViewController.m | 9 ++++++++- BFRImageViewController/BFRImageTransitionAnimator.m | 4 ++++ BFRImageViewController/BFRImageViewController.m | 12 ++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRBackLoadedImageSource.m b/BFRImageViewController/BFRBackLoadedImageSource.m index 7b1ce39..164f778 100644 --- a/BFRImageViewController/BFRBackLoadedImageSource.m +++ b/BFRImageViewController/BFRBackLoadedImageSource.m @@ -25,6 +25,7 @@ @interface BFRBackLoadedImageSource() @implementation BFRBackLoadedImageSource #pragma mark - Initializers + - (instancetype)initWithInitialImage:(UIImage *)image hiResURL:(NSURL *)url { self = [super init]; @@ -39,6 +40,7 @@ - (instancetype)initWithInitialImage:(UIImage *)image hiResURL:(NSURL *)url { } #pragma mark - Backloading + - (void)loadHighFidelityImage { [[PINRemoteImageManager sharedImageManager] downloadImageWithURL:self.url options:PINRemoteImageManagerDisallowAlternateRepresentations progressDownload:nil completion:^(PINRemoteImageManagerResult * _Nonnull result) { dispatch_async(dispatch_get_main_queue(), ^{ diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index a775ac2..afd017b 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -42,6 +42,7 @@ @interface BFRImageContainerViewController () )transitionContext { return self.animationDuration; } @@ -170,6 +173,7 @@ - (void)performDismissingAnimation:(id)tra } #pragma mark - Transitioning Delegate + - (id )animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source { return self; } diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index 1c74001..8a1bc1c 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -35,11 +35,15 @@ @interface BFRImageViewController () Date: Tue, 16 Jan 2018 10:02:58 -0600 Subject: [PATCH 12/30] First go parallax effect --- .../BFRImageViewController.m | 40 +++++++++++++++++-- .../BFRImageViewerConstants.h | 3 ++ .../BFRImageViewerConstants.m | 2 + 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index 8a1bc1c..d5f99d1 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -117,6 +117,13 @@ - (void)viewDidLoad { for (UIView *subview in self.pagerVC.view.subviews) { if ([subview isKindOfClass:[UIScrollView class]]) { ((UIScrollView *)subview).delegate = self; + self.parallaxView.backgroundColor = self.view.backgroundColor; + [subview addSubview:self.parallaxView]; + + CGRect parallaxSeparatorFrame = CGRectZero; + parallaxSeparatorFrame.size = [self sizeForParallaxView]; + self.parallaxView.frame = parallaxSeparatorFrame; + break; } } @@ -173,6 +180,7 @@ - (void)addChromeToUI { } } +//TODO: Update parallax effect view - (void)updateChromeFrames { if (self.enableDoneButton) { CGFloat buttonX = self.showDoneButtonOnLeft ? 20 : CGRectGetMaxX(self.view.bounds) - 37; @@ -218,12 +226,36 @@ - (UIViewController *)pageViewController:(UIPageViewController *)pageViewControl return vc; } -#pragma mark - Scrollview Delegate +#pragma mark - Scrollview Delegate + Parallax Effect - (void)scrollViewDidScroll:(UIScrollView *)scrollView { - CGPoint point = scrollView.contentOffset; - CGFloat percentComplete = fabs(point.x - self.view.frame.size.width)/self.view.frame.size.width; - NSLog(@"Percent scrolled %f", percentComplete); + [self updateParallaxViewFrame:scrollView]; +} + +- (void)updateParallaxViewFrame:(UIScrollView *)scrollView { + CGRect bounds = scrollView.bounds; + CGRect parallaxSeparatorFrame = self.parallaxView.frame; + + CGPoint offset = bounds.origin; + CGFloat pageWidth = bounds.size.width; + + NSInteger firstPageIndex = floorf(CGRectGetMinX(bounds) / pageWidth); + + CGFloat x = offset.x - pageWidth * firstPageIndex; + CGFloat percentage = x / pageWidth; + + parallaxSeparatorFrame.origin.x = pageWidth * (firstPageIndex + 1) - parallaxSeparatorFrame.size.width * percentage; + + self.parallaxView.frame = parallaxSeparatorFrame; +} + +- (CGSize)sizeForParallaxView { + CGSize parallaxSeparatorSize = CGSizeZero; + + parallaxSeparatorSize.width = PARALLAX_EFFECT_WIDTH * 2; + parallaxSeparatorSize.height = self.view.bounds.size.height; + + return parallaxSeparatorSize; } #pragma mark - Utility methods diff --git a/BFRImageViewController/BFRImageViewerConstants.h b/BFRImageViewController/BFRImageViewerConstants.h index 23bf764..aa92d20 100644 --- a/BFRImageViewController/BFRImageViewerConstants.h +++ b/BFRImageViewController/BFRImageViewerConstants.h @@ -25,4 +25,7 @@ extern NSString * const GENERAL_OK; extern NSString * const HI_RES_IMG_ERROR_DOMAIN; extern NSInteger const HI_RES_IMG_ERROR_CODE; +// Misc +extern NSInteger const PARALLAX_EFFECT_WIDTH; + @end diff --git a/BFRImageViewController/BFRImageViewerConstants.m b/BFRImageViewController/BFRImageViewerConstants.m index be86b4e..5191512 100644 --- a/BFRImageViewController/BFRImageViewerConstants.m +++ b/BFRImageViewController/BFRImageViewerConstants.m @@ -23,4 +23,6 @@ @implementation BFRImageViewerConstants NSString * const HI_RES_IMG_ERROR_DOMAIN = @"com.bfrImageViewer.backLoadedImgSource"; NSInteger const HI_RES_IMG_ERROR_CODE = 44; +NSInteger const PARALLAX_EFFECT_WIDTH = 20; + @end From 7a7b990187f7980f11c719f43cc437fb4c47995b Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Tue, 16 Jan 2018 10:30:21 -0600 Subject: [PATCH 13/30] Fix hidden state of parallax view --- BFRImageViewController/BFRImageViewController.m | 10 ++++++++-- .../BFRImageViewer/ThirdViewController.m | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index d5f99d1..756c09b 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -118,6 +118,7 @@ - (void)viewDidLoad { if ([subview isKindOfClass:[UIScrollView class]]) { ((UIScrollView *)subview).delegate = self; self.parallaxView.backgroundColor = self.view.backgroundColor; + self.parallaxView.hidden = YES; [subview addSubview:self.parallaxView]; CGRect parallaxSeparatorFrame = CGRectZero; @@ -145,7 +146,7 @@ - (void)viewWillAppear:(BOOL)animated { }]; } -- (void)viewWillLayoutSubviews { +- (void)viewDidLayoutSubviews { [super viewWillLayoutSubviews]; [self updateChromeFrames]; } @@ -180,7 +181,6 @@ - (void)addChromeToUI { } } -//TODO: Update parallax effect view - (void)updateChromeFrames { if (self.enableDoneButton) { CGFloat buttonX = self.showDoneButtonOnLeft ? 20 : CGRectGetMaxX(self.view.bounds) - 37; @@ -192,6 +192,8 @@ - (void)updateChromeFrames { self.doneButton.frame = CGRectMake(buttonX, closeButtonY, 17, 17); } + + self.parallaxView.hidden = YES; } #pragma mark - Pager Datasource @@ -228,6 +230,10 @@ - (UIViewController *)pageViewController:(UIPageViewController *)pageViewControl #pragma mark - Scrollview Delegate + Parallax Effect +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + self.parallaxView.hidden = NO; +} + - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [self updateParallaxViewFrame:scrollView]; } diff --git a/BFRImageViewerDemo/BFRImageViewer/ThirdViewController.m b/BFRImageViewerDemo/BFRImageViewer/ThirdViewController.m index 73be809..05f81d6 100644 --- a/BFRImageViewerDemo/BFRImageViewer/ThirdViewController.m +++ b/BFRImageViewerDemo/BFRImageViewer/ThirdViewController.m @@ -32,8 +32,8 @@ - (void)viewDidLoad { // To use the custom transition animation with BFRImageViewer // 1) Have an instance of BFRImageTransitionAnimator around - // 2) Set it's aniamtedImage, animatedImageContainer and imageOriginFrame. Optionally, set the desiredContentMode - // 3) When you present the BFRImageViewController, set it's transitioningDelegate to your BFRImageTransitionAnimator instance. + // 2) Set its animatedImage, animatedImageContainer and imageOriginFrame. Optionally, set the desiredContentMode + // 3) When you present the BFRImageViewController, set its transitioningDelegate to your BFRImageTransitionAnimator instance. // You can see all of this in action in openImageViewerWithTransition below // Object to create all the animations @@ -68,7 +68,7 @@ - (void)openImageViewerWithTransition { self.imageViewAnimator.animatedImageContainer = self.imageView; // The image that will be animated self.imageViewAnimator.animatedImage = self.imageView.image; - // The rect the image will aniamte to and from + // The rect the image will animate to and from self.imageViewAnimator.imageOriginFrame = self.imageView.frame; // Optional - but you'll want this to match the view's content mode that the image is housed in self.imageViewAnimator.desiredContentMode = self.imageView.contentMode; From d1e5122df3356045244e902e7695f5ba9524484b Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Tue, 16 Jan 2018 11:44:26 -0600 Subject: [PATCH 14/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 078f370..28d35f1 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.1.2" + s.version = "1.1.3" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.2' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.3' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From e3d11a4145bac6d9f153876e6df540e32b8acecc Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Mon, 30 Apr 2018 13:48:48 -0500 Subject: [PATCH 15/30] Don't change destination view frame --- BFRImageViewController/BFRImageTransitionAnimator.m | 1 - 1 file changed, 1 deletion(-) diff --git a/BFRImageViewController/BFRImageTransitionAnimator.m b/BFRImageViewController/BFRImageTransitionAnimator.m index 9bae2a4..47b7aaf 100644 --- a/BFRImageViewController/BFRImageTransitionAnimator.m +++ b/BFRImageViewController/BFRImageTransitionAnimator.m @@ -143,7 +143,6 @@ - (void)performDismissingAnimation:(id)tra UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey]; UIView *destinationView = [transitionContext viewForKey:UITransitionContextToViewKey]; destinationView.alpha = 0.0f; - destinationView.frame = animationContainerView.frame; // Hide the first image from showing during the animation, and the original image fromView.subviews.firstObject.hidden = YES; From e334ab9f6d55e068bb71a010579cb4c2482739fa Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Mon, 30 Apr 2018 13:53:50 -0500 Subject: [PATCH 16/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 28d35f1..67c8c6b 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.1.3" + s.version = "1.1.4" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.3' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.4' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From 505e73fd9f03238215c0bec35e2fc20235e0d2e5 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 2 May 2018 10:19:25 -0500 Subject: [PATCH 17/30] Support for Live Photo finished up --- .../BFRImageContainerViewController.m | 117 +++++++++++++----- 1 file changed, 87 insertions(+), 30 deletions(-) diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index 406ae99..0cbf8f6 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -44,8 +44,12 @@ @interface BFRImageContainerViewController () Date: Wed, 2 May 2018 10:26:44 -0500 Subject: [PATCH 18/30] Show a few Live Photos --- .../BFRImageViewer/FifthViewController.m | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m index d0f712a..2617e34 100644 --- a/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m +++ b/BFRImageViewerDemo/BFRImageViewer/FifthViewController.m @@ -123,13 +123,42 @@ - (BFRImageViewController *)imageViewControllerForLivePhotoDisableAutoplay:(BOOL options.includeAllBurstAssets = NO; PHFetchResult *allLivePhotos = [PHAsset fetchAssetsWithOptions:options]; - PHAsset *firstImage = (PHAsset *)[allLivePhotos firstObject]; + NSMutableArray *livePhotosToShow = [NSMutableArray new]; - BFRImageViewController *viewController = [[BFRImageViewController alloc] - initWithImageSource:@[firstImage]]; - viewController.disableAutoplayForLivePhoto = shouldDisableAutoPlay; - return viewController; + if (allLivePhotos.count > 0) { + NSInteger maxResults = 4; + NSInteger currentFetchCount = 0; + + for (PHFetchResult *result in allLivePhotos) { + if (currentFetchCount == maxResults) { + break; + } + + [livePhotosToShow addObject:result]; + currentFetchCount++; + } + + BFRImageViewController *viewController = [[BFRImageViewController alloc] + initWithImageSource:[livePhotosToShow copy]]; + viewController.disableAutoplayForLivePhoto = shouldDisableAutoPlay; + return viewController; + } else { + UIAlertController *controller = [UIAlertController + alertControllerWithTitle:@"No Live Photos" + message:@"There doesn't appear to be any live photos on your device." + preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *closeAction = [UIAlertAction + actionWithTitle:NSLocalizedString(@"Close", nil) + style:UIAlertActionStyleDefault + handler:nil]; + [controller addAction:closeAction]; + + [self presentViewController:controller + animated:YES + completion:nil]; + + return nil; + } } - @end From d40642faff6ca4d6ab71c8ce0de3a104115f7021 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Wed, 2 May 2018 10:31:44 -0500 Subject: [PATCH 19/30] Added Live Photo mention --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index c26b82d..9bd807b 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ ### Summary The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! -If features swipe gestures to dismiss, automatic image scaling, zooming and panning, supports multiple images, image types, URL backloading, custom view controller transitions and plays nicely with 3D touch! We use it all over the place in [Buffer for iOS](https://itunes.apple.com/us/app/buffer-for-twitter-pinterest/id490474324?mt=8) :-). +If features swipe gestures to dismiss, automatic image scaling, zooming and panning, supports multiple images, image types, URL backloading, custom view controller transitions, supports live photos and plays nicely with 3D touch! We use it all over the place in [Buffer for iOS](https://itunes.apple.com/us/app/buffer-for-twitter-pinterest/id490474324?mt=8) :-). We've got code samples of each feature in the demo app, feel free to take a peek 👀. From 89c5968dd85a51c48377bd7c6bd7b82e686ac584 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 2 May 2018 10:33:51 -0500 Subject: [PATCH 20/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 67c8c6b..2b145c5 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.1.4" + s.version = "1.2" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.1.4' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From a7343825208454ebdd6999ec1624c65cf2d353ac Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 2 May 2018 11:02:07 -0500 Subject: [PATCH 21/30] Fix presented view's bounds being changed on rotation --- .../BFRImageTransitionAnimator.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRImageTransitionAnimator.m b/BFRImageViewController/BFRImageTransitionAnimator.m index 47b7aaf..1df10fc 100644 --- a/BFRImageViewController/BFRImageTransitionAnimator.m +++ b/BFRImageViewController/BFRImageTransitionAnimator.m @@ -20,6 +20,9 @@ @interface BFRImageTransitionAnimator() /*! Represents the device orientation state when the controller is presented. If that changes when dismissal occurs, the custom transition animation isn't used. This is because it can be quite difficult for consumers to get the correct frame that the image should animate back to upon rotation. This may be supported in the future. */ @property (nonatomic) UIDeviceOrientation presentedDeviceOrientation; +/*!Kept around to make sure the presenting view's Y coodinates are persisted upon dismissal. */ +@property (nonatomic) CGFloat presentingViewY; + @end @implementation BFRImageTransitionAnimator @@ -106,8 +109,10 @@ - (void)performPresentationAnimation:(id)t self.presentedDeviceOrientation = [[UIDevice currentDevice] orientation]; UIView *animationContainerView = transitionContext.containerView; + UIView *presentingView = [transitionContext viewForKey:UITransitionContextFromViewKey]; UIView *destinationView = [transitionContext viewForKey:UITransitionContextToViewKey]; + self.presentingViewY = presentingView.frame.origin.y; destinationView.alpha = 0.0f; // Hide the first image from showing during the animation @@ -142,6 +147,13 @@ - (void)performDismissingAnimation:(id)tra UIView *animationContainerView = transitionContext.containerView; UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey]; UIView *destinationView = [transitionContext viewForKey:UITransitionContextToViewKey]; + + // Size back the presenting view to ensure it looks fine it rotations occurred + CGSize destinationViewTargetSize = animationContainerView.bounds.size; + CGPoint destinationViewTargetPoint = CGPointMake(0, self.presentingViewY); + CGRect destinationViewRect = CGRectMake(destinationViewTargetPoint.x, destinationViewTargetPoint.y, + destinationViewTargetSize.width, destinationViewTargetSize.height); + destinationView.frame = destinationViewRect; destinationView.alpha = 0.0f; // Hide the first image from showing during the animation, and the original image @@ -151,7 +163,7 @@ - (void)performDismissingAnimation:(id)tra [animationContainerView addSubview:destinationView]; if (self.shouldDismissWithoutCustomTransition == NO) { - [animationContainerView addSubview:temporaryAnimatedImageView]; + [animationContainerView addSubview:temporaryAnimatedImageView]; } else { self.animatedImageContainer.alpha = 1.0f; } From e42699bc2a77b60930fe815655035043d7f95c50 Mon Sep 17 00:00:00 2001 From: DreamingInBinary Date: Wed, 2 May 2018 11:04:39 -0500 Subject: [PATCH 22/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 2b145c5..8d77be8 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.2" + s.version = "1.2.1" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2.1' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From 9c4415f56428c9cc7b729fce0d1af6dcd96a0559 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Wed, 2 May 2018 12:00:26 -0500 Subject: [PATCH 23/30] Added in Live Photo as image source --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 9bd807b..de5423b 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ ### Summary The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! -If features swipe gestures to dismiss, automatic image scaling, zooming and panning, supports multiple images, image types, URL backloading, custom view controller transitions, supports live photos and plays nicely with 3D touch! We use it all over the place in [Buffer for iOS](https://itunes.apple.com/us/app/buffer-for-twitter-pinterest/id490474324?mt=8) :-). +It features swipe gestures to dismiss, automatic image scaling, zooming and panning, supports multiple images, image types, URL backloading, custom view controller transitions, built in parallax effect, live photos and plays nicely with 3D touch! We use it all over the place in [Buffer for iOS](https://itunes.apple.com/us/app/buffer-for-twitter-pinterest/id490474324?mt=8) :-). We've got code samples of each feature in the demo app, feel free to take a peek 👀. @@ -26,7 +26,7 @@ pod 'BFRImageViewer' ### Quickstart To get up and running quickly with BFRImageViewer, just initialize it - that's really about it! ```objc -//Image source can be an array containing a mix of PHAssets, NSURLs, URL strings, UIImage or BFRBackLoadedImageSource +//Image source can be an array containing a mix of PHAssets, NSURLs, URL strings, UIImage, PHLivePhoto or BFRBackLoadedImageSource BFRImageViewController *imageVC = [[BFRImageViewController alloc] initWithImageSource:@[image]]; ``` ```swift From 4f56ee1ba2eb978319890d510807c04367e42a60 Mon Sep 17 00:00:00 2001 From: Daniel Cohen Gindi Date: Sun, 1 Jul 2018 07:04:52 +0300 Subject: [PATCH 24/30] Expose dismiss methods for public use --- BFRImageViewController/BFRImageViewController.h | 12 ++++++++++++ BFRImageViewController/BFRImageViewController.m | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index 6a1258d..7b1e4b8 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -36,4 +36,16 @@ /*! Allows you to enable autoplay for peek&play feature on photo live view. Default to YES */ @property (nonatomic, getter=shouldDisableAutoplayForLivePhoto) BOOL disableAutoplayForLivePhoto; +/*! Dismiss properly with animations */ +- (void)dismiss; + +/*! Dismiss properly with animations */ +- (void)dismissWithCompletion:(void (^ __nullable)(void))completion; + +/*! Dismiss properly without custom animations */ +- (void)dismissWithoutCustomAnimation; + +/*! Dismiss properly without custom animations */ +- (void)dismissWithoutCustomAnimationWithCompletion:(void (^ __nullable)(void))completion; + @end diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index ff3d172..bc69354 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -270,21 +270,29 @@ - (CGSize)sizeForParallaxView { #pragma mark - Utility methods - (void)dismiss { + [self dismissWithCompletion:nil]; +} + +- (void)dismissWithCompletion:(void (^ __nullable)(void))completion { // If we dismiss from a different image than what was animated in - don't do the custom dismiss transition animation if (self.startingIndex != ((BFRImageContainerViewController *)self.pagerVC.viewControllers.firstObject).pageIndex) { - [self dismissWithoutCustomAnimation]; + [self dismissWithoutCustomAnimationWithCompletion:completion]; return; } self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; - [self dismissViewControllerAnimated:YES completion:nil]; + [self dismissViewControllerAnimated:YES completion:completion]; } - (void)dismissWithoutCustomAnimation { + [self dismissWithoutCustomAnimationWithCompletion:nil]; +} + +- (void)dismissWithoutCustomAnimationWithCompletion:(void (^ __nullable)(void))completion { [[NSNotificationCenter defaultCenter] postNotificationName:NOTE_VC_SHOULD_CANCEL_CUSTOM_TRANSITION object:@(1)]; self.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; - [self dismissViewControllerAnimated:YES completion:nil]; + [self dismissViewControllerAnimated:YES completion:completion]; } - (void)handlePop { @@ -293,7 +301,7 @@ - (void)handlePop { } - (void)handleDoneAction { - [self dismiss]; + [self dismissWithCompletion:nil]; } /*! The images and scrollview are not part of this view controller, so instances of @c BFRimageContainerViewController will post notifications when they are touched for things to happen. */ From 59f73afae6fa1e09c152807f8397dea0aef4a784 Mon Sep 17 00:00:00 2001 From: Daniel Cohen Gindi Date: Sun, 1 Jul 2018 07:13:41 +0300 Subject: [PATCH 25/30] Added `setImageSource` accessor to dynamically reinitialize with new data --- .../BFRImageViewController.h | 3 + .../BFRImageViewController.m | 90 ++++++++++++------- 2 files changed, 59 insertions(+), 34 deletions(-) diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index 7b1e4b8..a5bcbef 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -18,6 +18,9 @@ /*! Initializes an instance of @C BFRImageViewController from the image source provided. The array can contain a mix of @c NSURL, @c UIImage, @c PHAsset, or @c NSStrings of URLS. This can be a mix of all these types, or just one. Additionally, this customizes the user interface to defer showing some of its user interface elements, such as the close button, until it's been fully popped.*/ - (instancetype _Nullable)initForPeekWithImageSource:(NSArray * _Nonnull)images; +/*! Reinitialize with a new images array. Could be used to change the view controller's content on demand */ +- (void)setImageSource:(NSArray * _Nonnull)images; + /*! Assigning YES to this property will make the background transparent. Default is NO. */ @property (nonatomic, getter=isUsingTransparentBackground) BOOL useTransparentBackground; diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index bc69354..ae288e8 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -77,19 +77,46 @@ - (instancetype)initForPeekWithImageSource:(NSArray *)images { return self; } -#pragma mark - View Lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; +- (void)reinitializeUI { - // View setup - self.view.backgroundColor = self.isUsingTransparentBackground ? [UIColor clearColor] : [UIColor blackColor]; - // Ensure starting index won't trap if (self.startingIndex >= self.images.count || self.startingIndex < 0) { self.startingIndex = 0; } + if (!self.imageViewControllers) { + // Set up pager + if (!self.pagerVC) { + self.pagerVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; + } + + // Add pager to view hierarchy + [self addChildViewController:self.pagerVC]; + [[self view] addSubview:[self.pagerVC view]]; + [self.pagerVC didMoveToParentViewController:self]; + + // Attach to pager controller's scrollview for parallax effect when swiping between images + for (UIView *subview in self.pagerVC.view.subviews) { + if ([subview isKindOfClass:[UIScrollView class]]) { + ((UIScrollView *)subview).delegate = self; + self.parallaxView.backgroundColor = self.view.backgroundColor; + self.parallaxView.hidden = YES; + [subview addSubview:self.parallaxView]; + + CGRect parallaxSeparatorFrame = CGRectZero; + parallaxSeparatorFrame.size = [self sizeForParallaxView]; + self.parallaxView.frame = parallaxSeparatorFrame; + + break; + } + } + + // Add chrome to UI now if we aren't waiting to be peeked into + if (!self.isBeingUsedFor3DTouch) { + [self addChromeToUI]; + } + } + // Setup image view controllers self.imageViewControllers = [NSMutableArray new]; for (id imgSrc in self.images) { @@ -104,38 +131,25 @@ - (void)viewDidLoad { [self.imageViewControllers addObject:imgVC]; } - // Set up pager - self.pagerVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; + // Reset pager to the existing view controllers if (self.imageViewControllers.count > 1) { self.pagerVC.dataSource = self; + } else { + self.pagerVC.dataSource = nil; } [self.pagerVC setViewControllers:@[self.imageViewControllers[self.startingIndex]] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; +} + +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; - // Add pager to view hierarchy - [self addChildViewController:self.pagerVC]; - [[self view] addSubview:[self.pagerVC view]]; - [self.pagerVC didMoveToParentViewController:self]; - - // Attach to pager controller's scrollview for parallax effect when swiping between images - for (UIView *subview in self.pagerVC.view.subviews) { - if ([subview isKindOfClass:[UIScrollView class]]) { - ((UIScrollView *)subview).delegate = self; - self.parallaxView.backgroundColor = self.view.backgroundColor; - self.parallaxView.hidden = YES; - [subview addSubview:self.parallaxView]; - - CGRect parallaxSeparatorFrame = CGRectZero; - parallaxSeparatorFrame.size = [self sizeForParallaxView]; - self.parallaxView.frame = parallaxSeparatorFrame; - - break; - } - } - - // Add chrome to UI now if we aren't waiting to be peeked into - if (!self.isBeingUsedFor3DTouch) { - [self addChromeToUI]; - } + // View setup + self.view.backgroundColor = self.isUsingTransparentBackground ? [UIColor clearColor] : [UIColor blackColor]; + + // Prepare the UI + [self reinitializeUI]; // Register for touch events on the images/scrollviews to hide UI chrome [self registerNotifcations]; @@ -164,6 +178,14 @@ - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation { return UIStatusBarAnimationSlide; } +#pragma mark - Accessors + +- (void)setImageSource:(NSArray *)images { + self.images = images; + + [self reinitializeUI]; +} + #pragma mark - Chrome - (void)addChromeToUI { From 10969fc79115dbdb5c69d4d9792c0f0c64a63324 Mon Sep 17 00:00:00 2001 From: Daniel Cohen Gindi Date: Sun, 1 Jul 2018 07:15:07 +0300 Subject: [PATCH 26/30] Expose currentIndex property --- BFRImageViewController/BFRImageViewController.h | 3 +++ BFRImageViewController/BFRImageViewController.m | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index a5bcbef..6b5710d 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -36,6 +36,9 @@ /*! Allows you to assign an index which to show first when opening multiple images. */ @property (nonatomic, assign) NSInteger startingIndex; +/*! Retrieve the index of the currently showing image. */ +@property (nonatomic, assign, readonly) NSInteger currentIndex; + /*! Allows you to enable autoplay for peek&play feature on photo live view. Default to YES */ @property (nonatomic, getter=shouldDisableAutoplayForLivePhoto) BOOL disableAutoplayForLivePhoto; diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index ae288e8..65445ca 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -186,6 +186,11 @@ - (void)setImageSource:(NSArray *)images { [self reinitializeUI]; } +- (NSInteger)currentIndex +{ + return ((BFRImageContainerViewController *)self.pagerVC.viewControllers.firstObject).pageIndex; +} + #pragma mark - Chrome - (void)addChromeToUI { @@ -297,7 +302,7 @@ - (void)dismiss { - (void)dismissWithCompletion:(void (^ __nullable)(void))completion { // If we dismiss from a different image than what was animated in - don't do the custom dismiss transition animation - if (self.startingIndex != ((BFRImageContainerViewController *)self.pagerVC.viewControllers.firstObject).pageIndex) { + if (self.startingIndex != self.currentIndex) { [self dismissWithoutCustomAnimationWithCompletion:completion]; return; } From c8ffe03a50dc4cd9493ff353e67c0cfb9ce6b90e Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Mon, 16 Jul 2018 09:44:20 -0500 Subject: [PATCH 27/30] Minor tweaks --- .../BFRImageViewController.h | 6 +- .../BFRImageViewController.m | 119 +++++++++--------- 2 files changed, 62 insertions(+), 63 deletions(-) diff --git a/BFRImageViewController/BFRImageViewController.h b/BFRImageViewController/BFRImageViewController.h index 6b5710d..71ce38b 100644 --- a/BFRImageViewController/BFRImageViewController.h +++ b/BFRImageViewController/BFRImageViewController.h @@ -18,7 +18,7 @@ /*! Initializes an instance of @C BFRImageViewController from the image source provided. The array can contain a mix of @c NSURL, @c UIImage, @c PHAsset, or @c NSStrings of URLS. This can be a mix of all these types, or just one. Additionally, this customizes the user interface to defer showing some of its user interface elements, such as the close button, until it's been fully popped.*/ - (instancetype _Nullable)initForPeekWithImageSource:(NSArray * _Nonnull)images; -/*! Reinitialize with a new images array. Could be used to change the view controller's content on demand */ +/*! Reinitialize with a new images array. Can be used to change the view controller's content on demand */ - (void)setImageSource:(NSArray * _Nonnull)images; /*! Assigning YES to this property will make the background transparent. Default is NO. */ @@ -45,13 +45,13 @@ /*! Dismiss properly with animations */ - (void)dismiss; -/*! Dismiss properly with animations */ +/*! Dismiss properly with animations and an optional completion handler */ - (void)dismissWithCompletion:(void (^ __nullable)(void))completion; /*! Dismiss properly without custom animations */ - (void)dismissWithoutCustomAnimation; -/*! Dismiss properly without custom animations */ +/*! Dismiss properly without custom animations and an optional completion handler */ - (void)dismissWithoutCustomAnimationWithCompletion:(void (^ __nullable)(void))completion; @end diff --git a/BFRImageViewController/BFRImageViewController.m b/BFRImageViewController/BFRImageViewController.m index 65445ca..c744a11 100644 --- a/BFRImageViewController/BFRImageViewController.m +++ b/BFRImageViewController/BFRImageViewController.m @@ -77,6 +77,57 @@ - (instancetype)initForPeekWithImageSource:(NSArray *)images { return self; } +#pragma mark - View Lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + // View setup + self.view.backgroundColor = self.isUsingTransparentBackground ? [UIColor clearColor] : [UIColor blackColor]; + + // Prepare the UI + [self reinitializeUI]; + + // Register for touch events on the images/scrollviews to hide UI chrome + [self registerNotifcations]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + self.hideStatusBar = YES; + [UIView animateWithDuration:0.1 animations:^{ + [self setNeedsStatusBarAppearanceUpdate]; + }]; +} + +- (void)viewDidLayoutSubviews { + [super viewWillLayoutSubviews]; + [self updateChromeFrames]; +} + +#pragma mark - Status bar + +- (BOOL)prefersStatusBarHidden{ + return self.shouldHideStatusBar; +} + +- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation { + return UIStatusBarAnimationSlide; +} + +#pragma mark - Accessors + +- (void)setImageSource:(NSArray *)images { + self.images = images; + [self reinitializeUI]; +} + +- (NSInteger)currentIndex { + return ((BFRImageContainerViewController *)self.pagerVC.viewControllers.firstObject).pageIndex; +} + +#pragma mark - Chrome/UI + - (void)reinitializeUI { // Ensure starting index won't trap @@ -87,7 +138,9 @@ - (void)reinitializeUI { if (!self.imageViewControllers) { // Set up pager if (!self.pagerVC) { - self.pagerVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil]; + self.pagerVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll + navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal + options:nil]; } // Add pager to view hierarchy @@ -132,67 +185,13 @@ - (void)reinitializeUI { } // Reset pager to the existing view controllers - if (self.imageViewControllers.count > 1) { - self.pagerVC.dataSource = self; - } else { - self.pagerVC.dataSource = nil; - } - [self.pagerVC setViewControllers:@[self.imageViewControllers[self.startingIndex]] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; + self.pagerVC.dataSource = self.imageViewControllers.count > 1 ? self : nil; + [self.pagerVC setViewControllers:@[self.imageViewControllers[self.startingIndex]] + direction:UIPageViewControllerNavigationDirectionForward + animated:NO + completion:nil]; } -#pragma mark - View Lifecycle - -- (void)viewDidLoad { - [super viewDidLoad]; - - // View setup - self.view.backgroundColor = self.isUsingTransparentBackground ? [UIColor clearColor] : [UIColor blackColor]; - - // Prepare the UI - [self reinitializeUI]; - - // Register for touch events on the images/scrollviews to hide UI chrome - [self registerNotifcations]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - self.hideStatusBar = YES; - [UIView animateWithDuration:0.1 animations:^{ - [self setNeedsStatusBarAppearanceUpdate]; - }]; -} - -- (void)viewDidLayoutSubviews { - [super viewWillLayoutSubviews]; - [self updateChromeFrames]; -} - -#pragma mark - Status bar - -- (BOOL)prefersStatusBarHidden{ - return self.shouldHideStatusBar; -} - -- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation { - return UIStatusBarAnimationSlide; -} - -#pragma mark - Accessors - -- (void)setImageSource:(NSArray *)images { - self.images = images; - - [self reinitializeUI]; -} - -- (NSInteger)currentIndex -{ - return ((BFRImageContainerViewController *)self.pagerVC.viewControllers.firstObject).pageIndex; -} - -#pragma mark - Chrome - - (void)addChromeToUI { if (self.enableDoneButton) { NSBundle *bundle = [NSBundle bundleForClass:[self class]]; From 8c3637500623a8c9be3636805bb65550fa8f536a Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Mon, 16 Jul 2018 09:48:15 -0500 Subject: [PATCH 28/30] Spec bump --- BFRImageViewer.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 8d77be8..eeece36 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.2.1" + s.version = "1.2.2" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -14,7 +14,7 @@ Pod::Spec.new do |s| "Jordan Morgan" => "jordan@bufferapp.com", "Humber Aquino" => "humber@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2.1' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2.2' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png' From fcc28fe49fb26214cfb746142e054fb57a2647c0 Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Wed, 22 Aug 2018 12:25:29 -0500 Subject: [PATCH 29/30] Rolled our own progress indicator --- .../BFRImageContainerViewController.m | 46 +- .../BFRImageViewerDownloadProgressView.h | 17 + .../BFRImageViewerDownloadProgressView.m | 99 ++ BFRImageViewer.podspec | 1 - .../BFRImageViewer.xcodeproj/project.pbxproj | 43 +- BFRImageViewerDemo/Podfile | 1 - BFRImageViewerDemo/Podfile.lock | 12 +- .../DACircularProgressView.h | 28 - .../DACircularProgressView.m | 321 ----- .../DALabeledCircularProgressView.h | 23 - .../DALabeledCircularProgressView.m | 47 - .../Pods/DACircularProgress/LICENSE.md | 23 - .../Pods/DACircularProgress/README.md | 77 - .../DACircularProgressView.h | 1 - .../DALabeledCircularProgressView.h | 1 - .../DACircularProgressView.h | 1 - .../DALabeledCircularProgressView.h | 1 - BFRImageViewerDemo/Pods/Manifest.lock | 12 +- .../Pods/Pods.xcodeproj/project.pbxproj | 1243 ++++++++--------- .../DACircularProgress-dummy.m | 5 - .../DACircularProgress-prefix.pch | 4 - .../DACircularProgress.xcconfig | 9 - .../FLAnimatedImage-prefix.pch | 8 + .../FLAnimatedImage/FLAnimatedImage.xcconfig | 9 +- .../PINCache/PINCache-prefix.pch | 8 + .../PINCache/PINCache.xcconfig | 9 +- .../PINRemoteImage/PINRemoteImage-prefix.pch | 8 + .../PINRemoteImage/PINRemoteImage.xcconfig | 11 +- ...s-BFRImageViewer-acknowledgements.markdown | 26 - ...Pods-BFRImageViewer-acknowledgements.plist | 32 - .../Pods-BFRImageViewer-frameworks.sh | 82 +- .../Pods-BFRImageViewer-resources.sh | 46 +- .../Pods-BFRImageViewer.debug.xcconfig | 14 +- .../Pods-BFRImageViewer.release.xcconfig | 14 +- 34 files changed, 883 insertions(+), 1399 deletions(-) create mode 100644 BFRImageViewController/BFRImageViewerDownloadProgressView.h create mode 100644 BFRImageViewController/BFRImageViewerDownloadProgressView.m delete mode 100644 BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h delete mode 100644 BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m delete mode 100644 BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h delete mode 100644 BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m delete mode 100755 BFRImageViewerDemo/Pods/DACircularProgress/LICENSE.md delete mode 100755 BFRImageViewerDemo/Pods/DACircularProgress/README.md delete mode 120000 BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DACircularProgressView.h delete mode 120000 BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h delete mode 120000 BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DACircularProgressView.h delete mode 120000 BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h delete mode 100644 BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-dummy.m delete mode 100644 BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-prefix.pch delete mode 100644 BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress.xcconfig diff --git a/BFRImageViewController/BFRImageContainerViewController.m b/BFRImageViewController/BFRImageContainerViewController.m index 0cbf8f6..d422ae6 100644 --- a/BFRImageViewController/BFRImageContainerViewController.m +++ b/BFRImageViewController/BFRImageContainerViewController.m @@ -8,10 +8,10 @@ #import "BFRImageContainerViewController.h" #import "BFRBackLoadedImageSource.h" +#import "BFRImageViewerDownloadProgressView.h" #import "BFRImageViewerConstants.h" #import #import -#import #import #import @@ -36,7 +36,7 @@ @interface BFRImageContainerViewController () + +@interface BFRImageViewerDownloadProgressView : UIView + +@property (nonatomic, readonly) CGSize progessSize; +@property (nonatomic) CGFloat progress; + +@end + diff --git a/BFRImageViewController/BFRImageViewerDownloadProgressView.m b/BFRImageViewController/BFRImageViewerDownloadProgressView.m new file mode 100644 index 0000000..aacb47d --- /dev/null +++ b/BFRImageViewController/BFRImageViewerDownloadProgressView.m @@ -0,0 +1,99 @@ +// +// BFRImageViewerDownloadProgressView.m +// BFRImageViewer +// +// Created by Jordan Morgan on 8/22/18. +// Copyright © 2018 Andrew Yates. All rights reserved. +// + +#import "BFRImageViewerDownloadProgressView.h" + +static const CGFloat BFR_PROGRESS_LINE_WIDTH = 3.0f; + +@interface BFRImageViewerDownloadProgressView() + +@property (strong, nonatomic, nonnull) CAShapeLayer *progressBackingLayer; +@property (strong, nonatomic, nonnull) CAShapeLayer *progressLayer; +@property (strong, nonatomic, nonnull) UIBezierPath *progressPath; +@property (nonatomic, readwrite) CGSize progessSize; + +@end + +@implementation BFRImageViewerDownloadProgressView + +#pragma mark - Lazy Loads + +- (CAShapeLayer *)progressBackingLayer { + if (!_progressBackingLayer) { + _progressBackingLayer = [CAShapeLayer new]; + _progressBackingLayer.strokeColor = [UIColor lightTextColor].CGColor; + _progressBackingLayer.fillColor = [UIColor clearColor].CGColor; + _progressBackingLayer.strokeEnd = 1; + _progressBackingLayer.lineCap = kCALineCapRound; + _progressBackingLayer.lineWidth = BFR_PROGRESS_LINE_WIDTH; + } + + return _progressBackingLayer; +} + +- (CAShapeLayer *)progressLayer { + if (!_progressLayer) { + _progressLayer = [CAShapeLayer new]; + _progressLayer.strokeColor = [UIColor whiteColor].CGColor; + _progressLayer.fillColor = [UIColor clearColor].CGColor; + _progressLayer.strokeEnd = 0; + _progressLayer.lineCap = kCALineCapRound; + _progressLayer.lineWidth = BFR_PROGRESS_LINE_WIDTH; + } + + return _progressLayer; +} + +#pragma mark - Custom setters + +- (void)setProgress:(CGFloat)progress { + _progress = progress; + if (_progressLayer == nil) return; + _progressLayer.strokeEnd = progress; +} + +#pragma mark - Initializers + +- (instancetype)init { + self = [super init]; + + if (self) { + CGFloat targetHeightWidth = floorf([UIScreen mainScreen].bounds.size.width * .15f); + self.progessSize = CGSizeMake(targetHeightWidth, targetHeightWidth); + + CGRect baseRect = CGRectMake(0, 0, self.progessSize.width, self.progessSize.height); + CGRect targetRect = CGRectInset(baseRect, BFR_PROGRESS_LINE_WIDTH/2, BFR_PROGRESS_LINE_WIDTH/2); + + // Progress circle + CGFloat startAngle = M_PI_2 * 3.0f;; + CGFloat endAngle = startAngle + (M_PI * 2.0); + CGFloat width = CGRectGetWidth(targetRect)/2.0f; + CGFloat height = CGRectGetHeight(targetRect)/2.0f; + CGPoint centerPoint = CGPointMake(width, height); + float radius = targetRect.size.width/2; + + self.progressPath = [UIBezierPath bezierPathWithArcCenter:centerPoint + radius:radius + startAngle:startAngle + endAngle:endAngle + clockwise:YES]; + + self.progressBackingLayer.path = self.progressPath.CGPath; + self.progressLayer.path = self.progressPath.CGPath; + + self.backgroundColor = [UIColor clearColor]; + self.clipsToBounds = NO; + + [self.layer addSublayer:self.progressBackingLayer]; + [self.layer addSublayer:self.progressLayer]; + } + + return self; +} + +@end diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index eeece36..3654374 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -21,6 +21,5 @@ Pod::Spec.new do |s| s.platform = :ios, '10.0' s.requires_arc = true s.frameworks = "UIKit", "Photos" - s.dependency 'DACircularProgress' s.dependency 'PINRemoteImage', '~> 3.0.0-beta.12' end diff --git a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj index 66f3c0c..97eef65 100644 --- a/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj +++ b/BFRImageViewerDemo/BFRImageViewer.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1702C69A1F86BBFC00104D0B /* BFRImageViewerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */; }; 1702C69C1F86C3A400104D0B /* lowResImage.png in Resources */ = {isa = PBXBuildFile; fileRef = 1702C69B1F86C32100104D0B /* lowResImage.png */; }; + 170BE4FF212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 170BE4FE212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.m */; }; 171F4AD01E96BE0500F4AF01 /* BFRBackLoadedImageSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */; }; 171F4AD31E96C31400F4AF01 /* FourthViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 171F4AD21E96C31400F4AF01 /* FourthViewController.m */; }; 1797CB8E1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1797CB8D1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m */; }; @@ -33,6 +34,8 @@ 1702C6981F86BBFC00104D0B /* BFRImageViewerConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BFRImageViewerConstants.h; sourceTree = ""; }; 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BFRImageViewerConstants.m; sourceTree = ""; }; 1702C69B1F86C32100104D0B /* lowResImage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lowResImage.png; sourceTree = ""; }; + 170BE4FD212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BFRImageViewerDownloadProgressView.h; sourceTree = ""; }; + 170BE4FE212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BFRImageViewerDownloadProgressView.m; sourceTree = ""; }; 171F4ACE1E96BE0500F4AF01 /* BFRBackLoadedImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BFRBackLoadedImageSource.h; sourceTree = ""; }; 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BFRBackLoadedImageSource.m; sourceTree = ""; }; 171F4AD11E96C31400F4AF01 /* FourthViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FourthViewController.h; sourceTree = ""; }; @@ -162,6 +165,8 @@ 171F4ACF1E96BE0500F4AF01 /* BFRBackLoadedImageSource.m */, 1702C6981F86BBFC00104D0B /* BFRImageViewerConstants.h */, 1702C6991F86BBFC00104D0B /* BFRImageViewerConstants.m */, + 170BE4FD212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.h */, + 170BE4FE212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.m */, ); name = BFRImageViewController; path = ../../BFRImageViewController; @@ -187,8 +192,6 @@ 944B4DA71BFFC0C000B9BF87 /* Sources */, 944B4DA81BFFC0C000B9BF87 /* Frameworks */, 944B4DA91BFFC0C000B9BF87 /* Resources */, - 978A01AA282D37386C67AD06 /* [CP] Embed Pods Frameworks */, - FC7DE66A0F2E7C3D782C1853 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -255,43 +258,16 @@ files = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-BFRImageViewer-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 978A01AA282D37386C67AD06 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FC7DE66A0F2E7C3D782C1853 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -302,6 +278,7 @@ buildActionMask = 2147483647; files = ( 944B4DB91BFFC0C000B9BF87 /* SecondViewController.m in Sources */, + 170BE4FF212DBB2B005703C6 /* BFRImageViewerDownloadProgressView.m in Sources */, 1797CB8E1E81BB4F00D9F729 /* BFRImageTransitionAnimator.m in Sources */, 1797CB911E81BBB200D9F729 /* ThirdViewController.m in Sources */, 95D4797D1F97C348001E54D4 /* FifthViewController.m in Sources */, diff --git a/BFRImageViewerDemo/Podfile b/BFRImageViewerDemo/Podfile index 5732545..c6c241b 100644 --- a/BFRImageViewerDemo/Podfile +++ b/BFRImageViewerDemo/Podfile @@ -4,7 +4,6 @@ inhibit_all_warnings! target 'BFRImageViewer' do -pod 'DACircularProgress' pod 'PINRemoteImage', :git => 'https://github.com/pinterest/PINRemoteImage.git' end diff --git a/BFRImageViewerDemo/Podfile.lock b/BFRImageViewerDemo/Podfile.lock index cdedadb..2af2cea 100644 --- a/BFRImageViewerDemo/Podfile.lock +++ b/BFRImageViewerDemo/Podfile.lock @@ -1,5 +1,4 @@ PODS: - - DACircularProgress (2.3.1) - FLAnimatedImage (1.0.12) - PINCache (3.0.1-beta.2): - PINCache/Arc-exception-safe (= 3.0.1-beta.2) @@ -19,9 +18,13 @@ PODS: - PINRemoteImage/Core DEPENDENCIES: - - DACircularProgress - PINRemoteImage (from `https://github.com/pinterest/PINRemoteImage.git`) +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - FLAnimatedImage + - PINCache + EXTERNAL SOURCES: PINRemoteImage: :git: https://github.com/pinterest/PINRemoteImage.git @@ -32,11 +35,10 @@ CHECKOUT OPTIONS: :git: https://github.com/pinterest/PINRemoteImage.git SPEC CHECKSUMS: - DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71 FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31 PINCache: 6d273a6e0754bd26e3f12a38a90dde73cc6a42b2 PINRemoteImage: ff63baf185088530db6cfa41cb665e2b5126b5c3 -PODFILE CHECKSUM: bbfa0df3719b324330008a0f77bd00f55234120a +PODFILE CHECKSUM: dbe839487dd363bb5f818b4a7bf33c99a444bd2c -COCOAPODS: 1.1.1 +COCOAPODS: 1.5.3 diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h b/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h deleted file mode 100644 index 391b449..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// DACircularProgressView.h -// DACircularProgress -// -// Created by Daniel Amitay on 2/6/12. -// Copyright (c) 2012 Daniel Amitay. All rights reserved. -// - -#import - -@interface DACircularProgressView : UIView - -@property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR; -@property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR; -@property(nonatomic, strong) UIColor *innerTintColor UI_APPEARANCE_SELECTOR; -@property(nonatomic) NSInteger roundedCorners UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( -@property(nonatomic) CGFloat thicknessRatio UI_APPEARANCE_SELECTOR; -@property(nonatomic) NSInteger clockwiseProgress UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( -@property(nonatomic) CGFloat progress; - -@property(nonatomic) CGFloat indeterminateDuration UI_APPEARANCE_SELECTOR; -@property(nonatomic) NSInteger indeterminate UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( - -- (void)setProgress:(CGFloat)progress animated:(BOOL)animated; -- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay; -- (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay withDuration:(CFTimeInterval)duration; - -@end diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m b/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m deleted file mode 100644 index ea39dcd..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m +++ /dev/null @@ -1,321 +0,0 @@ -// -// DACircularProgressView.m -// DACircularProgress -// -// Created by Daniel Amitay on 2/6/12. -// Copyright (c) 2012 Daniel Amitay. All rights reserved. -// - -#import "DACircularProgressView.h" - -#import - -@interface DACircularProgressLayer : CALayer - -@property(nonatomic, strong) UIColor *trackTintColor; -@property(nonatomic, strong) UIColor *progressTintColor; -@property(nonatomic, strong) UIColor *innerTintColor; -@property(nonatomic) NSInteger roundedCorners; -@property(nonatomic) CGFloat thicknessRatio; -@property(nonatomic) CGFloat progress; -@property(nonatomic) NSInteger clockwiseProgress; - -@end - -@implementation DACircularProgressLayer - -@dynamic trackTintColor; -@dynamic progressTintColor; -@dynamic innerTintColor; -@dynamic roundedCorners; -@dynamic thicknessRatio; -@dynamic progress; -@dynamic clockwiseProgress; - -+ (BOOL)needsDisplayForKey:(NSString *)key -{ - if ([key isEqualToString:@"progress"]) { - return YES; - } else { - return [super needsDisplayForKey:key]; - } -} - -- (void)drawInContext:(CGContextRef)context -{ - CGRect rect = self.bounds; - CGPoint centerPoint = CGPointMake(rect.size.width / 2.0f, rect.size.height / 2.0f); - CGFloat radius = MIN(rect.size.height, rect.size.width) / 2.0f; - - BOOL clockwise = (self.clockwiseProgress != 0); - - CGFloat progress = MIN(self.progress, 1.0f - FLT_EPSILON); - CGFloat radians = 0; - if (clockwise) { - radians = (float)((progress * 2.0f * M_PI) - M_PI_2); - } else { - radians = (float)(3 * M_PI_2 - (progress * 2.0f * M_PI)); - } - - CGContextSetFillColorWithColor(context, self.trackTintColor.CGColor); - CGMutablePathRef trackPath = CGPathCreateMutable(); - CGPathMoveToPoint(trackPath, NULL, centerPoint.x, centerPoint.y); - CGPathAddArc(trackPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(2.0f * M_PI), 0.0f, TRUE); - CGPathCloseSubpath(trackPath); - CGContextAddPath(context, trackPath); - CGContextFillPath(context); - CGPathRelease(trackPath); - - if (progress > 0.0f) { - CGContextSetFillColorWithColor(context, self.progressTintColor.CGColor); - CGMutablePathRef progressPath = CGPathCreateMutable(); - CGPathMoveToPoint(progressPath, NULL, centerPoint.x, centerPoint.y); - CGPathAddArc(progressPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(3.0f * M_PI_2), radians, !clockwise); - CGPathCloseSubpath(progressPath); - CGContextAddPath(context, progressPath); - CGContextFillPath(context); - CGPathRelease(progressPath); - } - - if (progress > 0.0f && self.roundedCorners) { - CGFloat pathWidth = radius * self.thicknessRatio; - CGFloat xOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * cosf(radians))); - CGFloat yOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * sinf(radians))); - CGPoint endPoint = CGPointMake(xOffset, yOffset); - - CGRect startEllipseRect = (CGRect) { - .origin.x = centerPoint.x - pathWidth / 2.0f, - .origin.y = 0.0f, - .size.width = pathWidth, - .size.height = pathWidth - }; - CGContextAddEllipseInRect(context, startEllipseRect); - CGContextFillPath(context); - - CGRect endEllipseRect = (CGRect) { - .origin.x = endPoint.x - pathWidth / 2.0f, - .origin.y = endPoint.y - pathWidth / 2.0f, - .size.width = pathWidth, - .size.height = pathWidth - }; - CGContextAddEllipseInRect(context, endEllipseRect); - CGContextFillPath(context); - } - - CGContextSetBlendMode(context, kCGBlendModeClear); - CGFloat innerRadius = radius * (1.0f - self.thicknessRatio); - CGRect clearRect = (CGRect) { - .origin.x = centerPoint.x - innerRadius, - .origin.y = centerPoint.y - innerRadius, - .size.width = innerRadius * 2.0f, - .size.height = innerRadius * 2.0f - }; - CGContextAddEllipseInRect(context, clearRect); - CGContextFillPath(context); - - if (self.innerTintColor) { - CGContextSetBlendMode(context, kCGBlendModeNormal); - CGContextSetFillColorWithColor(context, [self.innerTintColor CGColor]); - CGContextAddEllipseInRect(context, clearRect); - CGContextFillPath(context); - } -} - -@end - -@interface DACircularProgressView () - -@end - -@implementation DACircularProgressView - -+ (void) initialize -{ - if (self == [DACircularProgressView class]) { - DACircularProgressView *circularProgressViewAppearance = [DACircularProgressView appearance]; - [circularProgressViewAppearance setTrackTintColor:[[UIColor whiteColor] colorWithAlphaComponent:0.3f]]; - [circularProgressViewAppearance setProgressTintColor:[UIColor whiteColor]]; - [circularProgressViewAppearance setInnerTintColor:nil]; - [circularProgressViewAppearance setBackgroundColor:[UIColor clearColor]]; - [circularProgressViewAppearance setThicknessRatio:0.3f]; - [circularProgressViewAppearance setRoundedCorners:NO]; - [circularProgressViewAppearance setClockwiseProgress:YES]; - - [circularProgressViewAppearance setIndeterminateDuration:2.0f]; - [circularProgressViewAppearance setIndeterminate:NO]; - } -} - -+ (Class)layerClass -{ - return [DACircularProgressLayer class]; -} - -- (DACircularProgressLayer *)circularProgressLayer -{ - return (DACircularProgressLayer *)self.layer; -} - -- (id)init -{ - return [super initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 40.0f)]; -} - -- (void)didMoveToWindow -{ - CGFloat windowContentsScale = self.window.screen.scale; - self.circularProgressLayer.contentsScale = windowContentsScale; - [self.circularProgressLayer setNeedsDisplay]; -} - - -#pragma mark - Progress - -- (CGFloat)progress -{ - return self.circularProgressLayer.progress; -} - -- (void)setProgress:(CGFloat)progress -{ - [self setProgress:progress animated:NO]; -} - -- (void)setProgress:(CGFloat)progress animated:(BOOL)animated -{ - [self setProgress:progress animated:animated initialDelay:0.0]; -} - -- (void)setProgress:(CGFloat)progress - animated:(BOOL)animated - initialDelay:(CFTimeInterval)initialDelay -{ - CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f); - [self setProgress:progress - animated:animated - initialDelay:initialDelay - withDuration:fabs(self.progress - pinnedProgress)]; -} - -- (void)setProgress:(CGFloat)progress - animated:(BOOL)animated - initialDelay:(CFTimeInterval)initialDelay - withDuration:(CFTimeInterval)duration -{ - [self.layer removeAnimationForKey:@"indeterminateAnimation"]; - [self.circularProgressLayer removeAnimationForKey:@"progress"]; - - CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f); - if (animated) { - CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"progress"]; - animation.duration = duration; - animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; - animation.fillMode = kCAFillModeForwards; - animation.fromValue = [NSNumber numberWithFloat:self.progress]; - animation.toValue = [NSNumber numberWithFloat:pinnedProgress]; - animation.beginTime = CACurrentMediaTime() + initialDelay; - animation.delegate = self; - [self.circularProgressLayer addAnimation:animation forKey:@"progress"]; - } else { - [self.circularProgressLayer setNeedsDisplay]; - self.circularProgressLayer.progress = pinnedProgress; - } -} - -- (void)animationDidStop:(CAAnimation *)animation finished:(BOOL)flag -{ - NSNumber *pinnedProgressNumber = [animation valueForKey:@"toValue"]; - self.circularProgressLayer.progress = [pinnedProgressNumber floatValue]; -} - - -#pragma mark - UIAppearance methods - -- (UIColor *)trackTintColor -{ - return self.circularProgressLayer.trackTintColor; -} - -- (void)setTrackTintColor:(UIColor *)trackTintColor -{ - self.circularProgressLayer.trackTintColor = trackTintColor; - [self.circularProgressLayer setNeedsDisplay]; -} - -- (UIColor *)progressTintColor -{ - return self.circularProgressLayer.progressTintColor; -} - -- (void)setProgressTintColor:(UIColor *)progressTintColor -{ - self.circularProgressLayer.progressTintColor = progressTintColor; - [self.circularProgressLayer setNeedsDisplay]; -} - -- (UIColor *)innerTintColor -{ - return self.circularProgressLayer.innerTintColor; -} - -- (void)setInnerTintColor:(UIColor *)innerTintColor -{ - self.circularProgressLayer.innerTintColor = innerTintColor; - [self.circularProgressLayer setNeedsDisplay]; -} - -- (NSInteger)roundedCorners -{ - return self.roundedCorners; -} - -- (void)setRoundedCorners:(NSInteger)roundedCorners -{ - self.circularProgressLayer.roundedCorners = roundedCorners; - [self.circularProgressLayer setNeedsDisplay]; -} - -- (CGFloat)thicknessRatio -{ - return self.circularProgressLayer.thicknessRatio; -} - -- (void)setThicknessRatio:(CGFloat)thicknessRatio -{ - self.circularProgressLayer.thicknessRatio = MIN(MAX(thicknessRatio, 0.f), 1.f); - [self.circularProgressLayer setNeedsDisplay]; -} - -- (NSInteger)indeterminate -{ - CAAnimation *spinAnimation = [self.layer animationForKey:@"indeterminateAnimation"]; - return (spinAnimation == nil ? 0 : 1); -} - -- (void)setIndeterminate:(NSInteger)indeterminate -{ - if (indeterminate) { - if (!self.indeterminate) { - CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; - spinAnimation.byValue = [NSNumber numberWithDouble:indeterminate > 0 ? 2.0f*M_PI : -2.0f*M_PI]; - spinAnimation.duration = self.indeterminateDuration; - spinAnimation.repeatCount = HUGE_VALF; - [self.layer addAnimation:spinAnimation forKey:@"indeterminateAnimation"]; - } - } else { - [self.layer removeAnimationForKey:@"indeterminateAnimation"]; - } -} - -- (NSInteger)clockwiseProgress -{ - return self.circularProgressLayer.clockwiseProgress; -} - -- (void)setClockwiseProgress:(NSInteger)clockwiseProgres -{ - self.circularProgressLayer.clockwiseProgress = clockwiseProgres; - [self.circularProgressLayer setNeedsDisplay]; -} - -@end diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h b/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h deleted file mode 100644 index 1d4e56c..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// DALabeledCircularProgressView.h -// DACircularProgressExample -// -// Created by Josh Sklar on 4/8/14. -// Copyright (c) 2014 Shout Messenger. All rights reserved. -// - -#import "DACircularProgressView.h" - -/** - @class DALabeledCircularProgressView - - @brief Subclass of DACircularProgressView that adds a UILabel. - */ -@interface DALabeledCircularProgressView : DACircularProgressView - -/** - UILabel placed right on the DACircularProgressView. - */ -@property (strong, nonatomic) UILabel *progressLabel; - -@end diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m b/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m deleted file mode 100644 index c0e2bda..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/DACircularProgress/DALabeledCircularProgressView.m +++ /dev/null @@ -1,47 +0,0 @@ -// -// DALabeledCircularProgressView.m -// DACircularProgressExample -// -// Created by Josh Sklar on 4/8/14. -// Copyright (c) 2014 Shout Messenger. All rights reserved. -// - -#import "DALabeledCircularProgressView.h" - -@implementation DALabeledCircularProgressView - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self initializeLabel]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder -{ - self = [super initWithCoder:aDecoder]; - if (self) { - [self initializeLabel]; - } - return self; -} - - -#pragma mark - Internal methods - -/** - Creates and initializes - -[DALabeledCircularProgressView progressLabel]. - */ -- (void)initializeLabel -{ - self.progressLabel = [[UILabel alloc] initWithFrame:self.bounds]; - self.progressLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; - self.progressLabel.textAlignment = NSTextAlignmentCenter; - self.progressLabel.backgroundColor = [UIColor clearColor]; - [self addSubview:self.progressLabel]; -} - -@end diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/LICENSE.md b/BFRImageViewerDemo/Pods/DACircularProgress/LICENSE.md deleted file mode 100755 index 94d0610..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/LICENSE.md +++ /dev/null @@ -1,23 +0,0 @@ -# License - -## MIT License - -Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/BFRImageViewerDemo/Pods/DACircularProgress/README.md b/BFRImageViewerDemo/Pods/DACircularProgress/README.md deleted file mode 100755 index 3c40031..0000000 --- a/BFRImageViewerDemo/Pods/DACircularProgress/README.md +++ /dev/null @@ -1,77 +0,0 @@ -## DACircularProgress - -`DACircularProgress` is a `UIView` subclass with circular `UIProgressView` properties. - -It was originally built to be an imitation of Facebook's photo progress indicator. - -View the included example project for a demonstration. - -![Screenshot](https://github.com/danielamitay/DACircularProgress/raw/master/screenshot.png) - -## Installation - -To use `DACircularProgress`: - -- Copy over the `DACircularProgress` folder to your project folder. -- Make sure that your project includes ``. -- `#import "DACircularProgressView.h"` - -### Example Code - -```objective-c - -self.progressView = [[DACircularProgressView alloc] initWithFrame:CGRectMake(140.0f, 30.0f, 40.0f, 40.0f)]; -self.progressView.roundedCorners = YES; -self.progressView.trackTintColor = [UIColor clearColor]; -[self.view addSubview:self.progressView]; -``` - -- You can also use Interface Builder by adding a `UIView` element and setting its class to `DACircularProgress` - -## Notes - -### Compatibility - -iOS5.0+ - -### Automatic Reference Counting (ARC) support - -`DACircularProgress` was made with ARC enabled by default. - -## Contact - -- [Personal website](http://danielamitay.com) -- [GitHub](http://github.com/danielamitay) -- [Twitter](http://twitter.com/danielamitay) -- [LinkedIn](http://www.linkedin.com/in/danielamitay) -- [Email](hello@danielamitay.com) - -If you use/enjoy `DACircularProgress`, let me know! - -## Credits - -`DACircularProgress` is brought to you by [Daniel Amitay](http://www.amitay.us) and [contributors to the project](https://github.com/danielamitay/DACircularProgress/contributors). A special thanks to [Cédric Luthi](https://github.com/0xced) for a significant amount of changes. If you have feature suggestions or bug reports, feel free to help out by sending pull requests or by [creating new issues](https://github.com/danielamitay/DACircularProgress/issues/new). - -## License - -### MIT License - -Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DACircularProgressView.h b/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DACircularProgressView.h deleted file mode 120000 index b67e984..0000000 --- a/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DACircularProgressView.h +++ /dev/null @@ -1 +0,0 @@ -../../../DACircularProgress/DACircularProgress/DACircularProgressView.h \ No newline at end of file diff --git a/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h b/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h deleted file mode 120000 index 89a694f..0000000 --- a/BFRImageViewerDemo/Pods/Headers/Private/DACircularProgress/DALabeledCircularProgressView.h +++ /dev/null @@ -1 +0,0 @@ -../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h \ No newline at end of file diff --git a/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DACircularProgressView.h b/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DACircularProgressView.h deleted file mode 120000 index b67e984..0000000 --- a/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DACircularProgressView.h +++ /dev/null @@ -1 +0,0 @@ -../../../DACircularProgress/DACircularProgress/DACircularProgressView.h \ No newline at end of file diff --git a/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h b/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h deleted file mode 120000 index 89a694f..0000000 --- a/BFRImageViewerDemo/Pods/Headers/Public/DACircularProgress/DALabeledCircularProgressView.h +++ /dev/null @@ -1 +0,0 @@ -../../../DACircularProgress/DACircularProgress/DALabeledCircularProgressView.h \ No newline at end of file diff --git a/BFRImageViewerDemo/Pods/Manifest.lock b/BFRImageViewerDemo/Pods/Manifest.lock index cdedadb..2af2cea 100644 --- a/BFRImageViewerDemo/Pods/Manifest.lock +++ b/BFRImageViewerDemo/Pods/Manifest.lock @@ -1,5 +1,4 @@ PODS: - - DACircularProgress (2.3.1) - FLAnimatedImage (1.0.12) - PINCache (3.0.1-beta.2): - PINCache/Arc-exception-safe (= 3.0.1-beta.2) @@ -19,9 +18,13 @@ PODS: - PINRemoteImage/Core DEPENDENCIES: - - DACircularProgress - PINRemoteImage (from `https://github.com/pinterest/PINRemoteImage.git`) +SPEC REPOS: + https://github.com/cocoapods/specs.git: + - FLAnimatedImage + - PINCache + EXTERNAL SOURCES: PINRemoteImage: :git: https://github.com/pinterest/PINRemoteImage.git @@ -32,11 +35,10 @@ CHECKOUT OPTIONS: :git: https://github.com/pinterest/PINRemoteImage.git SPEC CHECKSUMS: - DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71 FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31 PINCache: 6d273a6e0754bd26e3f12a38a90dde73cc6a42b2 PINRemoteImage: ff63baf185088530db6cfa41cb665e2b5126b5c3 -PODFILE CHECKSUM: bbfa0df3719b324330008a0f77bd00f55234120a +PODFILE CHECKSUM: dbe839487dd363bb5f818b4a7bf33c99a444bd2c -COCOAPODS: 1.1.1 +COCOAPODS: 1.5.3 diff --git a/BFRImageViewerDemo/Pods/Pods.xcodeproj/project.pbxproj b/BFRImageViewerDemo/Pods/Pods.xcodeproj/project.pbxproj index 273403e..4820091 100644 --- a/BFRImageViewerDemo/Pods/Pods.xcodeproj/project.pbxproj +++ b/BFRImageViewerDemo/Pods/Pods.xcodeproj/project.pbxproj @@ -7,101 +7,94 @@ objects = { /* Begin PBXBuildFile section */ - 0024F89673D793582C1B016ED8430AC1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1983BDC107FFDC16EB402E85A2D57DA6 /* QuartzCore.framework */; }; - 02179658BFB4DF8C0472FAC4269AF745 /* PINDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D12B08F44BA0C726C5BCB2412F62B8E9 /* PINDiskCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 049F2463CB9C37EF2854761E8888CCE3 /* PINRemoteImageTask.m in Sources */ = {isa = PBXBuildFile; fileRef = C4AA28ADA0965F7AC035C5E25C4EC583 /* PINRemoteImageTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 0A939E8B3AAD7941A0C6C7AEE9361F70 /* PINRemoteImageMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 71EB1B2B4FB89A78F3A8385813823310 /* PINRemoteImageMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B235099DFA61362AEA467044B319448 /* PINRemoteImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD6749EA98C452378EDD4F9E1878EB07 /* PINRemoteImage-dummy.m */; }; - 0CA23DCC76B83B612A3CEED98D14B23E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1983BDC107FFDC16EB402E85A2D57DA6 /* QuartzCore.framework */; }; - 0E9E2B040680E0B5F2A41D247875C60F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */; }; - 0EC2C058313393FF48DBA73DF43EF3F5 /* Pods-BFRImageViewer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A509816A23E2B2BE95D0383193EDF064 /* Pods-BFRImageViewer-dummy.m */; }; - 0F43026EB93ECF66B39EDA40E07873CE /* PINRemoteImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BAA3399AE65AB72F58516054C757E7C /* PINRemoteImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 10BEB12285521DD3EFCC88276FE2788A /* PINDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E95F52D48BE116262D8E096EB945BA77 /* PINDiskCache.m */; settings = {COMPILER_FLAGS = "-fobjc-arc-exceptions -DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks -DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 132EA333280E0D76CA900578B47D5B72 /* PINDataTaskOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DDF89AB358BCA78E4C329077B87D37 /* PINDataTaskOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1463FDCFD852A4FC5FEBD4128966403C /* PINRemoteImageDownloadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FB1199AC79D0D2FA24A7FAB45B6B470 /* PINRemoteImageDownloadTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1880066C9C29E5B9E73ABD5A95622262 /* PINProgressiveImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5128EF6B0C02C4CE86813C589FCA1537 /* PINProgressiveImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 1EFD9583025366C1EB5F456A6CD3E3BD /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9916B2E855D65ECAE53C892FD9DE215 /* MobileCoreServices.framework */; }; - 1F0DE65891A4AC71FF589C469CC41E8E /* PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = EFC84D45EEC8BC803E82AF11A1A894DB /* PINRemoteImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 242BCE2D0D0BAFAC3BA670702347A42D /* PINRemoteImageBasicCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F8E0391C88B698C81429155D1E63AA13 /* PINRemoteImageBasicCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 2C6BA2BD8EC92CCAB6AD7C2BC56B8415 /* NSData+ImageDetectors.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B6A549B6EB4B9455688FFBBCB9F9970 /* NSData+ImageDetectors.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 311781DDA777D7295189F163C9D60FBC /* PINButton+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = D216A1AE97520D71691F2F18F73CCE80 /* PINButton+PINRemoteImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3681254D0D693A67149AA96A1A071F64 /* PINOperationGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = C15FA3DFF2DBA22F8684C6B0E4A942D4 /* PINOperationGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 38CC39A456F1D38CD4CDF6FBAF5FC93D /* PINRemoteImageProcessorTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 442F845091462489215DD1A5CE912D8D /* PINRemoteImageProcessorTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 3A0007C5D0F074814B1028AB6F4D34C6 /* PINCache+PINRemoteImageCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = F3AB9D90A43E7FB7311C92C18F78A1A0 /* PINCache+PINRemoteImageCaching.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3A80E6D6BCF67A75A5906172F667EC52 /* PINAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 191E9BCB37A6A3CB72436798452D361F /* PINAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 3C287D75CF3F4C586F6B5646684E2AF7 /* PINRemoteImageMemoryContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = F2E0AA5B9CF5EC389BD0E53528B17B51 /* PINRemoteImageMemoryContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3C4DCC84674225ED664A8BFDD7ED2F2C /* PINURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 91ACE60A9AD347371453EED73675DDDE /* PINURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3FA3597678124B3AC54F07C8C2B8D061 /* PINURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 074996F7C2542EE1A249798D2105D4BB /* PINURLSessionManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 4025E4EF5E01C93919047C77FAF4B7B6 /* Nullability.h in Headers */ = {isa = PBXBuildFile; fileRef = 99A71E8CB50C22BC42C5CA5E2BE3B77C /* Nullability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 453D9611C2E6C5BB6E4779251572A900 /* NSData+ImageDetectors.m in Sources */ = {isa = PBXBuildFile; fileRef = 38CC5AB2396426F0F8696ABB546F81BC /* NSData+ImageDetectors.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 45EE4E8B3833971578DE857ED53C0AB2 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2AF52CF41D0CA688A271203B9A49633 /* ImageIO.framework */; }; - 479037B3A88BBD0C34D5DC1DCBB84C83 /* PINOperationGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 5832875C97940435F312D1CA8800C9A9 /* PINOperationGroup.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 47DDC63BE0247749C8C1AAB5A8107640 /* PINRemoteImageCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = B86555A9202517817259C5E63A6DE7B7 /* PINRemoteImageCallbacks.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49D141B6A7324A2AA411627BBA6FE57E /* PINAnimatedImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E80DE5A90FFAD4252D7754F54948C523 /* PINAnimatedImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 49D5E5A8D1D258D35E07EB2A7E016FE8 /* PINButton+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 20D276F2D4D7BC24F420CCD2501DF7E7 /* PINButton+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 4C06F5DF8152D7A7964E7FAB6D324E79 /* PINOperationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 42839CF5D2E564467A2CE348927C03FD /* PINOperationQueue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 51157F7A2664E6CD320A08566897FB28 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B2AF52CF41D0CA688A271203B9A49633 /* ImageIO.framework */; }; - 54BD4B2920F5A63EC9B0B9B47DE1BB14 /* DALabeledCircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = CC74E10F063D4E772EEBBD4A9B80F784 /* DALabeledCircularProgressView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 5A4DE4D84C554DF22EBDFA815661B7C3 /* PINCacheObjectSubscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = 51EBE843F094794D72B34F50B5B21D30 /* PINCacheObjectSubscripting.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5C9AA2A60B07AA4EE36209B878362A23 /* FLAnimatedImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C18C9598A34D36462CE95B16650BAC4 /* FLAnimatedImage-dummy.m */; }; - 63EAEA3C15F493173AE81FF5F366EE5C /* FLAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8CC324F1C3E9C512AC1223F0E58A4 /* FLAnimatedImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 645CEF707D2588907D1D8273CC28ACAC /* PINRemoteImageCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FE3BFA1489D403B9D9280717FB9103E /* PINRemoteImageCaching.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 662B486D7326F3C2A4014CA81BC39B17 /* PINOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = BFEBABA89AF4C39A7829A6BAA79D7AA4 /* PINOperationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 67B58D322DDE680B16979EFE00297670 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E516036390BA561D4132699F80343C87 /* Accelerate.framework */; }; - 6DABCF4E595D546441A1474EBDFC0D42 /* PINRemoteLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 529A5A10F4736882F96E54559AD399DD /* PINRemoteLock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6F077C3ECD0A7F2902EF7D4499C1397B /* PINImageView+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = C6021F9CBBA360A8D28CD13C52316A02 /* PINImageView+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7013832B5C69B147A73EB70472678828 /* PINRemoteImageManagerResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A3F4BF5D4BC7B2C3529343DA28C0F2C0 /* PINRemoteImageManagerResult.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 72E34A5186553870C8C033541CB2FAF7 /* PINRemoteImageCategoryManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E3991D421DE0457198E8D33FC007A77 /* PINRemoteImageCategoryManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 73224CB39DEDC688ADE0D6D51FCAA3F7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1EF55610D4A5B0010ACC32D2083E788 /* CoreGraphics.framework */; }; - 75AF3BEAD48E00BCCBA27FD7C3F533B5 /* PINRemoteImageMemoryContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = D37F4FF2691F5AD14074D8A1C9956B1A /* PINRemoteImageMemoryContainer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7694A63FC4F6ACF0198BB0D669A61A7B /* FLAnimatedImageView+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CE89D4493E7E477CE23D5C236671247 /* FLAnimatedImageView+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7AFAB2F9AB463BCAF5D2FADAAFEC24D0 /* PINImage+DecodedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E0A008B1F80845CEFB8508B7AB1FC19 /* PINImage+DecodedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B3D92194728ECD576FA49FC4EF88107 /* PINCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 389F30E9C0ABD780CC83836EFB44C3E3 /* PINCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 7FB124F3AF76A8F96329472D4CB73DEF /* PINProgressiveImage.h in Headers */ = {isa = PBXBuildFile; fileRef = F1B846119593EDF3614E6E7916002005 /* PINProgressiveImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 81F05C8AA950F13A257531D5C5704359 /* PINRemoteImageCategoryManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC9C6B5E9671DC798A27854EA600DEC /* PINRemoteImageCategoryManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83E9DFB76FA30A776E39905B0D5EAEB3 /* PINAnimatedImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C1B234ECBE069C915B453BFCB6A309F /* PINAnimatedImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 8481A11BD6ECCCB2C14AFDE8D4D8C5CB /* PINRemoteImageTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 701565E8DCF442E22060A747AEDD94EC /* PINRemoteImageTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 86615B3760E570EDF21B003A2DE4B301 /* PINRemoteImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F7A0C132FC1641AED504FDE95185E011 /* PINRemoteImageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B97B2B63D30083E8B8C50071D0BB64C /* PINRemoteImageBasicCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 316A5CB7FBBFF66204BBA9ED74D6718D /* PINRemoteImageBasicCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CC7FAA896A87D4104329D2AE38D2793 /* PINRemoteImageDownloadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 70033908ADBC919DDC8E992338EE9FC6 /* PINRemoteImageDownloadTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D901A2439A3A69471E536E103A7A36C /* PINImage+WebP.h in Headers */ = {isa = PBXBuildFile; fileRef = 295EBEA2FCD50E4DB46A92B81F89356F /* PINImage+WebP.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8FAAB8F0396F678083F107E18562FDA8 /* FLAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 5282B390A785F0765C0FBE4FDAFC6EDE /* FLAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 906B8995E31354FFCB1E97A0AF6583BC /* PINMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 19230B0BE960DCC6260E0AE5F8D79D7E /* PINMemoryCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 91EBC9062FB3791ED80EDC278B507413 /* PINImage+WebP.m in Sources */ = {isa = PBXBuildFile; fileRef = 265EFCA27F8B3DFAF50C3180FC4DAC25 /* PINImage+WebP.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - 920B39F0E5F3A2BF51DC65B31D17F061 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */; }; - 94D880AC12F7FBAB7F27D2BBA9CBB53E /* DACircularProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CA3936DF3971E64A9F88E6080DAAB65 /* DACircularProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98BE25B80E1451F5A9126EA80B3C50FC /* PINRemoteImageProcessorTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3024C2D4879D18CA790793CFF118BA80 /* PINRemoteImageProcessorTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9BE724C48852B870CFBC89A53A5DB1EF /* FLAnimatedImageView+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DF2AE5611D91286E2B7FC972C95BB34 /* FLAnimatedImageView+PINRemoteImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9DC4CFD80CD8AF3CD037C699105E010D /* PINCache+PINRemoteImageCaching.m in Sources */ = {isa = PBXBuildFile; fileRef = EA04BFF51A241F303647865553F8D3B2 /* PINCache+PINRemoteImageCaching.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - A3A46156C9FCE04957F55EA1D35B8B36 /* DACircularProgress-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 823CCEB2BA360CD17AF1707F8C0F04F9 /* DACircularProgress-dummy.m */; }; - A589C2AAEEC55339FFC90231BAAEB896 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */; }; - AD07BFBFB1755108A4972679ADD69385 /* PINImage+DecodedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BDB5CCFB7AA2FCB75211CE93878CDD /* PINImage+DecodedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - AFF08577BC3807DCF8FC72F1C2C48AAC /* PINCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EF52EC48C2CF12A2C5861295E69FC57 /* PINCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3550A4DAD326329DFA27C0F362C603E /* FLAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F7960B436E6BB799AF9499A48B67E1 /* FLAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C23657B0710AE187185AB686C4682162 /* DALabeledCircularProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6207745A3A1B0ED4C20016B02E1B423A /* DALabeledCircularProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C2C0D9895744B427E899166EF8C60A75 /* PINImageView+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 083B5FCEE6A7BE85EBB1EB4155AF5E3A /* PINImageView+PINRemoteImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C45E86FC59C190C76CF9F2D3B7717149 /* PINAlternateRepresentationProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = E2780DAEAF80B0ACDEA7E7A0753B3448 /* PINAlternateRepresentationProvider.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - CA2D87374F251FCEFCD395C1D7FE7C14 /* PINAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = CA6F7A32E1DEE5C500F58E235CCF5FF3 /* PINAnimatedImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D30B252BA51F3CBB595730D089EA03E3 /* PINRemoteImageCallbacks.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC93DD33C6E74578971EFC4450D8373 /* PINRemoteImageCallbacks.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - D7C8C74DC13E7B14589293C2ED27084C /* PINMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = BFAFAF3C8C80287DAEB5FE6C58D74AC6 /* PINMemoryCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - DAC392BCA0E74AE7058BE41C81F49B1A /* PINCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E857537D8093A485EBFE9E2DDBDBD637 /* PINCache-dummy.m */; }; - E04AE38DC88A86C6E76CEE8CF3317D2C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */; }; - E258027B79964DC37705E6FBDEB2A781 /* FLAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A30010DEB8ABEEBA2DD5FAEF03B2B8B /* FLAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - E2E352503FE37DE43747B532521277E1 /* PINRemoteLock.m in Sources */ = {isa = PBXBuildFile; fileRef = A796A80E82352C272B87C4DCDC23555D /* PINRemoteLock.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; - E3ED6DBD13F491C899A15C35C05C69B8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */; }; - E610527E4AE2E75B1F57AFAC42B4F99D /* PINDataTaskOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 561B0E75336C6CD965D19D9A8AA1AD76 /* PINDataTaskOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EB74D07B265ECD35D7A58174C71226E2 /* DACircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = A233742EE6DA45C45D982D0316D3284D /* DACircularProgressView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; - EBA586FFE5A67CC3057EC4FBE99D16EF /* PINAlternateRepresentationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = D16FACF71696201CB4004CD73ACAD88A /* PINAlternateRepresentationProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FBB4D9371221EBA6BA69408E33A83D5B /* PINRemoteImageManagerResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB763E8E4485C9C0ABB9A73D27CA026 /* PINRemoteImageManagerResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 049F2463CB9C37EF2854761E8888CCE3 /* PINRemoteImageTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 839383219A491590DE39F12FDA42B21C /* PINRemoteImageTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 0B235099DFA61362AEA467044B319448 /* PINRemoteImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 59F0AC6FB170A5CB5742915B2C4AF915 /* PINRemoteImage-dummy.m */; }; + 0F43026EB93ECF66B39EDA40E07873CE /* PINRemoteImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F5591A6A564570B56C8C75D0D622704B /* PINRemoteImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 10BEB12285521DD3EFCC88276FE2788A /* PINDiskCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C50809AF1DB9BC4ED4C811482B6AFD6 /* PINDiskCache.m */; settings = {COMPILER_FLAGS = "-fobjc-arc-exceptions -DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks -DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 132EA333280E0D76CA900578B47D5B72 /* PINDataTaskOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D5E033471170876D28572F01975363 /* PINDataTaskOperation.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1463FDCFD852A4FC5FEBD4128966403C /* PINRemoteImageDownloadTask.m in Sources */ = {isa = PBXBuildFile; fileRef = D5399C7937D90B915376ABECE65A94D4 /* PINRemoteImageDownloadTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1880066C9C29E5B9E73ABD5A95622262 /* PINProgressiveImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9059BBF29F80664DD5235FB613A1E9FA /* PINProgressiveImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 1C99674D9EE3821F0460C06E86EBAF51 /* PINRemoteImageMemoryContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB49C7DB81E8A9AEC6AFEA1FA522FF8 /* PINRemoteImageMemoryContainer.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 242BCE2D0D0BAFAC3BA670702347A42D /* PINRemoteImageBasicCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E50EB4588E4A7E72B5A88E01ABA32BE /* PINRemoteImageBasicCache.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 275DDD3C68266A2E6769F3C8DDD00AEF /* PINRemoteLock.h in Headers */ = {isa = PBXBuildFile; fileRef = 5746B007F4AE310DF17B0885F60D0D4F /* PINRemoteLock.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2B5FEA8377B267CE91653EF5FBB856FF /* FLAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 7413F7EAE39AD54CBB2FF9354D3F3112 /* FLAnimatedImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2F4045CA5D0C05E8A7106177C56CBBB6 /* PINCache+PINRemoteImageCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AD53A1C49BC6EF664295D42703805DB /* PINCache+PINRemoteImageCaching.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2FDA48DA7C3413C822347E93A52A2ED7 /* FLAnimatedImageView+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A0AB560A8A9AE53AA05683E1E5AB570 /* FLAnimatedImageView+PINRemoteImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 326E6BCE9F9DBFA12D1EB2488A68E28C /* PINProgressiveImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B07BE68281E325A858BEFEC72B7D28E2 /* PINProgressiveImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 38CC39A456F1D38CD4CDF6FBAF5FC93D /* PINRemoteImageProcessorTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 78125BF1CFFD960C7A4089B8BEB0F312 /* PINRemoteImageProcessorTask.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 3A80E6D6BCF67A75A5906172F667EC52 /* PINAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 91F8FA5874A43B1E57152B78A86CB8AA /* PINAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 3BF30A88E8D88CB73657B9E55E5D15E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */; }; + 3CB54645F630095EA50CD3AAE52CC30C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */; }; + 3F1E4EA667FD71A51DCC612528309582 /* Nullability.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AD8E136BD52D9EFDFC546E4F79BBD2D /* Nullability.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3FA3597678124B3AC54F07C8C2B8D061 /* PINURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B4EB20A28BACC43DB60114E8E10C34C5 /* PINURLSessionManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 453D9611C2E6C5BB6E4779251572A900 /* NSData+ImageDetectors.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AC936B6085337856FEC39109E880A8 /* NSData+ImageDetectors.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 479037B3A88BBD0C34D5DC1DCBB84C83 /* PINOperationGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 863CB42056449E0753627A2B5C8CC05D /* PINOperationGroup.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 47926E99C6D315E56B2E93849031812A /* PINRemoteImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E8F8C7994B4A99FBB4569EF0227B6E50 /* PINRemoteImageManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 49D5E5A8D1D258D35E07EB2A7E016FE8 /* PINButton+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 533B4A9D80CF95A03B30A44AEF42D736 /* PINButton+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 4C06F5DF8152D7A7964E7FAB6D324E79 /* PINOperationQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B3B0F57636865D26E791EC72573A18BC /* PINOperationQueue.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 534FBD8D0E92F8D5A4A7FED6F0033F27 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */; }; + 54F0A238489A8D6DF7B44EA9ACA4C219 /* FLAnimatedImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 935AA2A62F008455766C4882A0F0AF9F /* FLAnimatedImageView.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 579CA865D495CC6A4B3B2C60C950C1CB /* PINCacheObjectSubscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = E86544A2E55E08CB4E36DD726FF7CFD2 /* PINCacheObjectSubscripting.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5C9AA2A60B07AA4EE36209B878362A23 /* FLAnimatedImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76E45DBD483EAFE6DCE1362D310DAA20 /* FLAnimatedImage-dummy.m */; }; + 5CBCB57BB09EACE282C5CF9ACC1C2721 /* PINURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 899AE5D0B4029A0D4427C87993F79A72 /* PINURLSessionManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5E99A6B10D880E611FFEC8E1D686095E /* PINRemoteImageCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = DEA75279B09BBBFF4BCF21E566758E24 /* PINRemoteImageCaching.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6036CFE504D47F783C5EE436F72610D3 /* PINAnimatedImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B764FA5B0C2A6E0A8E3D6ABF77DF904 /* PINAnimatedImageManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 65BED53A5C898DED91F0311867484160 /* PINMemoryCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 47595EA5663CE8920CFB20A2C76E3C96 /* PINMemoryCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6F077C3ECD0A7F2902EF7D4499C1397B /* PINImageView+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C2F2BBC8159540335CD9B7090CF91FC /* PINImageView+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7013832B5C69B147A73EB70472678828 /* PINRemoteImageManagerResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A566A2D0EBE0217A5CE9949824133968 /* PINRemoteImageManagerResult.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 72420619A4622DB71CB601F410F262E1 /* PINAlternateRepresentationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 90BD2AD51BA848228192569376C946A6 /* PINAlternateRepresentationProvider.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 72E34A5186553870C8C033541CB2FAF7 /* PINRemoteImageCategoryManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C3BCD60213393BAE5D0FCADDDF26C3A7 /* PINRemoteImageCategoryManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 75AF3BEAD48E00BCCBA27FD7C3F533B5 /* PINRemoteImageMemoryContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = E49BF8E96AECEECF11F41895C749012F /* PINRemoteImageMemoryContainer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 7694A63FC4F6ACF0198BB0D669A61A7B /* FLAnimatedImageView+PINRemoteImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E40CF846E72E9B3332471E3AFC0EAF7 /* FLAnimatedImageView+PINRemoteImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 77AC176D88B0888A14BE613CD68F6EB7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA9A11E805006AAC2470655C17579EC3 /* CoreGraphics.framework */; }; + 7B3D92194728ECD576FA49FC4EF88107 /* PINCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 8555BB7B7ABCC7B4DC4D672CAB3F64D3 /* PINCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 81F34A20418613F766AB0E9CA9048C07 /* PINRemoteImageProcessorTask.h in Headers */ = {isa = PBXBuildFile; fileRef = C4BA9B04E4BABB5579654AB66C27C998 /* PINRemoteImageProcessorTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8289A8671C5C1308D30B2765B370EBAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */; }; + 83E9DFB76FA30A776E39905B0D5EAEB3 /* PINAnimatedImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C6141402E154C6E1CBE236A5783E29EC /* PINAnimatedImageManager.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 86C5EAAB584231ACF881EF3DB40DF325 /* PINImage+WebP.h in Headers */ = {isa = PBXBuildFile; fileRef = C70175BDBAB05F8F89F4746F32855F77 /* PINImage+WebP.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8FAAB8F0396F678083F107E18562FDA8 /* FLAnimatedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4711F770A08A509BD26F8DA3628F3284 /* FLAnimatedImageView.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 91EBC9062FB3791ED80EDC278B507413 /* PINImage+WebP.m in Sources */ = {isa = PBXBuildFile; fileRef = D20574EEA65F327AE8E1BEDB42EAF538 /* PINImage+WebP.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + 9206DB18B070593FF1BB29C3A9538D6A /* PINDataTaskOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F9B711ED853147A9A6242D37A7700E4B /* PINDataTaskOperation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 955EF44D88CDFBD32B23CB46CC884620 /* PINRemoteImageBasicCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A6696E17AA51903769427244D110DA5 /* PINRemoteImageBasicCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B51DED9F2800F5715AC998686A4DEBE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F10FFF67C9EEC9294318E395399CE9 /* QuartzCore.framework */; }; + 9CB611EB70BA8A8ED414CFA9C7EAC55E /* Pods-BFRImageViewer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A509816A23E2B2BE95D0383193EDF064 /* Pods-BFRImageViewer-dummy.m */; }; + 9D4DE7BCD4B6C27ED95923B79663E4F7 /* PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F585BAB6CBD4C42F3094347A11317CE /* PINRemoteImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9DC4CFD80CD8AF3CD037C699105E010D /* PINCache+PINRemoteImageCaching.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DDF7BF8758730D80523125F511943B /* PINCache+PINRemoteImageCaching.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + A16F129FC118F57DB82AA6956D1E976C /* PINRemoteImageCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = DFA5D81C6C4104421E85D785F9E51236 /* PINRemoteImageCallbacks.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A37779519A462F15EB54382CF8968539 /* PINOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A4CD651AF555E390638EADA7B2469D9 /* PINOperationQueue.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A6DB273127DE9ED9228113F04D3C4DDB /* PINImageView+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = C14C54A43AB4BB5CB643910272390DF5 /* PINImageView+PINRemoteImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A912FCB20C763BE20989F5C09A948B8D /* PINRemoteImageDownloadTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 810505EE437BFF25CD946B0BEB6DE0AC /* PINRemoteImageDownloadTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AD07BFBFB1755108A4972679ADD69385 /* PINImage+DecodedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F5667A34113CDAE2F4326DADCA5A792 /* PINImage+DecodedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + B075308F8E1EA06A6568E807B07769F7 /* PINCache.h in Headers */ = {isa = PBXBuildFile; fileRef = BF1671AAF8402EEFF4B515C0D33E12FD /* PINCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B19E9E517EB42086342DC598C6624EA4 /* PINOperationGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = B9135B89A11DA98593B7927AFDC62458 /* PINOperationGroup.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B748AE8AC884F26887654464C3EF9C67 /* NSData+ImageDetectors.h in Headers */ = {isa = PBXBuildFile; fileRef = 394B8D3369EAA1D998F7B116232414BD /* NSData+ImageDetectors.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B7C55C9287CBB998BE1EDEAF79278456 /* PINDiskCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D3116B74292B10422EA53E10A27E7E9A /* PINDiskCache.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BDF3344434AB306B3C261F6B39D9FAEC /* PINButton+PINRemoteImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C5D9E7589C2EC5BA697AA348FFB4155 /* PINButton+PINRemoteImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BF91C44587928D603AD6EB23E9286537 /* PINRemoteImageCategoryManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C78B78BFA7A65E03DBC28E683B5453 /* PINRemoteImageCategoryManager.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C0BDEA8E05F2849128437172991A41DB /* PINAnimatedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = B834F97A5AD88967BD56F9A33DCF8B9F /* PINAnimatedImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + C45E86FC59C190C76CF9F2D3B7717149 /* PINAlternateRepresentationProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = C647F0E28F3BD12760AF52E213048F7D /* PINAlternateRepresentationProvider.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + C8B4CA357C127C1C794AEE8DBC7CEFB4 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EFE57FA8945D65CE2671124F81F577 /* MobileCoreServices.framework */; }; + CD9899A12EF91880166832390843FBD2 /* PINImage+DecodedImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 144C7F0EE25896DFE8D732BC5AB2BD56 /* PINImage+DecodedImage.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D30B252BA51F3CBB595730D089EA03E3 /* PINRemoteImageCallbacks.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C7B17CED99FE839F6DCCB59DA52CE3E /* PINRemoteImageCallbacks.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + D7C8C74DC13E7B14589293C2ED27084C /* PINMemoryCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 99E069F1B3A62FD5AA9D7B4C49B04508 /* PINMemoryCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0 -w -Xanalyzer -analyzer-disable-all-checks"; }; }; + DAC392BCA0E74AE7058BE41C81F49B1A /* PINCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C921299FBC593448E1BF50A13FD158 /* PINCache-dummy.m */; }; + DB634795DCF67E2EAE0CA1F07D421F22 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 481D894B89E90DADA5583C7982CC9CEC /* Accelerate.framework */; }; + DDA640DE83B83C43285ABA7CF32FD69E /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89D34AC91B82BB6BB8D331E9B4AD1F18 /* ImageIO.framework */; }; + DDF90CD81C662191B3F0C4FA07CD7ED1 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89D34AC91B82BB6BB8D331E9B4AD1F18 /* ImageIO.framework */; }; + E258027B79964DC37705E6FBDEB2A781 /* FLAnimatedImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 638E96B2763B4E9521ED8E1DB2E55FE6 /* FLAnimatedImage.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + E2E352503FE37DE43747B532521277E1 /* PINRemoteLock.m in Sources */ = {isa = PBXBuildFile; fileRef = 36A3B3FEF825B0B28528230C7F0439A2 /* PINRemoteLock.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; }; + EABA0DA8921DE31AE52D735E241A49AB /* PINRemoteImageManagerResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DC698E538C35C34BCE6010B1C266D22F /* PINRemoteImageManagerResult.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F422A09440A1D2C53030F6EE7B42662C /* PINRemoteImageMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = A799AFE6CBCFC9A1FF761C23CA0CEC11 /* PINRemoteImageMacros.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FA62DF0115A0039CD8A7448AD912377E /* PINRemoteImageTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8E00D58E8EC4705CAD090EAABA184A /* PINRemoteImageTask.h */; settings = {ATTRIBUTES = (Project, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 07A7255A2F8C949D77A28CC3B237C423 /* PBXContainerItemProxy */ = { + 3C84573ED6D5D71C36AEEADC34F56C48 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = C791F0A928C1A8FE97074DFC9ACF4E75; - remoteInfo = DACircularProgress; + remoteGlobalIDString = 23F5B673D25F9E1F1ABB3F8AA0302A2C; + remoteInfo = PINRemoteImage; }; 70B1ABF786DE4A9DA7BFB8630A76B08C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -110,13 +103,6 @@ remoteGlobalIDString = 53F8571E2D572C4069860E38654A566A; remoteInfo = FLAnimatedImage; }; - 8548DE77804D1917C3E3D6CFB58555EC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 23F5B673D25F9E1F1ABB3F8AA0302A2C; - remoteInfo = PINRemoteImage; - }; 9218F44CF623829E53E12B8130E772CF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -124,14 +110,14 @@ remoteGlobalIDString = C3BAF7A79AC3D9AD212C3F6B700AEC77; remoteInfo = PINCache; }; - A7DA46F372781F41F9A351E050C46048 /* PBXContainerItemProxy */ = { + 9351D82F24EEAEE947D4E4C760F41EDF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 53F8571E2D572C4069860E38654A566A; remoteInfo = FLAnimatedImage; }; - C7616F81E207D20DE6291BC34BD66CFC /* PBXContainerItemProxy */ = { + BC06A7610C4806E3D1ED70D750FAAAE5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; @@ -142,122 +128,105 @@ /* Begin PBXFileReference section */ 005E0B06483BF6325933690AD3CF847F /* Pods-BFRImageViewer.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BFRImageViewer.release.xcconfig"; sourceTree = ""; }; - 0309660013227897705A6972AA1846E8 /* libPINRemoteImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPINRemoteImage.a; path = libPINRemoteImage.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 074996F7C2542EE1A249798D2105D4BB /* PINURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINURLSessionManager.m; path = Pod/Classes/PINURLSessionManager.m; sourceTree = ""; }; - 083B5FCEE6A7BE85EBB1EB4155AF5E3A /* PINImageView+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImageView+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/PINImageView+PINRemoteImage.h"; sourceTree = ""; }; - 0BAA3399AE65AB72F58516054C757E7C /* PINRemoteImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageManager.m; path = Pod/Classes/PINRemoteImageManager.m; sourceTree = ""; }; - 0C1B234ECBE069C915B453BFCB6A309F /* PINAnimatedImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAnimatedImageManager.m; path = Pod/Classes/PINAnimatedImageManager.m; sourceTree = ""; }; - 0FB763E8E4485C9C0ABB9A73D27CA026 /* PINRemoteImageManagerResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageManagerResult.h; path = Pod/Classes/PINRemoteImageManagerResult.h; sourceTree = ""; }; + 08C78B78BFA7A65E03DBC28E683B5453 /* PINRemoteImageCategoryManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCategoryManager.h; path = Pod/Classes/PINRemoteImageCategoryManager.h; sourceTree = ""; }; 12BDE0C2ED3D6A1AD1020A56B0495FB7 /* Pods-BFRImageViewer-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BFRImageViewer-frameworks.sh"; sourceTree = ""; }; - 182B706E38C635452A4EF3E2B7318B42 /* FLAnimatedImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.xcconfig; sourceTree = ""; }; - 191E9BCB37A6A3CB72436798452D361F /* PINAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAnimatedImage.m; path = Pod/Classes/PINAnimatedImage.m; sourceTree = ""; }; - 19230B0BE960DCC6260E0AE5F8D79D7E /* PINMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINMemoryCache.h; path = PINCache/PINMemoryCache.h; sourceTree = ""; }; - 1983BDC107FFDC16EB402E85A2D57DA6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 1D39D4FEF51CE413AF46DED66D289AA7 /* libFLAnimatedImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libFLAnimatedImage.a; path = libFLAnimatedImage.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 20D276F2D4D7BC24F420CCD2501DF7E7 /* PINButton+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINButton+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/PINButton+PINRemoteImage.m"; sourceTree = ""; }; - 24D8CC324F1C3E9C512AC1223F0E58A4 /* FLAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImageView.h; path = FLAnimatedImage/FLAnimatedImageView.h; sourceTree = ""; }; - 265EFCA27F8B3DFAF50C3180FC4DAC25 /* PINImage+WebP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImage+WebP.m"; path = "Pod/Classes/Categories/PINImage+WebP.m"; sourceTree = ""; }; - 295EBEA2FCD50E4DB46A92B81F89356F /* PINImage+WebP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImage+WebP.h"; path = "Pod/Classes/Categories/PINImage+WebP.h"; sourceTree = ""; }; - 2E3991D421DE0457198E8D33FC007A77 /* PINRemoteImageCategoryManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageCategoryManager.m; path = Pod/Classes/PINRemoteImageCategoryManager.m; sourceTree = ""; }; - 3024C2D4879D18CA790793CFF118BA80 /* PINRemoteImageProcessorTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageProcessorTask.h; path = Pod/Classes/PINRemoteImageProcessorTask.h; sourceTree = ""; }; - 30DED4EB2FE46426F659CB946496F900 /* PINCache.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PINCache.xcconfig; sourceTree = ""; }; - 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 316A5CB7FBBFF66204BBA9ED74D6718D /* PINRemoteImageBasicCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageBasicCache.h; path = Pod/Classes/PINRemoteImageBasicCache.h; sourceTree = ""; }; - 38956D2B09407A01422332281DB769ED /* PINRemoteImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PINRemoteImage-prefix.pch"; sourceTree = ""; }; - 389F30E9C0ABD780CC83836EFB44C3E3 /* PINCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINCache.m; path = PINCache/PINCache.m; sourceTree = ""; }; - 38CC5AB2396426F0F8696ABB546F81BC /* NSData+ImageDetectors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageDetectors.m"; path = "Pod/Classes/Categories/NSData+ImageDetectors.m"; sourceTree = ""; }; - 3E0A008B1F80845CEFB8508B7AB1FC19 /* PINImage+DecodedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImage+DecodedImage.h"; path = "Pod/Classes/Categories/PINImage+DecodedImage.h"; sourceTree = ""; }; - 3E79D4A0108A1439C899ABE224DD13F0 /* PINRemoteImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PINRemoteImage.xcconfig; sourceTree = ""; }; - 3EF52EC48C2CF12A2C5861295E69FC57 /* PINCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINCache.h; path = PINCache/PINCache.h; sourceTree = ""; }; - 3FB1199AC79D0D2FA24A7FAB45B6B470 /* PINRemoteImageDownloadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageDownloadTask.m; path = Pod/Classes/PINRemoteImageDownloadTask.m; sourceTree = ""; }; - 42839CF5D2E564467A2CE348927C03FD /* PINOperationQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINOperationQueue.m; path = PINCache/PINOperationQueue.m; sourceTree = ""; }; - 442F845091462489215DD1A5CE912D8D /* PINRemoteImageProcessorTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageProcessorTask.m; path = Pod/Classes/PINRemoteImageProcessorTask.m; sourceTree = ""; }; - 5128EF6B0C02C4CE86813C589FCA1537 /* PINProgressiveImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINProgressiveImage.m; path = Pod/Classes/PINProgressiveImage.m; sourceTree = ""; }; - 51EBE843F094794D72B34F50B5B21D30 /* PINCacheObjectSubscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINCacheObjectSubscripting.h; path = PINCache/PINCacheObjectSubscripting.h; sourceTree = ""; }; - 5282B390A785F0765C0FBE4FDAFC6EDE /* FLAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImageView.m; path = FLAnimatedImage/FLAnimatedImageView.m; sourceTree = ""; }; - 529A5A10F4736882F96E54559AD399DD /* PINRemoteLock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteLock.h; path = Pod/Classes/PINRemoteLock.h; sourceTree = ""; }; - 561B0E75336C6CD965D19D9A8AA1AD76 /* PINDataTaskOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINDataTaskOperation.h; path = Pod/Classes/PINDataTaskOperation.h; sourceTree = ""; }; - 5832875C97940435F312D1CA8800C9A9 /* PINOperationGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINOperationGroup.m; path = PINCache/PINOperationGroup.m; sourceTree = ""; }; - 58387257DABB5ED468932C2A0C1FD2B1 /* libPods-BFRImageViewer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-BFRImageViewer.a"; path = "libPods-BFRImageViewer.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5CE89D4493E7E477CE23D5C236671247 /* FLAnimatedImageView+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FLAnimatedImageView+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/FLAnimatedImageView+PINRemoteImage.m"; sourceTree = ""; }; - 6207745A3A1B0ED4C20016B02E1B423A /* DALabeledCircularProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DALabeledCircularProgressView.h; path = DACircularProgress/DALabeledCircularProgressView.h; sourceTree = ""; }; - 6B6A549B6EB4B9455688FFBBCB9F9970 /* NSData+ImageDetectors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageDetectors.h"; path = "Pod/Classes/Categories/NSData+ImageDetectors.h"; sourceTree = ""; }; + 144C7F0EE25896DFE8D732BC5AB2BD56 /* PINImage+DecodedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImage+DecodedImage.h"; path = "Pod/Classes/Categories/PINImage+DecodedImage.h"; sourceTree = ""; }; + 1C50809AF1DB9BC4ED4C811482B6AFD6 /* PINDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINDiskCache.m; path = PINCache/PINDiskCache.m; sourceTree = ""; }; + 1C7B17CED99FE839F6DCCB59DA52CE3E /* PINRemoteImageCallbacks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageCallbacks.m; path = Pod/Classes/PINRemoteImageCallbacks.m; sourceTree = ""; }; + 22C921299FBC593448E1BF50A13FD158 /* PINCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PINCache-dummy.m"; sourceTree = ""; }; + 2A4CD651AF555E390638EADA7B2469D9 /* PINOperationQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINOperationQueue.h; path = PINCache/PINOperationQueue.h; sourceTree = ""; }; + 2AADB470E3B36CA08E068C1207FF7EB4 /* PINCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PINCache-prefix.pch"; sourceTree = ""; }; + 2AD53A1C49BC6EF664295D42703805DB /* PINCache+PINRemoteImageCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINCache+PINRemoteImageCaching.h"; path = "Pod/Classes/PINCache/PINCache+PINRemoteImageCaching.h"; sourceTree = ""; }; + 36A3B3FEF825B0B28528230C7F0439A2 /* PINRemoteLock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteLock.m; path = Pod/Classes/PINRemoteLock.m; sourceTree = ""; }; + 394B8D3369EAA1D998F7B116232414BD /* NSData+ImageDetectors.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageDetectors.h"; path = "Pod/Classes/Categories/NSData+ImageDetectors.h"; sourceTree = ""; }; + 3A0AB560A8A9AE53AA05683E1E5AB570 /* FLAnimatedImageView+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FLAnimatedImageView+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/FLAnimatedImageView+PINRemoteImage.h"; sourceTree = ""; }; + 4711F770A08A509BD26F8DA3628F3284 /* FLAnimatedImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImageView.m; path = FLAnimatedImage/FLAnimatedImageView.m; sourceTree = ""; }; + 47595EA5663CE8920CFB20A2C76E3C96 /* PINMemoryCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINMemoryCache.h; path = PINCache/PINMemoryCache.h; sourceTree = ""; }; + 481D894B89E90DADA5583C7982CC9CEC /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; + 4AD8E136BD52D9EFDFC546E4F79BBD2D /* Nullability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nullability.h; path = PINCache/Nullability.h; sourceTree = ""; }; + 4C277E273DD582277FC2A3A4604C174B /* PINRemoteImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PINRemoteImage-prefix.pch"; sourceTree = ""; }; + 4E50EB4588E4A7E72B5A88E01ABA32BE /* PINRemoteImageBasicCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageBasicCache.m; path = Pod/Classes/PINRemoteImageBasicCache.m; sourceTree = ""; }; + 4E616F2C9A436C7D1BD4317387BEE2C4 /* FLAnimatedImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FLAnimatedImage.xcconfig; sourceTree = ""; }; + 4EB49C7DB81E8A9AEC6AFEA1FA522FF8 /* PINRemoteImageMemoryContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageMemoryContainer.h; path = Pod/Classes/PINRemoteImageMemoryContainer.h; sourceTree = ""; }; + 4F5667A34113CDAE2F4326DADCA5A792 /* PINImage+DecodedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImage+DecodedImage.m"; path = "Pod/Classes/Categories/PINImage+DecodedImage.m"; sourceTree = ""; }; + 533B4A9D80CF95A03B30A44AEF42D736 /* PINButton+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINButton+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/PINButton+PINRemoteImage.m"; sourceTree = ""; }; + 5746B007F4AE310DF17B0885F60D0D4F /* PINRemoteLock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteLock.h; path = Pod/Classes/PINRemoteLock.h; sourceTree = ""; }; + 59F0AC6FB170A5CB5742915B2C4AF915 /* PINRemoteImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PINRemoteImage-dummy.m"; sourceTree = ""; }; + 5C4B5476DE199AC4AE32D1F678B8D359 /* libPINRemoteImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPINRemoteImage.a; path = libPINRemoteImage.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C5D9E7589C2EC5BA697AA348FFB4155 /* PINButton+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINButton+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/PINButton+PINRemoteImage.h"; sourceTree = ""; }; + 5F585BAB6CBD4C42F3094347A11317CE /* PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImage.h; path = Pod/Classes/PINRemoteImage.h; sourceTree = ""; }; + 638E96B2763B4E9521ED8E1DB2E55FE6 /* FLAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImage.m; path = FLAnimatedImage/FLAnimatedImage.m; sourceTree = ""; }; + 65D5E033471170876D28572F01975363 /* PINDataTaskOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINDataTaskOperation.m; path = Pod/Classes/PINDataTaskOperation.m; sourceTree = ""; }; 6B7C16DC5CA28E08B4407706F6CBD367 /* Pods-BFRImageViewer.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BFRImageViewer.debug.xcconfig"; sourceTree = ""; }; - 6C18C9598A34D36462CE95B16650BAC4 /* FLAnimatedImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FLAnimatedImage-dummy.m"; sourceTree = ""; }; - 6DF2AE5611D91286E2B7FC972C95BB34 /* FLAnimatedImageView+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FLAnimatedImageView+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/FLAnimatedImageView+PINRemoteImage.h"; sourceTree = ""; }; - 6FE3BFA1489D403B9D9280717FB9103E /* PINRemoteImageCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCaching.h; path = Pod/Classes/PINRemoteImageCaching.h; sourceTree = ""; }; - 70033908ADBC919DDC8E992338EE9FC6 /* PINRemoteImageDownloadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageDownloadTask.h; path = Pod/Classes/PINRemoteImageDownloadTask.h; sourceTree = ""; }; - 701565E8DCF442E22060A747AEDD94EC /* PINRemoteImageTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageTask.h; path = Pod/Classes/PINRemoteImageTask.h; sourceTree = ""; }; - 71EB1B2B4FB89A78F3A8385813823310 /* PINRemoteImageMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageMacros.h; path = Pod/Classes/PINRemoteImageMacros.h; sourceTree = ""; }; - 78DDF89AB358BCA78E4C329077B87D37 /* PINDataTaskOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINDataTaskOperation.m; path = Pod/Classes/PINDataTaskOperation.m; sourceTree = ""; }; - 8237040CE637A87641BDF1B865061C3F /* libPINCache.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPINCache.a; path = libPINCache.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 823CCEB2BA360CD17AF1707F8C0F04F9 /* DACircularProgress-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DACircularProgress-dummy.m"; sourceTree = ""; }; - 83F7960B436E6BB799AF9499A48B67E1 /* FLAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImage.h; path = FLAnimatedImage/FLAnimatedImage.h; sourceTree = ""; }; - 8A30010DEB8ABEEBA2DD5FAEF03B2B8B /* FLAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FLAnimatedImage.m; path = FLAnimatedImage/FLAnimatedImage.m; sourceTree = ""; }; - 91ACE60A9AD347371453EED73675DDDE /* PINURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINURLSessionManager.h; path = Pod/Classes/PINURLSessionManager.h; sourceTree = ""; }; + 6E40CF846E72E9B3332471E3AFC0EAF7 /* FLAnimatedImageView+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "FLAnimatedImageView+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/FLAnimatedImageView+PINRemoteImage.m"; sourceTree = ""; }; + 7413F7EAE39AD54CBB2FF9354D3F3112 /* FLAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImage.h; path = FLAnimatedImage/FLAnimatedImage.h; sourceTree = ""; }; + 7604CAC5EF1D98120CC6C7E793B4F232 /* PINCache.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PINCache.xcconfig; sourceTree = ""; }; + 76E45DBD483EAFE6DCE1362D310DAA20 /* FLAnimatedImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FLAnimatedImage-dummy.m"; sourceTree = ""; }; + 78125BF1CFFD960C7A4089B8BEB0F312 /* PINRemoteImageProcessorTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageProcessorTask.m; path = Pod/Classes/PINRemoteImageProcessorTask.m; sourceTree = ""; }; + 7A6696E17AA51903769427244D110DA5 /* PINRemoteImageBasicCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageBasicCache.h; path = Pod/Classes/PINRemoteImageBasicCache.h; sourceTree = ""; }; + 810505EE437BFF25CD946B0BEB6DE0AC /* PINRemoteImageDownloadTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageDownloadTask.h; path = Pod/Classes/PINRemoteImageDownloadTask.h; sourceTree = ""; }; + 839383219A491590DE39F12FDA42B21C /* PINRemoteImageTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageTask.m; path = Pod/Classes/PINRemoteImageTask.m; sourceTree = ""; }; + 8555BB7B7ABCC7B4DC4D672CAB3F64D3 /* PINCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINCache.m; path = PINCache/PINCache.m; sourceTree = ""; }; + 863CB42056449E0753627A2B5C8CC05D /* PINOperationGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINOperationGroup.m; path = PINCache/PINOperationGroup.m; sourceTree = ""; }; + 899AE5D0B4029A0D4427C87993F79A72 /* PINURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINURLSessionManager.h; path = Pod/Classes/PINURLSessionManager.h; sourceTree = ""; }; + 89D34AC91B82BB6BB8D331E9B4AD1F18 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; + 8B764FA5B0C2A6E0A8E3D6ABF77DF904 /* PINAnimatedImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAnimatedImageManager.h; path = Pod/Classes/PINAnimatedImageManager.h; sourceTree = ""; }; + 8D8E00D58E8EC4705CAD090EAABA184A /* PINRemoteImageTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageTask.h; path = Pod/Classes/PINRemoteImageTask.h; sourceTree = ""; }; + 9059BBF29F80664DD5235FB613A1E9FA /* PINProgressiveImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINProgressiveImage.m; path = Pod/Classes/PINProgressiveImage.m; sourceTree = ""; }; + 90AC936B6085337856FEC39109E880A8 /* NSData+ImageDetectors.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageDetectors.m"; path = "Pod/Classes/Categories/NSData+ImageDetectors.m"; sourceTree = ""; }; + 90BD2AD51BA848228192569376C946A6 /* PINAlternateRepresentationProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAlternateRepresentationProvider.h; path = Pod/Classes/PINAlternateRepresentationProvider.h; sourceTree = ""; }; + 91F8FA5874A43B1E57152B78A86CB8AA /* PINAnimatedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAnimatedImage.m; path = Pod/Classes/PINAnimatedImage.m; sourceTree = ""; }; + 935AA2A62F008455766C4882A0F0AF9F /* FLAnimatedImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FLAnimatedImageView.h; path = FLAnimatedImage/FLAnimatedImageView.h; sourceTree = ""; }; 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 99A71E8CB50C22BC42C5CA5E2BE3B77C /* Nullability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nullability.h; path = PINCache/Nullability.h; sourceTree = ""; }; - 9BD7F6F43FB7435698D353424A2E39FE /* FLAnimatedImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-prefix.pch"; sourceTree = ""; }; - 9CA3936DF3971E64A9F88E6080DAAB65 /* DACircularProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DACircularProgressView.h; path = DACircularProgress/DACircularProgressView.h; sourceTree = ""; }; - A233742EE6DA45C45D982D0316D3284D /* DACircularProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DACircularProgressView.m; path = DACircularProgress/DACircularProgressView.m; sourceTree = ""; }; - A3F4BF5D4BC7B2C3529343DA28C0F2C0 /* PINRemoteImageManagerResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageManagerResult.m; path = Pod/Classes/PINRemoteImageManagerResult.m; sourceTree = ""; }; + 951D8A65055576FE800383C51BDECCF7 /* libPods-BFRImageViewer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-BFRImageViewer.a"; path = "libPods-BFRImageViewer.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 99E069F1B3A62FD5AA9D7B4C49B04508 /* PINMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINMemoryCache.m; path = PINCache/PINMemoryCache.m; sourceTree = ""; }; + 9C2F2BBC8159540335CD9B7090CF91FC /* PINImageView+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImageView+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/PINImageView+PINRemoteImage.m"; sourceTree = ""; }; A509816A23E2B2BE95D0383193EDF064 /* Pods-BFRImageViewer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BFRImageViewer-dummy.m"; sourceTree = ""; }; - A796A80E82352C272B87C4DCDC23555D /* PINRemoteLock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteLock.m; path = Pod/Classes/PINRemoteLock.m; sourceTree = ""; }; - AD448BABA9CF88D751524B540624A815 /* DACircularProgress.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DACircularProgress.xcconfig; sourceTree = ""; }; - B2AF52CF41D0CA688A271203B9A49633 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - B86555A9202517817259C5E63A6DE7B7 /* PINRemoteImageCallbacks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCallbacks.h; path = Pod/Classes/PINRemoteImageCallbacks.h; sourceTree = ""; }; - BFAFAF3C8C80287DAEB5FE6C58D74AC6 /* PINMemoryCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINMemoryCache.m; path = PINCache/PINMemoryCache.m; sourceTree = ""; }; - BFEBABA89AF4C39A7829A6BAA79D7AA4 /* PINOperationQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINOperationQueue.h; path = PINCache/PINOperationQueue.h; sourceTree = ""; }; - C15FA3DFF2DBA22F8684C6B0E4A942D4 /* PINOperationGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINOperationGroup.h; path = PINCache/PINOperationGroup.h; sourceTree = ""; }; - C4AA28ADA0965F7AC035C5E25C4EC583 /* PINRemoteImageTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageTask.m; path = Pod/Classes/PINRemoteImageTask.m; sourceTree = ""; }; - C6021F9CBBA360A8D28CD13C52316A02 /* PINImageView+PINRemoteImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImageView+PINRemoteImage.m"; path = "Pod/Classes/Image Categories/PINImageView+PINRemoteImage.m"; sourceTree = ""; }; - C9916B2E855D65ECAE53C892FD9DE215 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - CA6F7A32E1DEE5C500F58E235CCF5FF3 /* PINAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAnimatedImage.h; path = Pod/Classes/PINAnimatedImage.h; sourceTree = ""; }; - CC74E10F063D4E772EEBBD4A9B80F784 /* DALabeledCircularProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DALabeledCircularProgressView.m; path = DACircularProgress/DALabeledCircularProgressView.m; sourceTree = ""; }; - CD6749EA98C452378EDD4F9E1878EB07 /* PINRemoteImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PINRemoteImage-dummy.m"; sourceTree = ""; }; - CEC9C6B5E9671DC798A27854EA600DEC /* PINRemoteImageCategoryManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCategoryManager.h; path = Pod/Classes/PINRemoteImageCategoryManager.h; sourceTree = ""; }; - D0BDB5CCFB7AA2FCB75211CE93878CDD /* PINImage+DecodedImage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImage+DecodedImage.m"; path = "Pod/Classes/Categories/PINImage+DecodedImage.m"; sourceTree = ""; }; - D12B08F44BA0C726C5BCB2412F62B8E9 /* PINDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINDiskCache.h; path = PINCache/PINDiskCache.h; sourceTree = ""; }; - D16FACF71696201CB4004CD73ACAD88A /* PINAlternateRepresentationProvider.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAlternateRepresentationProvider.h; path = Pod/Classes/PINAlternateRepresentationProvider.h; sourceTree = ""; }; - D216A1AE97520D71691F2F18F73CCE80 /* PINButton+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINButton+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/PINButton+PINRemoteImage.h"; sourceTree = ""; }; + A566A2D0EBE0217A5CE9949824133968 /* PINRemoteImageManagerResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageManagerResult.m; path = Pod/Classes/PINRemoteImageManagerResult.m; sourceTree = ""; }; + A799AFE6CBCFC9A1FF761C23CA0CEC11 /* PINRemoteImageMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageMacros.h; path = Pod/Classes/PINRemoteImageMacros.h; sourceTree = ""; }; + A9DDF7BF8758730D80523125F511943B /* PINCache+PINRemoteImageCaching.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINCache+PINRemoteImageCaching.m"; path = "Pod/Classes/PINCache/PINCache+PINRemoteImageCaching.m"; sourceTree = ""; }; + A9F10FFF67C9EEC9294318E395399CE9 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + B07BE68281E325A858BEFEC72B7D28E2 /* PINProgressiveImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINProgressiveImage.h; path = Pod/Classes/PINProgressiveImage.h; sourceTree = ""; }; + B3B0F57636865D26E791EC72573A18BC /* PINOperationQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINOperationQueue.m; path = PINCache/PINOperationQueue.m; sourceTree = ""; }; + B4EB20A28BACC43DB60114E8E10C34C5 /* PINURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINURLSessionManager.m; path = Pod/Classes/PINURLSessionManager.m; sourceTree = ""; }; + B834F97A5AD88967BD56F9A33DCF8B9F /* PINAnimatedImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAnimatedImage.h; path = Pod/Classes/PINAnimatedImage.h; sourceTree = ""; }; + B9135B89A11DA98593B7927AFDC62458 /* PINOperationGroup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINOperationGroup.h; path = PINCache/PINOperationGroup.h; sourceTree = ""; }; + B9BD431F4A603ABB14BD66BA0A51FD46 /* libPINCache.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPINCache.a; path = libPINCache.a; sourceTree = BUILT_PRODUCTS_DIR; }; + BDEC0F1AF77A4CBEC4BC66ECA85314A7 /* PINRemoteImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PINRemoteImage.xcconfig; sourceTree = ""; }; + BF1671AAF8402EEFF4B515C0D33E12FD /* PINCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINCache.h; path = PINCache/PINCache.h; sourceTree = ""; }; + BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + C14C54A43AB4BB5CB643910272390DF5 /* PINImageView+PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImageView+PINRemoteImage.h"; path = "Pod/Classes/Image Categories/PINImageView+PINRemoteImage.h"; sourceTree = ""; }; + C3BCD60213393BAE5D0FCADDDF26C3A7 /* PINRemoteImageCategoryManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageCategoryManager.m; path = Pod/Classes/PINRemoteImageCategoryManager.m; sourceTree = ""; }; + C4BA9B04E4BABB5579654AB66C27C998 /* PINRemoteImageProcessorTask.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageProcessorTask.h; path = Pod/Classes/PINRemoteImageProcessorTask.h; sourceTree = ""; }; + C6141402E154C6E1CBE236A5783E29EC /* PINAnimatedImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAnimatedImageManager.m; path = Pod/Classes/PINAnimatedImageManager.m; sourceTree = ""; }; + C647F0E28F3BD12760AF52E213048F7D /* PINAlternateRepresentationProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAlternateRepresentationProvider.m; path = Pod/Classes/PINAlternateRepresentationProvider.m; sourceTree = ""; }; + C70175BDBAB05F8F89F4746F32855F77 /* PINImage+WebP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINImage+WebP.h"; path = "Pod/Classes/Categories/PINImage+WebP.h"; sourceTree = ""; }; + C9A0132257AB3D12D27B5262AF409A78 /* FLAnimatedImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FLAnimatedImage-prefix.pch"; sourceTree = ""; }; + C9EFE57FA8945D65CE2671124F81F577 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; + D20574EEA65F327AE8E1BEDB42EAF538 /* PINImage+WebP.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINImage+WebP.m"; path = "Pod/Classes/Categories/PINImage+WebP.m"; sourceTree = ""; }; + D3116B74292B10422EA53E10A27E7E9A /* PINDiskCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINDiskCache.h; path = PINCache/PINDiskCache.h; sourceTree = ""; }; D31C1FE368D8FCB180BB58C72DFCC868 /* Pods-BFRImageViewer-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BFRImageViewer-acknowledgements.markdown"; sourceTree = ""; }; - D37F4FF2691F5AD14074D8A1C9956B1A /* PINRemoteImageMemoryContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageMemoryContainer.m; path = Pod/Classes/PINRemoteImageMemoryContainer.m; sourceTree = ""; }; - D70835E683638FC424642AB5FCC6D18B /* DACircularProgress-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DACircularProgress-prefix.pch"; sourceTree = ""; }; - D8764C9D9ABE0381B7100252680B7F69 /* libDACircularProgress.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libDACircularProgress.a; path = libDACircularProgress.a; sourceTree = BUILT_PRODUCTS_DIR; }; + D5399C7937D90B915376ABECE65A94D4 /* PINRemoteImageDownloadTask.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageDownloadTask.m; path = Pod/Classes/PINRemoteImageDownloadTask.m; sourceTree = ""; }; DAFB1E21441EA3CA147805B2EE9986B6 /* Pods-BFRImageViewer-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BFRImageViewer-acknowledgements.plist"; sourceTree = ""; }; - DCC93DD33C6E74578971EFC4450D8373 /* PINRemoteImageCallbacks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageCallbacks.m; path = Pod/Classes/PINRemoteImageCallbacks.m; sourceTree = ""; }; + DC698E538C35C34BCE6010B1C266D22F /* PINRemoteImageManagerResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageManagerResult.h; path = Pod/Classes/PINRemoteImageManagerResult.h; sourceTree = ""; }; DE910A2BF4F3B96B81B163DD978709E2 /* Pods-BFRImageViewer-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BFRImageViewer-resources.sh"; sourceTree = ""; }; - E1EF55610D4A5B0010ACC32D2083E788 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - E2780DAEAF80B0ACDEA7E7A0753B3448 /* PINAlternateRepresentationProvider.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINAlternateRepresentationProvider.m; path = Pod/Classes/PINAlternateRepresentationProvider.m; sourceTree = ""; }; - E516036390BA561D4132699F80343C87 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Accelerate.framework; sourceTree = DEVELOPER_DIR; }; - E80DE5A90FFAD4252D7754F54948C523 /* PINAnimatedImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINAnimatedImageManager.h; path = Pod/Classes/PINAnimatedImageManager.h; sourceTree = ""; }; - E857537D8093A485EBFE9E2DDBDBD637 /* PINCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PINCache-dummy.m"; sourceTree = ""; }; - E95F52D48BE116262D8E096EB945BA77 /* PINDiskCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINDiskCache.m; path = PINCache/PINDiskCache.m; sourceTree = ""; }; - EA04BFF51A241F303647865553F8D3B2 /* PINCache+PINRemoteImageCaching.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PINCache+PINRemoteImageCaching.m"; path = "Pod/Classes/PINCache/PINCache+PINRemoteImageCaching.m"; sourceTree = ""; }; - EA690D9B4AFF44E99214D96D63936AA0 /* PINCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PINCache-prefix.pch"; sourceTree = ""; }; - EFC84D45EEC8BC803E82AF11A1A894DB /* PINRemoteImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImage.h; path = Pod/Classes/PINRemoteImage.h; sourceTree = ""; }; - F1B846119593EDF3614E6E7916002005 /* PINProgressiveImage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINProgressiveImage.h; path = Pod/Classes/PINProgressiveImage.h; sourceTree = ""; }; - F2E0AA5B9CF5EC389BD0E53528B17B51 /* PINRemoteImageMemoryContainer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageMemoryContainer.h; path = Pod/Classes/PINRemoteImageMemoryContainer.h; sourceTree = ""; }; - F3AB9D90A43E7FB7311C92C18F78A1A0 /* PINCache+PINRemoteImageCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PINCache+PINRemoteImageCaching.h"; path = "Pod/Classes/PINCache/PINCache+PINRemoteImageCaching.h"; sourceTree = ""; }; - F7A0C132FC1641AED504FDE95185E011 /* PINRemoteImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageManager.h; path = Pod/Classes/PINRemoteImageManager.h; sourceTree = ""; }; - F8E0391C88B698C81429155D1E63AA13 /* PINRemoteImageBasicCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageBasicCache.m; path = Pod/Classes/PINRemoteImageBasicCache.m; sourceTree = ""; }; + DEA75279B09BBBFF4BCF21E566758E24 /* PINRemoteImageCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCaching.h; path = Pod/Classes/PINRemoteImageCaching.h; sourceTree = ""; }; + DFA5D81C6C4104421E85D785F9E51236 /* PINRemoteImageCallbacks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageCallbacks.h; path = Pod/Classes/PINRemoteImageCallbacks.h; sourceTree = ""; }; + E49BF8E96AECEECF11F41895C749012F /* PINRemoteImageMemoryContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageMemoryContainer.m; path = Pod/Classes/PINRemoteImageMemoryContainer.m; sourceTree = ""; }; + E86544A2E55E08CB4E36DD726FF7CFD2 /* PINCacheObjectSubscripting.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINCacheObjectSubscripting.h; path = PINCache/PINCacheObjectSubscripting.h; sourceTree = ""; }; + E8F8C7994B4A99FBB4569EF0227B6E50 /* PINRemoteImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINRemoteImageManager.h; path = Pod/Classes/PINRemoteImageManager.h; sourceTree = ""; }; + EA9A11E805006AAC2470655C17579EC3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + F20EB2B220567413CD3B7D2D082D9458 /* libFLAnimatedImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libFLAnimatedImage.a; path = libFLAnimatedImage.a; sourceTree = BUILT_PRODUCTS_DIR; }; + F5591A6A564570B56C8C75D0D622704B /* PINRemoteImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PINRemoteImageManager.m; path = Pod/Classes/PINRemoteImageManager.m; sourceTree = ""; }; + F9B711ED853147A9A6242D37A7700E4B /* PINDataTaskOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PINDataTaskOperation.h; path = Pod/Classes/PINDataTaskOperation.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 5EB3279CA70C2EE3BD67E88E0D2E241D /* Frameworks */ = { + 225D32E0496A3B11F5C3EAE33E05EFFF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E3ED6DBD13F491C899A15C35C05C69B8 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6AC5301020B6AD8027C2878CBBCC73EB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A589C2AAEEC55339FFC90231BAAEB896 /* Foundation.framework in Frameworks */, - 0CA23DCC76B83B612A3CEED98D14B23E /* QuartzCore.framework in Frameworks */, + 3CB54645F630095EA50CD3AAE52CC30C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -265,9 +234,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 67B58D322DDE680B16979EFE00297670 /* Accelerate.framework in Frameworks */, - 920B39F0E5F3A2BF51DC65B31D17F061 /* Foundation.framework in Frameworks */, - 45EE4E8B3833971578DE857ED53C0AB2 /* ImageIO.framework in Frameworks */, + DB634795DCF67E2EAE0CA1F07D421F22 /* Accelerate.framework in Frameworks */, + 8289A8671C5C1308D30B2765B370EBAE /* Foundation.framework in Frameworks */, + DDF90CD81C662191B3F0C4FA07CD7ED1 /* ImageIO.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -275,11 +244,11 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 73224CB39DEDC688ADE0D6D51FCAA3F7 /* CoreGraphics.framework in Frameworks */, - 0E9E2B040680E0B5F2A41D247875C60F /* Foundation.framework in Frameworks */, - 51157F7A2664E6CD320A08566897FB28 /* ImageIO.framework in Frameworks */, - 1EFD9583025366C1EB5F456A6CD3E3BD /* MobileCoreServices.framework in Frameworks */, - 0024F89673D793582C1B016ED8430AC1 /* QuartzCore.framework in Frameworks */, + 77AC176D88B0888A14BE613CD68F6EB7 /* CoreGraphics.framework in Frameworks */, + 534FBD8D0E92F8D5A4A7FED6F0033F27 /* Foundation.framework in Frameworks */, + DDA640DE83B83C43285ABA7CF32FD69E /* ImageIO.framework in Frameworks */, + C8B4CA357C127C1C794AEE8DBC7CEFB4 /* MobileCoreServices.framework in Frameworks */, + 9B51DED9F2800F5715AC998686A4DEBE /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -287,183 +256,156 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E04AE38DC88A86C6E76CEE8CF3317D2C /* Foundation.framework in Frameworks */, + 3BF30A88E8D88CB73657B9E55E5D15E4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 056BEC36C6AA0D20C9AC8B4EA89CF936 /* PINCache */ = { - isa = PBXGroup; - children = ( - F3AB9D90A43E7FB7311C92C18F78A1A0 /* PINCache+PINRemoteImageCaching.h */, - EA04BFF51A241F303647865553F8D3B2 /* PINCache+PINRemoteImageCaching.m */, - ); - name = PINCache; - sourceTree = ""; - }; 0F75DF6C7C5F002280EC53F48E80B587 /* Frameworks */ = { isa = PBXGroup; children = ( - 8BB2CBD4A2A8C0DED75A160667AA82A6 /* iOS */, + B524E1F0396C90EB2A3A6739B94B9BCF /* iOS */, ); name = Frameworks; sourceTree = ""; }; - 17BFCBE2D79463814098B43ECEC55B72 /* Arc-exception-safe */ = { - isa = PBXGroup; - children = ( - E95F52D48BE116262D8E096EB945BA77 /* PINDiskCache.m */, - ); - name = "Arc-exception-safe"; - sourceTree = ""; - }; - 2A022411883EBBFF79C3CA52C1C56A01 /* Pods */ = { + 1B0E2C980F0DDBC129AB07AB066D6E7E /* PINCache */ = { isa = PBXGroup; children = ( - 3CCB7D3AB7CDCB1B75326418FF38BB32 /* DACircularProgress */, - 3D08592A0013A8D6506D140FCC470C06 /* FLAnimatedImage */, - BACE0A15FD800623FAA0E52E195C5518 /* PINCache */, - 883A13FFAF5089E1F7F4121BDD242ABC /* PINRemoteImage */, + 2AD53A1C49BC6EF664295D42703805DB /* PINCache+PINRemoteImageCaching.h */, + A9DDF7BF8758730D80523125F511943B /* PINCache+PINRemoteImageCaching.m */, ); - name = Pods; + name = PINCache; sourceTree = ""; }; - 350846657FE776AD0CF0DCA38D62B329 /* Products */ = { + 1C610A3BE476228410708BDE62D92CD9 /* FLAnimatedImage */ = { isa = PBXGroup; children = ( - D8764C9D9ABE0381B7100252680B7F69 /* libDACircularProgress.a */, - 1D39D4FEF51CE413AF46DED66D289AA7 /* libFLAnimatedImage.a */, - 8237040CE637A87641BDF1B865061C3F /* libPINCache.a */, - 0309660013227897705A6972AA1846E8 /* libPINRemoteImage.a */, - 58387257DABB5ED468932C2A0C1FD2B1 /* libPods-BFRImageViewer.a */, + 7413F7EAE39AD54CBB2FF9354D3F3112 /* FLAnimatedImage.h */, + 638E96B2763B4E9521ED8E1DB2E55FE6 /* FLAnimatedImage.m */, + 935AA2A62F008455766C4882A0F0AF9F /* FLAnimatedImageView.h */, + 4711F770A08A509BD26F8DA3628F3284 /* FLAnimatedImageView.m */, + 640D1D371C0255403ED55836D038F722 /* Support Files */, ); - name = Products; + name = FLAnimatedImage; + path = FLAnimatedImage; sourceTree = ""; }; - 3CCB7D3AB7CDCB1B75326418FF38BB32 /* DACircularProgress */ = { + 5683BE8680A84B0CCB9C364D6EA1E494 /* PINCache */ = { isa = PBXGroup; children = ( - 9CA3936DF3971E64A9F88E6080DAAB65 /* DACircularProgressView.h */, - A233742EE6DA45C45D982D0316D3284D /* DACircularProgressView.m */, - 6207745A3A1B0ED4C20016B02E1B423A /* DALabeledCircularProgressView.h */, - CC74E10F063D4E772EEBBD4A9B80F784 /* DALabeledCircularProgressView.m */, - 4909F437089919B5F3CB5002BF3C3D4D /* Support Files */, + C248BA22436ABEB2E89023DCBFBCFBA2 /* Arc-exception-safe */, + A8B728B5B3708B3053497E5B7FB97435 /* Core */, + C7A4B68F74DEE1CEDFBADAE78A598722 /* Support Files */, ); - name = DACircularProgress; - path = DACircularProgress; + name = PINCache; + path = PINCache; sourceTree = ""; }; - 3D08592A0013A8D6506D140FCC470C06 /* FLAnimatedImage */ = { + 640D1D371C0255403ED55836D038F722 /* Support Files */ = { isa = PBXGroup; children = ( - 83F7960B436E6BB799AF9499A48B67E1 /* FLAnimatedImage.h */, - 8A30010DEB8ABEEBA2DD5FAEF03B2B8B /* FLAnimatedImage.m */, - 24D8CC324F1C3E9C512AC1223F0E58A4 /* FLAnimatedImageView.h */, - 5282B390A785F0765C0FBE4FDAFC6EDE /* FLAnimatedImageView.m */, - C6C857970A0F46E3CF0AA60DE9260129 /* Support Files */, + 4E616F2C9A436C7D1BD4317387BEE2C4 /* FLAnimatedImage.xcconfig */, + 76E45DBD483EAFE6DCE1362D310DAA20 /* FLAnimatedImage-dummy.m */, + C9A0132257AB3D12D27B5262AF409A78 /* FLAnimatedImage-prefix.pch */, ); - name = FLAnimatedImage; - path = FLAnimatedImage; + name = "Support Files"; + path = "../Target Support Files/FLAnimatedImage"; sourceTree = ""; }; - 4909F437089919B5F3CB5002BF3C3D4D /* Support Files */ = { + 7731C28DC10FECF56643F57F040CEAF7 /* Pods */ = { isa = PBXGroup; children = ( - AD448BABA9CF88D751524B540624A815 /* DACircularProgress.xcconfig */, - 823CCEB2BA360CD17AF1707F8C0F04F9 /* DACircularProgress-dummy.m */, - D70835E683638FC424642AB5FCC6D18B /* DACircularProgress-prefix.pch */, + 1C610A3BE476228410708BDE62D92CD9 /* FLAnimatedImage */, + 5683BE8680A84B0CCB9C364D6EA1E494 /* PINCache */, + ED167D4164B9F8A23557AD973F0920DC /* PINRemoteImage */, ); - name = "Support Files"; - path = "../Target Support Files/DACircularProgress"; + name = Pods; sourceTree = ""; }; - 49B7BD97C9ECF8896FC212275917B592 /* Support Files */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - 30DED4EB2FE46426F659CB946496F900 /* PINCache.xcconfig */, - E857537D8093A485EBFE9E2DDBDBD637 /* PINCache-dummy.m */, - EA690D9B4AFF44E99214D96D63936AA0 /* PINCache-prefix.pch */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 0F75DF6C7C5F002280EC53F48E80B587 /* Frameworks */, + 7731C28DC10FECF56643F57F040CEAF7 /* Pods */, + 7F777C335E064A911D8281E2D157E792 /* Products */, + EA118ECA2C1D7EB7821274C4ECBF8752 /* Targets Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/PINCache"; sourceTree = ""; }; - 4A1369DDDAE54B384CA85023D3470A14 /* Core */ = { + 7F777C335E064A911D8281E2D157E792 /* Products */ = { isa = PBXGroup; children = ( - 99A71E8CB50C22BC42C5CA5E2BE3B77C /* Nullability.h */, - 3EF52EC48C2CF12A2C5861295E69FC57 /* PINCache.h */, - 389F30E9C0ABD780CC83836EFB44C3E3 /* PINCache.m */, - 51EBE843F094794D72B34F50B5B21D30 /* PINCacheObjectSubscripting.h */, - D12B08F44BA0C726C5BCB2412F62B8E9 /* PINDiskCache.h */, - 19230B0BE960DCC6260E0AE5F8D79D7E /* PINMemoryCache.h */, - BFAFAF3C8C80287DAEB5FE6C58D74AC6 /* PINMemoryCache.m */, - C15FA3DFF2DBA22F8684C6B0E4A942D4 /* PINOperationGroup.h */, - 5832875C97940435F312D1CA8800C9A9 /* PINOperationGroup.m */, - BFEBABA89AF4C39A7829A6BAA79D7AA4 /* PINOperationQueue.h */, - 42839CF5D2E564467A2CE348927C03FD /* PINOperationQueue.m */, + F20EB2B220567413CD3B7D2D082D9458 /* libFLAnimatedImage.a */, + B9BD431F4A603ABB14BD66BA0A51FD46 /* libPINCache.a */, + 5C4B5476DE199AC4AE32D1F678B8D359 /* libPINRemoteImage.a */, + 951D8A65055576FE800383C51BDECCF7 /* libPods-BFRImageViewer.a */, ); - name = Core; + name = Products; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 8BA2D44B7A1EBC5DB50CD940AC400DD7 /* Support Files */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 0F75DF6C7C5F002280EC53F48E80B587 /* Frameworks */, - 2A022411883EBBFF79C3CA52C1C56A01 /* Pods */, - 350846657FE776AD0CF0DCA38D62B329 /* Products */, - EA118ECA2C1D7EB7821274C4ECBF8752 /* Targets Support Files */, + BDEC0F1AF77A4CBEC4BC66ECA85314A7 /* PINRemoteImage.xcconfig */, + 59F0AC6FB170A5CB5742915B2C4AF915 /* PINRemoteImage-dummy.m */, + 4C277E273DD582277FC2A3A4604C174B /* PINRemoteImage-prefix.pch */, ); + name = "Support Files"; + path = "../Target Support Files/PINRemoteImage"; sourceTree = ""; }; - 883A13FFAF5089E1F7F4121BDD242ABC /* PINRemoteImage */ = { + A8B728B5B3708B3053497E5B7FB97435 /* Core */ = { isa = PBXGroup; children = ( - DD8BB124176007BD2FA003DC3F215FCC /* Core */, - CFFA6DF3A79E13FDE591BE25EF0FE6F5 /* FLAnimatedImage */, - 056BEC36C6AA0D20C9AC8B4EA89CF936 /* PINCache */, - E0D374194C33C19787C3791AB3A864E4 /* Support Files */, + 4AD8E136BD52D9EFDFC546E4F79BBD2D /* Nullability.h */, + BF1671AAF8402EEFF4B515C0D33E12FD /* PINCache.h */, + 8555BB7B7ABCC7B4DC4D672CAB3F64D3 /* PINCache.m */, + E86544A2E55E08CB4E36DD726FF7CFD2 /* PINCacheObjectSubscripting.h */, + D3116B74292B10422EA53E10A27E7E9A /* PINDiskCache.h */, + 47595EA5663CE8920CFB20A2C76E3C96 /* PINMemoryCache.h */, + 99E069F1B3A62FD5AA9D7B4C49B04508 /* PINMemoryCache.m */, + B9135B89A11DA98593B7927AFDC62458 /* PINOperationGroup.h */, + 863CB42056449E0753627A2B5C8CC05D /* PINOperationGroup.m */, + 2A4CD651AF555E390638EADA7B2469D9 /* PINOperationQueue.h */, + B3B0F57636865D26E791EC72573A18BC /* PINOperationQueue.m */, ); - name = PINRemoteImage; - path = PINRemoteImage; + name = Core; sourceTree = ""; }; - 8BB2CBD4A2A8C0DED75A160667AA82A6 /* iOS */ = { + B524E1F0396C90EB2A3A6739B94B9BCF /* iOS */ = { isa = PBXGroup; children = ( - E516036390BA561D4132699F80343C87 /* Accelerate.framework */, - E1EF55610D4A5B0010ACC32D2083E788 /* CoreGraphics.framework */, - 30FE0CFDE5F7989D621C71EF12A99335 /* Foundation.framework */, - B2AF52CF41D0CA688A271203B9A49633 /* ImageIO.framework */, - C9916B2E855D65ECAE53C892FD9DE215 /* MobileCoreServices.framework */, - 1983BDC107FFDC16EB402E85A2D57DA6 /* QuartzCore.framework */, + 481D894B89E90DADA5583C7982CC9CEC /* Accelerate.framework */, + EA9A11E805006AAC2470655C17579EC3 /* CoreGraphics.framework */, + BF5459152FA08D39AF2F0814F6F0DA52 /* Foundation.framework */, + 89D34AC91B82BB6BB8D331E9B4AD1F18 /* ImageIO.framework */, + C9EFE57FA8945D65CE2671124F81F577 /* MobileCoreServices.framework */, + A9F10FFF67C9EEC9294318E395399CE9 /* QuartzCore.framework */, ); name = iOS; sourceTree = ""; }; - BACE0A15FD800623FAA0E52E195C5518 /* PINCache */ = { + C248BA22436ABEB2E89023DCBFBCFBA2 /* Arc-exception-safe */ = { isa = PBXGroup; children = ( - 17BFCBE2D79463814098B43ECEC55B72 /* Arc-exception-safe */, - 4A1369DDDAE54B384CA85023D3470A14 /* Core */, - 49B7BD97C9ECF8896FC212275917B592 /* Support Files */, + 1C50809AF1DB9BC4ED4C811482B6AFD6 /* PINDiskCache.m */, ); - name = PINCache; - path = PINCache; + name = "Arc-exception-safe"; sourceTree = ""; }; - C6C857970A0F46E3CF0AA60DE9260129 /* Support Files */ = { + C7A4B68F74DEE1CEDFBADAE78A598722 /* Support Files */ = { isa = PBXGroup; children = ( - 182B706E38C635452A4EF3E2B7318B42 /* FLAnimatedImage.xcconfig */, - 6C18C9598A34D36462CE95B16650BAC4 /* FLAnimatedImage-dummy.m */, - 9BD7F6F43FB7435698D353424A2E39FE /* FLAnimatedImage-prefix.pch */, + 7604CAC5EF1D98120CC6C7E793B4F232 /* PINCache.xcconfig */, + 22C921299FBC593448E1BF50A13FD158 /* PINCache-dummy.m */, + 2AADB470E3B36CA08E068C1207FF7EB4 /* PINCache-prefix.pch */, ); name = "Support Files"; - path = "../Target Support Files/FLAnimatedImage"; + path = "../Target Support Files/PINCache"; sourceTree = ""; }; CBDCF88FFEFD3A5F6F0A48957646E694 /* Pods-BFRImageViewer */ = { @@ -481,84 +423,85 @@ path = "Target Support Files/Pods-BFRImageViewer"; sourceTree = ""; }; - CFFA6DF3A79E13FDE591BE25EF0FE6F5 /* FLAnimatedImage */ = { + D6C3ECC7374135335FB05296D8C77F47 /* Core */ = { isa = PBXGroup; children = ( - 6DF2AE5611D91286E2B7FC972C95BB34 /* FLAnimatedImageView+PINRemoteImage.h */, - 5CE89D4493E7E477CE23D5C236671247 /* FLAnimatedImageView+PINRemoteImage.m */, + 394B8D3369EAA1D998F7B116232414BD /* NSData+ImageDetectors.h */, + 90AC936B6085337856FEC39109E880A8 /* NSData+ImageDetectors.m */, + 90BD2AD51BA848228192569376C946A6 /* PINAlternateRepresentationProvider.h */, + C647F0E28F3BD12760AF52E213048F7D /* PINAlternateRepresentationProvider.m */, + B834F97A5AD88967BD56F9A33DCF8B9F /* PINAnimatedImage.h */, + 91F8FA5874A43B1E57152B78A86CB8AA /* PINAnimatedImage.m */, + 8B764FA5B0C2A6E0A8E3D6ABF77DF904 /* PINAnimatedImageManager.h */, + C6141402E154C6E1CBE236A5783E29EC /* PINAnimatedImageManager.m */, + 5C5D9E7589C2EC5BA697AA348FFB4155 /* PINButton+PINRemoteImage.h */, + 533B4A9D80CF95A03B30A44AEF42D736 /* PINButton+PINRemoteImage.m */, + F9B711ED853147A9A6242D37A7700E4B /* PINDataTaskOperation.h */, + 65D5E033471170876D28572F01975363 /* PINDataTaskOperation.m */, + 144C7F0EE25896DFE8D732BC5AB2BD56 /* PINImage+DecodedImage.h */, + 4F5667A34113CDAE2F4326DADCA5A792 /* PINImage+DecodedImage.m */, + C70175BDBAB05F8F89F4746F32855F77 /* PINImage+WebP.h */, + D20574EEA65F327AE8E1BEDB42EAF538 /* PINImage+WebP.m */, + C14C54A43AB4BB5CB643910272390DF5 /* PINImageView+PINRemoteImage.h */, + 9C2F2BBC8159540335CD9B7090CF91FC /* PINImageView+PINRemoteImage.m */, + B07BE68281E325A858BEFEC72B7D28E2 /* PINProgressiveImage.h */, + 9059BBF29F80664DD5235FB613A1E9FA /* PINProgressiveImage.m */, + 5F585BAB6CBD4C42F3094347A11317CE /* PINRemoteImage.h */, + 7A6696E17AA51903769427244D110DA5 /* PINRemoteImageBasicCache.h */, + 4E50EB4588E4A7E72B5A88E01ABA32BE /* PINRemoteImageBasicCache.m */, + DEA75279B09BBBFF4BCF21E566758E24 /* PINRemoteImageCaching.h */, + DFA5D81C6C4104421E85D785F9E51236 /* PINRemoteImageCallbacks.h */, + 1C7B17CED99FE839F6DCCB59DA52CE3E /* PINRemoteImageCallbacks.m */, + 08C78B78BFA7A65E03DBC28E683B5453 /* PINRemoteImageCategoryManager.h */, + C3BCD60213393BAE5D0FCADDDF26C3A7 /* PINRemoteImageCategoryManager.m */, + 810505EE437BFF25CD946B0BEB6DE0AC /* PINRemoteImageDownloadTask.h */, + D5399C7937D90B915376ABECE65A94D4 /* PINRemoteImageDownloadTask.m */, + A799AFE6CBCFC9A1FF761C23CA0CEC11 /* PINRemoteImageMacros.h */, + E8F8C7994B4A99FBB4569EF0227B6E50 /* PINRemoteImageManager.h */, + F5591A6A564570B56C8C75D0D622704B /* PINRemoteImageManager.m */, + DC698E538C35C34BCE6010B1C266D22F /* PINRemoteImageManagerResult.h */, + A566A2D0EBE0217A5CE9949824133968 /* PINRemoteImageManagerResult.m */, + 4EB49C7DB81E8A9AEC6AFEA1FA522FF8 /* PINRemoteImageMemoryContainer.h */, + E49BF8E96AECEECF11F41895C749012F /* PINRemoteImageMemoryContainer.m */, + C4BA9B04E4BABB5579654AB66C27C998 /* PINRemoteImageProcessorTask.h */, + 78125BF1CFFD960C7A4089B8BEB0F312 /* PINRemoteImageProcessorTask.m */, + 8D8E00D58E8EC4705CAD090EAABA184A /* PINRemoteImageTask.h */, + 839383219A491590DE39F12FDA42B21C /* PINRemoteImageTask.m */, + 5746B007F4AE310DF17B0885F60D0D4F /* PINRemoteLock.h */, + 36A3B3FEF825B0B28528230C7F0439A2 /* PINRemoteLock.m */, + 899AE5D0B4029A0D4427C87993F79A72 /* PINURLSessionManager.h */, + B4EB20A28BACC43DB60114E8E10C34C5 /* PINURLSessionManager.m */, ); - name = FLAnimatedImage; + name = Core; sourceTree = ""; }; - DD8BB124176007BD2FA003DC3F215FCC /* Core */ = { + E09E9CC7A101035A681DF41E820B6A7A /* FLAnimatedImage */ = { isa = PBXGroup; children = ( - 6B6A549B6EB4B9455688FFBBCB9F9970 /* NSData+ImageDetectors.h */, - 38CC5AB2396426F0F8696ABB546F81BC /* NSData+ImageDetectors.m */, - D16FACF71696201CB4004CD73ACAD88A /* PINAlternateRepresentationProvider.h */, - E2780DAEAF80B0ACDEA7E7A0753B3448 /* PINAlternateRepresentationProvider.m */, - CA6F7A32E1DEE5C500F58E235CCF5FF3 /* PINAnimatedImage.h */, - 191E9BCB37A6A3CB72436798452D361F /* PINAnimatedImage.m */, - E80DE5A90FFAD4252D7754F54948C523 /* PINAnimatedImageManager.h */, - 0C1B234ECBE069C915B453BFCB6A309F /* PINAnimatedImageManager.m */, - D216A1AE97520D71691F2F18F73CCE80 /* PINButton+PINRemoteImage.h */, - 20D276F2D4D7BC24F420CCD2501DF7E7 /* PINButton+PINRemoteImage.m */, - 561B0E75336C6CD965D19D9A8AA1AD76 /* PINDataTaskOperation.h */, - 78DDF89AB358BCA78E4C329077B87D37 /* PINDataTaskOperation.m */, - 3E0A008B1F80845CEFB8508B7AB1FC19 /* PINImage+DecodedImage.h */, - D0BDB5CCFB7AA2FCB75211CE93878CDD /* PINImage+DecodedImage.m */, - 295EBEA2FCD50E4DB46A92B81F89356F /* PINImage+WebP.h */, - 265EFCA27F8B3DFAF50C3180FC4DAC25 /* PINImage+WebP.m */, - 083B5FCEE6A7BE85EBB1EB4155AF5E3A /* PINImageView+PINRemoteImage.h */, - C6021F9CBBA360A8D28CD13C52316A02 /* PINImageView+PINRemoteImage.m */, - F1B846119593EDF3614E6E7916002005 /* PINProgressiveImage.h */, - 5128EF6B0C02C4CE86813C589FCA1537 /* PINProgressiveImage.m */, - EFC84D45EEC8BC803E82AF11A1A894DB /* PINRemoteImage.h */, - 316A5CB7FBBFF66204BBA9ED74D6718D /* PINRemoteImageBasicCache.h */, - F8E0391C88B698C81429155D1E63AA13 /* PINRemoteImageBasicCache.m */, - 6FE3BFA1489D403B9D9280717FB9103E /* PINRemoteImageCaching.h */, - B86555A9202517817259C5E63A6DE7B7 /* PINRemoteImageCallbacks.h */, - DCC93DD33C6E74578971EFC4450D8373 /* PINRemoteImageCallbacks.m */, - CEC9C6B5E9671DC798A27854EA600DEC /* PINRemoteImageCategoryManager.h */, - 2E3991D421DE0457198E8D33FC007A77 /* PINRemoteImageCategoryManager.m */, - 70033908ADBC919DDC8E992338EE9FC6 /* PINRemoteImageDownloadTask.h */, - 3FB1199AC79D0D2FA24A7FAB45B6B470 /* PINRemoteImageDownloadTask.m */, - 71EB1B2B4FB89A78F3A8385813823310 /* PINRemoteImageMacros.h */, - F7A0C132FC1641AED504FDE95185E011 /* PINRemoteImageManager.h */, - 0BAA3399AE65AB72F58516054C757E7C /* PINRemoteImageManager.m */, - 0FB763E8E4485C9C0ABB9A73D27CA026 /* PINRemoteImageManagerResult.h */, - A3F4BF5D4BC7B2C3529343DA28C0F2C0 /* PINRemoteImageManagerResult.m */, - F2E0AA5B9CF5EC389BD0E53528B17B51 /* PINRemoteImageMemoryContainer.h */, - D37F4FF2691F5AD14074D8A1C9956B1A /* PINRemoteImageMemoryContainer.m */, - 3024C2D4879D18CA790793CFF118BA80 /* PINRemoteImageProcessorTask.h */, - 442F845091462489215DD1A5CE912D8D /* PINRemoteImageProcessorTask.m */, - 701565E8DCF442E22060A747AEDD94EC /* PINRemoteImageTask.h */, - C4AA28ADA0965F7AC035C5E25C4EC583 /* PINRemoteImageTask.m */, - 529A5A10F4736882F96E54559AD399DD /* PINRemoteLock.h */, - A796A80E82352C272B87C4DCDC23555D /* PINRemoteLock.m */, - 91ACE60A9AD347371453EED73675DDDE /* PINURLSessionManager.h */, - 074996F7C2542EE1A249798D2105D4BB /* PINURLSessionManager.m */, + 3A0AB560A8A9AE53AA05683E1E5AB570 /* FLAnimatedImageView+PINRemoteImage.h */, + 6E40CF846E72E9B3332471E3AFC0EAF7 /* FLAnimatedImageView+PINRemoteImage.m */, ); - name = Core; + name = FLAnimatedImage; sourceTree = ""; }; - E0D374194C33C19787C3791AB3A864E4 /* Support Files */ = { + EA118ECA2C1D7EB7821274C4ECBF8752 /* Targets Support Files */ = { isa = PBXGroup; children = ( - 3E79D4A0108A1439C899ABE224DD13F0 /* PINRemoteImage.xcconfig */, - CD6749EA98C452378EDD4F9E1878EB07 /* PINRemoteImage-dummy.m */, - 38956D2B09407A01422332281DB769ED /* PINRemoteImage-prefix.pch */, + CBDCF88FFEFD3A5F6F0A48957646E694 /* Pods-BFRImageViewer */, ); - name = "Support Files"; - path = "../Target Support Files/PINRemoteImage"; + name = "Targets Support Files"; sourceTree = ""; }; - EA118ECA2C1D7EB7821274C4ECBF8752 /* Targets Support Files */ = { + ED167D4164B9F8A23557AD973F0920DC /* PINRemoteImage */ = { isa = PBXGroup; children = ( - CBDCF88FFEFD3A5F6F0A48957646E694 /* Pods-BFRImageViewer */, + D6C3ECC7374135335FB05296D8C77F47 /* Core */, + E09E9CC7A101035A681DF41E820B6A7A /* FLAnimatedImage */, + 1B0E2C980F0DDBC129AB07AB066D6E7E /* PINCache */, + 8BA2D44B7A1EBC5DB50CD940AC400DD7 /* Support Files */, ); - name = "Targets Support Files"; + name = PINRemoteImage; + path = PINRemoteImage; sourceTree = ""; }; /* End PBXGroup section */ @@ -568,17 +511,8 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B3550A4DAD326329DFA27C0F362C603E /* FLAnimatedImage.h in Headers */, - 63EAEA3C15F493173AE81FF5F366EE5C /* FLAnimatedImageView.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A14A3D09D59B9E6CB79FA84BACA8CE18 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 94D880AC12F7FBAB7F27D2BBA9CBB53E /* DACircularProgressView.h in Headers */, - C23657B0710AE187185AB686C4682162 /* DALabeledCircularProgressView.h in Headers */, + 2B5FEA8377B267CE91653EF5FBB856FF /* FLAnimatedImage.h in Headers */, + 54F0A238489A8D6DF7B44EA9ACA4C219 /* FLAnimatedImageView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -586,13 +520,13 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4025E4EF5E01C93919047C77FAF4B7B6 /* Nullability.h in Headers */, - AFF08577BC3807DCF8FC72F1C2C48AAC /* PINCache.h in Headers */, - 5A4DE4D84C554DF22EBDFA815661B7C3 /* PINCacheObjectSubscripting.h in Headers */, - 02179658BFB4DF8C0472FAC4269AF745 /* PINDiskCache.h in Headers */, - 906B8995E31354FFCB1E97A0AF6583BC /* PINMemoryCache.h in Headers */, - 3681254D0D693A67149AA96A1A071F64 /* PINOperationGroup.h in Headers */, - 662B486D7326F3C2A4014CA81BC39B17 /* PINOperationQueue.h in Headers */, + 3F1E4EA667FD71A51DCC612528309582 /* Nullability.h in Headers */, + B075308F8E1EA06A6568E807B07769F7 /* PINCache.h in Headers */, + 579CA865D495CC6A4B3B2C60C950C1CB /* PINCacheObjectSubscripting.h in Headers */, + B7C55C9287CBB998BE1EDEAF79278456 /* PINDiskCache.h in Headers */, + 65BED53A5C898DED91F0311867484160 /* PINMemoryCache.h in Headers */, + B19E9E517EB42086342DC598C6624EA4 /* PINOperationGroup.h in Headers */, + A37779519A462F15EB54382CF8968539 /* PINOperationQueue.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -600,32 +534,32 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9BE724C48852B870CFBC89A53A5DB1EF /* FLAnimatedImageView+PINRemoteImage.h in Headers */, - 2C6BA2BD8EC92CCAB6AD7C2BC56B8415 /* NSData+ImageDetectors.h in Headers */, - EBA586FFE5A67CC3057EC4FBE99D16EF /* PINAlternateRepresentationProvider.h in Headers */, - CA2D87374F251FCEFCD395C1D7FE7C14 /* PINAnimatedImage.h in Headers */, - 49D141B6A7324A2AA411627BBA6FE57E /* PINAnimatedImageManager.h in Headers */, - 311781DDA777D7295189F163C9D60FBC /* PINButton+PINRemoteImage.h in Headers */, - 3A0007C5D0F074814B1028AB6F4D34C6 /* PINCache+PINRemoteImageCaching.h in Headers */, - E610527E4AE2E75B1F57AFAC42B4F99D /* PINDataTaskOperation.h in Headers */, - 7AFAB2F9AB463BCAF5D2FADAAFEC24D0 /* PINImage+DecodedImage.h in Headers */, - 8D901A2439A3A69471E536E103A7A36C /* PINImage+WebP.h in Headers */, - C2C0D9895744B427E899166EF8C60A75 /* PINImageView+PINRemoteImage.h in Headers */, - 7FB124F3AF76A8F96329472D4CB73DEF /* PINProgressiveImage.h in Headers */, - 1F0DE65891A4AC71FF589C469CC41E8E /* PINRemoteImage.h in Headers */, - 8B97B2B63D30083E8B8C50071D0BB64C /* PINRemoteImageBasicCache.h in Headers */, - 645CEF707D2588907D1D8273CC28ACAC /* PINRemoteImageCaching.h in Headers */, - 47DDC63BE0247749C8C1AAB5A8107640 /* PINRemoteImageCallbacks.h in Headers */, - 81F05C8AA950F13A257531D5C5704359 /* PINRemoteImageCategoryManager.h in Headers */, - 8CC7FAA896A87D4104329D2AE38D2793 /* PINRemoteImageDownloadTask.h in Headers */, - 0A939E8B3AAD7941A0C6C7AEE9361F70 /* PINRemoteImageMacros.h in Headers */, - 86615B3760E570EDF21B003A2DE4B301 /* PINRemoteImageManager.h in Headers */, - FBB4D9371221EBA6BA69408E33A83D5B /* PINRemoteImageManagerResult.h in Headers */, - 3C287D75CF3F4C586F6B5646684E2AF7 /* PINRemoteImageMemoryContainer.h in Headers */, - 98BE25B80E1451F5A9126EA80B3C50FC /* PINRemoteImageProcessorTask.h in Headers */, - 8481A11BD6ECCCB2C14AFDE8D4D8C5CB /* PINRemoteImageTask.h in Headers */, - 6DABCF4E595D546441A1474EBDFC0D42 /* PINRemoteLock.h in Headers */, - 3C4DCC84674225ED664A8BFDD7ED2F2C /* PINURLSessionManager.h in Headers */, + 2FDA48DA7C3413C822347E93A52A2ED7 /* FLAnimatedImageView+PINRemoteImage.h in Headers */, + B748AE8AC884F26887654464C3EF9C67 /* NSData+ImageDetectors.h in Headers */, + 72420619A4622DB71CB601F410F262E1 /* PINAlternateRepresentationProvider.h in Headers */, + C0BDEA8E05F2849128437172991A41DB /* PINAnimatedImage.h in Headers */, + 6036CFE504D47F783C5EE436F72610D3 /* PINAnimatedImageManager.h in Headers */, + BDF3344434AB306B3C261F6B39D9FAEC /* PINButton+PINRemoteImage.h in Headers */, + 2F4045CA5D0C05E8A7106177C56CBBB6 /* PINCache+PINRemoteImageCaching.h in Headers */, + 9206DB18B070593FF1BB29C3A9538D6A /* PINDataTaskOperation.h in Headers */, + CD9899A12EF91880166832390843FBD2 /* PINImage+DecodedImage.h in Headers */, + 86C5EAAB584231ACF881EF3DB40DF325 /* PINImage+WebP.h in Headers */, + A6DB273127DE9ED9228113F04D3C4DDB /* PINImageView+PINRemoteImage.h in Headers */, + 326E6BCE9F9DBFA12D1EB2488A68E28C /* PINProgressiveImage.h in Headers */, + 9D4DE7BCD4B6C27ED95923B79663E4F7 /* PINRemoteImage.h in Headers */, + 955EF44D88CDFBD32B23CB46CC884620 /* PINRemoteImageBasicCache.h in Headers */, + 5E99A6B10D880E611FFEC8E1D686095E /* PINRemoteImageCaching.h in Headers */, + A16F129FC118F57DB82AA6956D1E976C /* PINRemoteImageCallbacks.h in Headers */, + BF91C44587928D603AD6EB23E9286537 /* PINRemoteImageCategoryManager.h in Headers */, + A912FCB20C763BE20989F5C09A948B8D /* PINRemoteImageDownloadTask.h in Headers */, + F422A09440A1D2C53030F6EE7B42662C /* PINRemoteImageMacros.h in Headers */, + 47926E99C6D315E56B2E93849031812A /* PINRemoteImageManager.h in Headers */, + EABA0DA8921DE31AE52D735E241A49AB /* PINRemoteImageManagerResult.h in Headers */, + 1C99674D9EE3821F0460C06E86EBAF51 /* PINRemoteImageMemoryContainer.h in Headers */, + 81F34A20418613F766AB0E9CA9048C07 /* PINRemoteImageProcessorTask.h in Headers */, + FA62DF0115A0039CD8A7448AD912377E /* PINRemoteImageTask.h in Headers */, + 275DDD3C68266A2E6769F3C8DDD00AEF /* PINRemoteLock.h in Headers */, + 5CBCB57BB09EACE282C5CF9ACC1C2721 /* PINURLSessionManager.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -648,44 +582,43 @@ ); name = PINRemoteImage; productName = PINRemoteImage; - productReference = 0309660013227897705A6972AA1846E8 /* libPINRemoteImage.a */; + productReference = 5C4B5476DE199AC4AE32D1F678B8D359 /* libPINRemoteImage.a */; productType = "com.apple.product-type.library.static"; }; - 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */ = { + 348A03069D4CE76E6A8379401766455F /* Pods-BFRImageViewer */ = { isa = PBXNativeTarget; - buildConfigurationList = 0EA4F995CBBF1300B4D566BFA7DD3B38 /* Build configuration list for PBXNativeTarget "FLAnimatedImage" */; + buildConfigurationList = E0573228D7E86908BCA62CE51054F9D7 /* Build configuration list for PBXNativeTarget "Pods-BFRImageViewer" */; buildPhases = ( - 7AE2B9876FC7B6898B64C81D3973EE56 /* Sources */, - 8E86703F96A4090BC5045C37B7C91BBB /* Frameworks */, - 7302CE7D9AE53174060E2127FEC17174 /* Headers */, + 477C1B3AB0A50743A6B78BF4BF82FFDE /* Sources */, + 225D32E0496A3B11F5C3EAE33E05EFFF /* Frameworks */, ); buildRules = ( ); dependencies = ( + F6A1E8381BD393083AF5CFF950EF742C /* PBXTargetDependency */, + FF6D1DA3038787496875C32477E4F16A /* PBXTargetDependency */, + 7D90CEF790581405CDCA00336519107B /* PBXTargetDependency */, ); - name = FLAnimatedImage; - productName = FLAnimatedImage; - productReference = 1D39D4FEF51CE413AF46DED66D289AA7 /* libFLAnimatedImage.a */; + name = "Pods-BFRImageViewer"; + productName = "Pods-BFRImageViewer"; + productReference = 951D8A65055576FE800383C51BDECCF7 /* libPods-BFRImageViewer.a */; productType = "com.apple.product-type.library.static"; }; - 7DB59FA7AA91506D8FA0F3E3EF56F1C0 /* Pods-BFRImageViewer */ = { + 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */ = { isa = PBXNativeTarget; - buildConfigurationList = 767EEC60B658C73CADB4AE5DED404C98 /* Build configuration list for PBXNativeTarget "Pods-BFRImageViewer" */; + buildConfigurationList = 0EA4F995CBBF1300B4D566BFA7DD3B38 /* Build configuration list for PBXNativeTarget "FLAnimatedImage" */; buildPhases = ( - 907FCE957C82CD4F445626B7BC34F937 /* Sources */, - 5EB3279CA70C2EE3BD67E88E0D2E241D /* Frameworks */, + 7AE2B9876FC7B6898B64C81D3973EE56 /* Sources */, + 8E86703F96A4090BC5045C37B7C91BBB /* Frameworks */, + 7302CE7D9AE53174060E2127FEC17174 /* Headers */, ); buildRules = ( ); dependencies = ( - D6FF8EBC55DF894B73B76B4B12252C0B /* PBXTargetDependency */, - 5360009E6F4CA212E2B6954DE3A1DB51 /* PBXTargetDependency */, - B3A77EC437E3E7EAAC1A683D877E8AEC /* PBXTargetDependency */, - D46A1A4FEFF7F0087E10549ECA41D47B /* PBXTargetDependency */, ); - name = "Pods-BFRImageViewer"; - productName = "Pods-BFRImageViewer"; - productReference = 58387257DABB5ED468932C2A0C1FD2B1 /* libPods-BFRImageViewer.a */; + name = FLAnimatedImage; + productName = FLAnimatedImage; + productReference = F20EB2B220567413CD3B7D2D082D9458 /* libFLAnimatedImage.a */; productType = "com.apple.product-type.library.static"; }; C3BAF7A79AC3D9AD212C3F6B700AEC77 /* PINCache */ = { @@ -702,24 +635,7 @@ ); name = PINCache; productName = PINCache; - productReference = 8237040CE637A87641BDF1B865061C3F /* libPINCache.a */; - productType = "com.apple.product-type.library.static"; - }; - C791F0A928C1A8FE97074DFC9ACF4E75 /* DACircularProgress */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8BD5E582BE5D22462B3154D9B786288B /* Build configuration list for PBXNativeTarget "DACircularProgress" */; - buildPhases = ( - A4FD0994E6EDE999DC4DE4EF825BF82B /* Sources */, - 6AC5301020B6AD8027C2878CBBCC73EB /* Frameworks */, - A14A3D09D59B9E6CB79FA84BACA8CE18 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DACircularProgress; - productName = DACircularProgress; - productReference = D8764C9D9ABE0381B7100252680B7F69 /* libDACircularProgress.a */; + productReference = B9BD431F4A603ABB14BD66BA0A51FD46 /* libPINCache.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -728,8 +644,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0700; + LastSwiftUpdateCheck = 0930; + LastUpgradeCheck = 0930; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -739,20 +655,27 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 350846657FE776AD0CF0DCA38D62B329 /* Products */; + productRefGroup = 7F777C335E064A911D8281E2D157E792 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - C791F0A928C1A8FE97074DFC9ACF4E75 /* DACircularProgress */, 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */, C3BAF7A79AC3D9AD212C3F6B700AEC77 /* PINCache */, 23F5B673D25F9E1F1ABB3F8AA0302A2C /* PINRemoteImage */, - 7DB59FA7AA91506D8FA0F3E3EF56F1C0 /* Pods-BFRImageViewer */, + 348A03069D4CE76E6A8379401766455F /* Pods-BFRImageViewer */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ + 477C1B3AB0A50743A6B78BF4BF82FFDE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9CB611EB70BA8A8ED414CFA9C7EAC55E /* Pods-BFRImageViewer-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 7861C609620B5EE0FB82D40034B079BE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -776,14 +699,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 907FCE957C82CD4F445626B7BC34F937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EC2C058313393FF48DBA73DF43EF3F5 /* Pods-BFRImageViewer-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 912E7B4E1B1989E52B225349E675B14A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -815,24 +730,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A4FD0994E6EDE999DC4DE4EF825BF82B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A3A46156C9FCE04957F55EA1D35B8B36 /* DACircularProgress-dummy.m in Sources */, - EB74D07B265ECD35D7A58174C71226E2 /* DACircularProgressView.m in Sources */, - 54BD4B2920F5A63EC9B0B9B47DE1BB14 /* DALabeledCircularProgressView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 5360009E6F4CA212E2B6954DE3A1DB51 /* PBXTargetDependency */ = { + 7D90CEF790581405CDCA00336519107B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = FLAnimatedImage; - target = 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */; - targetProxy = A7DA46F372781F41F9A351E050C46048 /* PBXContainerItemProxy */; + name = PINRemoteImage; + target = 23F5B673D25F9E1F1ABB3F8AA0302A2C /* PINRemoteImage */; + targetProxy = 3C84573ED6D5D71C36AEEADC34F56C48 /* PBXContainerItemProxy */; }; 95D21572C96C71D5E6D6A2E3A7168485 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -840,344 +745,329 @@ target = 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */; targetProxy = 70B1ABF786DE4A9DA7BFB8630A76B08C /* PBXContainerItemProxy */; }; - B3A77EC437E3E7EAAC1A683D877E8AEC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = PINCache; - target = C3BAF7A79AC3D9AD212C3F6B700AEC77 /* PINCache */; - targetProxy = C7616F81E207D20DE6291BC34BD66CFC /* PBXContainerItemProxy */; - }; C31D140D907B9330DE8561F58F740BA8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = PINCache; target = C3BAF7A79AC3D9AD212C3F6B700AEC77 /* PINCache */; targetProxy = 9218F44CF623829E53E12B8130E772CF /* PBXContainerItemProxy */; }; - D46A1A4FEFF7F0087E10549ECA41D47B /* PBXTargetDependency */ = { + F6A1E8381BD393083AF5CFF950EF742C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = PINRemoteImage; - target = 23F5B673D25F9E1F1ABB3F8AA0302A2C /* PINRemoteImage */; - targetProxy = 8548DE77804D1917C3E3D6CFB58555EC /* PBXContainerItemProxy */; + name = FLAnimatedImage; + target = 53F8571E2D572C4069860E38654A566A /* FLAnimatedImage */; + targetProxy = 9351D82F24EEAEE947D4E4C760F41EDF /* PBXContainerItemProxy */; }; - D6FF8EBC55DF894B73B76B4B12252C0B /* PBXTargetDependency */ = { + FF6D1DA3038787496875C32477E4F16A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = DACircularProgress; - target = C791F0A928C1A8FE97074DFC9ACF4E75 /* DACircularProgress */; - targetProxy = 07A7255A2F8C949D77A28CC3B237C423 /* PBXContainerItemProxy */; + name = PINCache; + target = C3BAF7A79AC3D9AD212C3F6B700AEC77 /* PINCache */; + targetProxy = BC06A7610C4806E3D1ED70D750FAAAE5 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 015A368F878AC3E2CEAE21DDE8026304 /* Debug */ = { + 0E9C61315CEE1D716CDA2B31BB5951D9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6B7C16DC5CA28E08B4407706F6CBD367 /* Pods-BFRImageViewer.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACH_O_TYPE = staticlib; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1EE19F5DD95931924296F637BF18BD8F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "POD_CONFIGURATION_DEBUG=1", "DEBUG=1", "$(inherited)", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - 21F216BD223FDDE8CF948D8CE6EEC930 /* Release */ = { + 26CB5D00732F171D3190F2E71708AA31 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 30DED4EB2FE46426F659CB946496F900 /* PINCache.xcconfig */; + baseConfigurationReference = BDEC0F1AF77A4CBEC4BC66ECA85314A7 /* PINRemoteImage.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PINCache/PINCache-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = NO; + GCC_PREFIX_HEADER = "Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = PINRemoteImage; + PRODUCT_NAME = PINRemoteImage; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; - 2BCABD3CD097719AAEDF5AEFCBEB8080 /* Debug */ = { + 2D929763320F3D46BBAC2869B53292A9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 30DED4EB2FE46426F659CB946496F900 /* PINCache.xcconfig */; + baseConfigurationReference = 7604CAC5EF1D98120CC6C7E793B4F232 /* PINCache.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/PINCache/PINCache-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = PINCache; + PRODUCT_NAME = PINCache; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; - }; - name = Debug; - }; - 44CDBB6D11DE06DB64D6268622BDC47E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; - 4733FCAF8FD03882650648F0BDCB9BE2 /* Debug */ = { + A3E7A857F99FCF7BD840A135EF3D3C03 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 182B706E38C635452A4EF3E2B7318B42 /* FLAnimatedImage.xcconfig */; + baseConfigurationReference = 7604CAC5EF1D98120CC6C7E793B4F232 /* PINCache.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; + GCC_PREFIX_HEADER = "Target Support Files/PINCache/PINCache-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = PINCache; + PRODUCT_NAME = PINCache; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - 4D1954E2801E450DD6D6B7D65B3FF7C9 /* Debug */ = { + A85C24F2EDDFABB6CA8EDC3D9CE77496 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AD448BABA9CF88D751524B540624A815 /* DACircularProgress.xcconfig */; + baseConfigurationReference = 4E616F2C9A436C7D1BD4317387BEE2C4 /* FLAnimatedImage.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/DACircularProgress/DACircularProgress-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = YES; + GCC_PREFIX_HEADER = "Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = FLAnimatedImage; + PRODUCT_NAME = FLAnimatedImage; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - A6ED3EAE55957FA94E6D46FC88EB38AF /* Debug */ = { + B3F5D4D57166CFEE09FE415F5D65A4F4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3E79D4A0108A1439C899ABE224DD13F0 /* PINRemoteImage.xcconfig */; + baseConfigurationReference = BDEC0F1AF77A4CBEC4BC66ECA85314A7 /* PINRemoteImage.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = PINRemoteImage; + PRODUCT_NAME = PINRemoteImage; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - A76CC8449A38E58497455D5C631BAACD /* Debug */ = { + B87737122FA5A7F979C3034235D58EFE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6B7C16DC5CA28E08B4407706F6CBD367 /* Pods-BFRImageViewer.debug.xcconfig */; + baseConfigurationReference = 005E0B06483BF6325933690AD3CF847F /* Pods-BFRImageViewer.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A873B752DFE33BE50517113D06E7C42C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AD448BABA9CF88D751524B540624A815 /* DACircularProgress.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/DACircularProgress/DACircularProgress-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 5.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - AED41EAFA33E6D5609F4E3F1AF1451A8 /* Release */ = { + C767674CF92A205AD2C23BF063A7959C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 182B706E38C635452A4EF3E2B7318B42 /* FLAnimatedImage.xcconfig */; + baseConfigurationReference = 4E616F2C9A436C7D1BD4317387BEE2C4 /* FLAnimatedImage.xcconfig */; buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - B65FFA828B4C97283048DD2DCD6D998C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3E79D4A0108A1439C899ABE224DD13F0 /* PINRemoteImage.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_MODULE_NAME = FLAnimatedImage; + PRODUCT_NAME = FLAnimatedImage; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; - E7F9A15D50A9048347611467781D9F8D /* Release */ = { + F4568DEE257655D290C2B9CEAB37C934 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 005E0B06483BF6325933690AD3CF847F /* Pods-BFRImageViewer.release.xcconfig */; buildSettings = { - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACH_O_TYPE = staticlib; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; }; name = Release; }; @@ -1187,8 +1077,8 @@ 0EA4F995CBBF1300B4D566BFA7DD3B38 /* Build configuration list for PBXNativeTarget "FLAnimatedImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4733FCAF8FD03882650648F0BDCB9BE2 /* Debug */, - AED41EAFA33E6D5609F4E3F1AF1451A8 /* Release */, + C767674CF92A205AD2C23BF063A7959C /* Debug */, + A85C24F2EDDFABB6CA8EDC3D9CE77496 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1196,8 +1086,8 @@ 184DFDA0FED7052762054F11DFBD709B /* Build configuration list for PBXNativeTarget "PINRemoteImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - A6ED3EAE55957FA94E6D46FC88EB38AF /* Debug */, - B65FFA828B4C97283048DD2DCD6D998C /* Release */, + 26CB5D00732F171D3190F2E71708AA31 /* Debug */, + B3F5D4D57166CFEE09FE415F5D65A4F4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1205,8 +1095,8 @@ 19D57BD91EB0575AA43C9A5D74849D84 /* Build configuration list for PBXNativeTarget "PINCache" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2BCABD3CD097719AAEDF5AEFCBEB8080 /* Debug */, - 21F216BD223FDDE8CF948D8CE6EEC930 /* Release */, + A3E7A857F99FCF7BD840A135EF3D3C03 /* Debug */, + 2D929763320F3D46BBAC2869B53292A9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1214,26 +1104,17 @@ 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 015A368F878AC3E2CEAE21DDE8026304 /* Debug */, - 44CDBB6D11DE06DB64D6268622BDC47E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 767EEC60B658C73CADB4AE5DED404C98 /* Build configuration list for PBXNativeTarget "Pods-BFRImageViewer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A76CC8449A38E58497455D5C631BAACD /* Debug */, - E7F9A15D50A9048347611467781D9F8D /* Release */, + 1EE19F5DD95931924296F637BF18BD8F /* Debug */, + F4568DEE257655D290C2B9CEAB37C934 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8BD5E582BE5D22462B3154D9B786288B /* Build configuration list for PBXNativeTarget "DACircularProgress" */ = { + E0573228D7E86908BCA62CE51054F9D7 /* Build configuration list for PBXNativeTarget "Pods-BFRImageViewer" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4D1954E2801E450DD6D6B7D65B3FF7C9 /* Debug */, - A873B752DFE33BE50517113D06E7C42C /* Release */, + 0E9C61315CEE1D716CDA2B31BB5951D9 /* Debug */, + B87737122FA5A7F979C3034235D58EFE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-dummy.m b/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-dummy.m deleted file mode 100644 index 76cdc76..0000000 --- a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_DACircularProgress : NSObject -@end -@implementation PodsDummy_DACircularProgress -@end diff --git a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-prefix.pch b/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-prefix.pch deleted file mode 100644 index aa992a4..0000000 --- a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress-prefix.pch +++ /dev/null @@ -1,4 +0,0 @@ -#ifdef __OBJC__ -#import -#endif - diff --git a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress.xcconfig deleted file mode 100644 index c0c78f4..0000000 --- a/BFRImageViewerDemo/Pods/Target Support Files/DACircularProgress/DACircularProgress.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/DACircularProgress -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DACircularProgress" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" -OTHER_LDFLAGS = -framework "QuartzCore" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch b/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch index aa992a4..beb2a24 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch +++ b/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage-prefix.pch @@ -1,4 +1,12 @@ #ifdef __OBJC__ #import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif #endif diff --git a/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage.xcconfig index ceb6bed..ecc28ba 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage.xcconfig +++ b/BFRImageViewerDemo/Pods/Target Support Files/FLAnimatedImage/FLAnimatedImage.xcconfig @@ -1,9 +1,10 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/FLAnimatedImage +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FLAnimatedImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FLAnimatedImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" OTHER_LDFLAGS = -framework "CoreGraphics" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/FLAnimatedImage PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache-prefix.pch b/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache-prefix.pch index 5e15de4..2b29dbc 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache-prefix.pch +++ b/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache-prefix.pch @@ -1,5 +1,13 @@ #ifdef __OBJC__ #import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif #endif #ifndef TARGET_OS_WATCH diff --git a/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache.xcconfig index 2c70e84..02f20d2 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache.xcconfig +++ b/BFRImageViewerDemo/Pods/Target Support Files/PINCache/PINCache.xcconfig @@ -1,9 +1,10 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PINCache +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PINCache GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PINCache" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PINCache" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/PINCache" OTHER_LDFLAGS = -framework "Foundation" -weak_framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/PINCache PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch b/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch index aa992a4..beb2a24 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch +++ b/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage-prefix.pch @@ -1,4 +1,12 @@ #ifdef __OBJC__ #import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif #endif diff --git a/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.xcconfig index 296244a..c174e5e 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.xcconfig +++ b/BFRImageViewerDemo/Pods/Target Support Files/PINRemoteImage/PINRemoteImage.xcconfig @@ -1,10 +1,11 @@ -CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PINRemoteImage GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PINRemoteImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/FLAnimatedImage" "$PODS_CONFIGURATION_BUILD_DIR/PINCache" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PINRemoteImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/PINCache" OTHER_LDFLAGS = -framework "Accelerate" -framework "ImageIO" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/PINRemoteImage PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.markdown b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.markdown index 3ff71b1..c339f6b 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.markdown +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.markdown @@ -1,32 +1,6 @@ # Acknowledgements This application makes use of the following third party libraries: -## DACircularProgress - -# License - -## MIT License - -Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ## FLAnimatedImage The MIT License (MIT) diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.plist b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.plist index a5b30b6..49db439 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.plist +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-acknowledgements.plist @@ -12,38 +12,6 @@ Type PSGroupSpecifier - - FooterText - # License - -## MIT License - -Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - License - MIT - Title - DACircularProgress - Type - PSGroupSpecifier - FooterText The MIT License (MIT) diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-frameworks.sh b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-frameworks.sh index 893c16a..08e3eaa 100755 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-frameworks.sh +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-frameworks.sh @@ -1,11 +1,28 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then @@ -23,9 +40,9 @@ install_framework() source="$(readlink "${source}")" fi - # use filter instead of exclude so missing patterns dont' throw errors - echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" local basename basename="$(basename -s .framework "$1")" @@ -54,24 +71,65 @@ install_framework() fi } +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" fi } # Strip invalid architectures strip_invalid_archs() { binary="$1" - # Get architectures for current file - archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi stripped="" - for arch in $archs; do - if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place lipo -remove "$arch" -output "$binary" "$binary" || exit 1 stripped="$stripped $arch" @@ -80,5 +138,9 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi + STRIP_BINARY_RETVAL=1 } +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-resources.sh b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-resources.sh index 25e9d37..345301f 100755 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-resources.sh +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer-resources.sh @@ -1,5 +1,13 @@ #!/bin/sh set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -8,7 +16,11 @@ RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt XCASSET_FILES=() -case "${TARGETED_DEVICE_FAMILY}" in +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in 1,2) TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" ;; @@ -18,6 +30,12 @@ case "${TARGETED_DEVICE_FAMILY}" in 2) TARGET_DEVICE_ARGS="--target-device ipad" ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; *) TARGET_DEVICE_ARGS="--target-device mac" ;; @@ -38,29 +56,29 @@ EOM fi case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) @@ -68,7 +86,7 @@ EOM XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; *) - echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" || true echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac @@ -82,7 +100,7 @@ if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then fi rm -f "$RESOURCES_TO_COPY" -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] then # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) @@ -92,5 +110,9 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi fi diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.debug.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.debug.xcconfig index b1d45bb..32b2c8c 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.debug.xcconfig +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.debug.xcconfig @@ -1,9 +1,9 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/DACircularProgress" "$PODS_CONFIGURATION_BUILD_DIR/FLAnimatedImage" "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/FLAnimatedImage" -isystem "${PODS_ROOT}/Headers/Public/PINCache" -isystem "${PODS_ROOT}/Headers/Public/PINRemoteImage" -OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"FLAnimatedImage" -l"PINCache" -l"PINRemoteImage" -framework "Accelerate" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -weak_framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/PINCache" "${PODS_CONFIGURATION_BUILD_DIR}/PINRemoteImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FLAnimatedImage" -isystem "${PODS_ROOT}/Headers/Public/PINCache" -isystem "${PODS_ROOT}/Headers/Public/PINRemoteImage" +OTHER_LDFLAGS = $(inherited) -ObjC -l"FLAnimatedImage" -l"PINCache" -l"PINRemoteImage" -framework "Accelerate" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -weak_framework "UIKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods diff --git a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.release.xcconfig b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.release.xcconfig index b1d45bb..32b2c8c 100644 --- a/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.release.xcconfig +++ b/BFRImageViewerDemo/Pods/Target Support Files/Pods-BFRImageViewer/Pods-BFRImageViewer.release.xcconfig @@ -1,9 +1,9 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" -LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/DACircularProgress" "$PODS_CONFIGURATION_BUILD_DIR/FLAnimatedImage" "$PODS_CONFIGURATION_BUILD_DIR/PINCache" "$PODS_CONFIGURATION_BUILD_DIR/PINRemoteImage" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/FLAnimatedImage" -isystem "${PODS_ROOT}/Headers/Public/PINCache" -isystem "${PODS_ROOT}/Headers/Public/PINRemoteImage" -OTHER_LDFLAGS = $(inherited) -ObjC -l"DACircularProgress" -l"FLAnimatedImage" -l"PINCache" -l"PINRemoteImage" -framework "Accelerate" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -weak_framework "UIKit" -PODS_BUILD_DIR = $BUILD_DIR -PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/FLAnimatedImage" "${PODS_ROOT}/Headers/Public/PINCache" "${PODS_ROOT}/Headers/Public/PINRemoteImage" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/FLAnimatedImage" "${PODS_CONFIGURATION_BUILD_DIR}/PINCache" "${PODS_CONFIGURATION_BUILD_DIR}/PINRemoteImage" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/FLAnimatedImage" -isystem "${PODS_ROOT}/Headers/Public/PINCache" -isystem "${PODS_ROOT}/Headers/Public/PINRemoteImage" +OTHER_LDFLAGS = $(inherited) -ObjC -l"FLAnimatedImage" -l"PINCache" -l"PINRemoteImage" -framework "Accelerate" -framework "CoreGraphics" -framework "Foundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -weak_framework "UIKit" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods From f42ccf52d616821f6db06790ff67de49c55a1c0a Mon Sep 17 00:00:00 2001 From: Jordan Morgan Date: Wed, 22 Aug 2018 12:28:12 -0500 Subject: [PATCH 30/30] Spec bump --- BFRImageViewer.podspec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/BFRImageViewer.podspec b/BFRImageViewer.podspec index 3654374..b0bc9ef 100644 --- a/BFRImageViewer.podspec +++ b/BFRImageViewer.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "BFRImageViewer" - s.version = "1.2.2" + s.version = "1.2.3" s.summary = "A turnkey solution to display photos and images of all kinds in your app." s.description = <<-DESC The BFRImageViewer is a turnkey solution to present images within your iOS app 🎉! @@ -11,10 +11,9 @@ Pod::Spec.new do |s| s.screenshot = "https://github.com/bufferapp/buffer-ios-image-viewer/blob/master/demo.gif?raw=true" s.license = "MIT" s.authors = {"Andrew Yates" => "andy@bufferapp.com", - "Jordan Morgan" => "jordan@bufferapp.com", - "Humber Aquino" => "humber@bufferapp.com"} + "Jordan Morgan" => "jordan@bufferapp.com"} s.social_media_url = "https://twitter.com/bufferdevs" - s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2.2' } + s.source = { :git => "https://github.com/bufferapp/buffer-ios-image-viewer.git", :tag => '1.2.3' } s.source_files = 'Classes', 'BFRImageViewController/**/*.{h,m}' s.resources = ['BFRImageViewController/**/BFRImageViewerLocalizations.bundle','BFRImageViewController/**/*.{png}'] s.exclude_files = 'BFRImageViewController/**/lowResImage.png'