From ef6ce0e9694d6d47e2273613b37e64aab9f0de42 Mon Sep 17 00:00:00 2001 From: Daron Tancharoen Date: Fri, 19 Aug 2016 13:04:17 +0700 Subject: [PATCH 1/4] fix bug when isMultiselectEnabled = NO when isMultiselectEnabled = 0 , nothing can be selected --- FacebookImagePicker/OLPhotoViewController.m | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/FacebookImagePicker/OLPhotoViewController.m b/FacebookImagePicker/OLPhotoViewController.m index 7ec14ef..e119f12 100644 --- a/FacebookImagePicker/OLPhotoViewController.m +++ b/FacebookImagePicker/OLPhotoViewController.m @@ -210,13 +210,9 @@ -(void) collectionView:(UICollectionView *)collectionView didDeselectItemAtIndex } -(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ - if(self.isMultiselectEnabled) { - [self updateTitleWithSelectedIndexPaths:collectionView.indexPathsForSelectedItems]; + + [self updateTitleWithSelectedIndexPaths:collectionView.indexPathsForSelectedItems]; - } else { - [collectionView deselectItemAtIndexPath:indexPath animated:NO]; - } - if ([self.delegate respondsToSelector:@selector(photoViewController:didSelectImage:)]){ [self.delegate photoViewController:self didSelectImage:[self.photos objectAtIndex:indexPath.item]]; } From 7a6c82823ee10c62ea5a7b373e263c25f54f981c Mon Sep 17 00:00:00 2001 From: Daron Tancharoen Date: Fri, 16 Sep 2016 12:26:35 +0700 Subject: [PATCH 2/4] show Cancel button if don't show Logout, fix single selection bug if select more than one photo in different album --- FacebookImagePicker/OLAlbumViewController.h | 1 + FacebookImagePicker/OLAlbumViewController.m | 9 ++++++--- .../OLFacebookImagePickerController.m | 9 ++++----- FacebookImagePicker/OLPhotoViewController.m | 12 ++++-------- FacebookImagePicker/Podfile | 6 ++++-- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/FacebookImagePicker/OLAlbumViewController.h b/FacebookImagePicker/OLAlbumViewController.h index b53a9b6..619c0c5 100644 --- a/FacebookImagePicker/OLAlbumViewController.h +++ b/FacebookImagePicker/OLAlbumViewController.h @@ -14,6 +14,7 @@ @protocol OLAlbumViewControllerDelegate - (void)albumViewControllerDoneClicked:(OLAlbumViewController *)albumController; - (void)albumViewController:(OLAlbumViewController *)albumController didFailWithError:(NSError *)error; +- (void)albumViewControllerCancelClicked:(OLAlbumViewController *)albumController; @optional - (void)albumViewController:(OLAlbumViewController *)albumController didSelectImage:(OLFacebookImage *)image; - (BOOL)albumViewController:(OLAlbumViewController *)albumController shouldSelectImage:(OLFacebookImage *)image; diff --git a/FacebookImagePicker/OLAlbumViewController.m b/FacebookImagePicker/OLAlbumViewController.m index 7f7f4ca..7974038 100644 --- a/FacebookImagePicker/OLAlbumViewController.m +++ b/FacebookImagePicker/OLAlbumViewController.m @@ -96,6 +96,8 @@ - (void)viewDidLoad { if (self.shouldDisplayLogoutButton) { [self addLogoutButtonAnimated:NO]; + } else { + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonClicked)]; } self.albumRequestForNextPage = [[OLFacebookAlbumRequest alloc] init]; @@ -199,6 +201,10 @@ - (void)onButtonLogoutClicked { [self.delegate albumViewControllerDoneClicked:self]; } +- (void)cancelButtonClicked{ + [self.delegate albumViewControllerCancelClicked:self]; +} + - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self updateSelectedFromPhotoViewController]; @@ -263,9 +269,6 @@ - (void)photoViewController:(OLPhotoViewController *)photoController didFailWith } - (void)photoViewController:(OLPhotoViewController *)photoController didSelectImage:(OLFacebookImage *)image{ - if(self.isMultiselectEnabled) { - [self updateSelectedFromPhotoViewController]; - } if ([self.delegate respondsToSelector:@selector(albumViewController:didSelectImage:)]){ [self.delegate albumViewController:self didSelectImage:image]; diff --git a/FacebookImagePicker/OLFacebookImagePickerController.m b/FacebookImagePicker/OLFacebookImagePickerController.m index ffea17d..4061485 100644 --- a/FacebookImagePicker/OLFacebookImagePickerController.m +++ b/FacebookImagePicker/OLFacebookImagePickerController.m @@ -23,7 +23,6 @@ @implementation OLFacebookImagePickerController - (id)init { UIViewController *vc = [[UIViewController alloc] init]; vc.view.backgroundColor = [UIColor whiteColor]; - vc.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonClicked)]; if (self = [super initWithRootViewController:vc]) { _shouldDisplayLogoutButton = YES; _isMultiselectEnabled = YES; @@ -35,10 +34,6 @@ - (id)init { return self; } -- (void)cancelButtonClicked{ - [self.delegate facebookImagePicker:self didFinishPickingImages:@[]]; -} - - (void)viewDidAppear:(BOOL)animated{ if (![FBSDKAccessToken currentAccessToken] && !self.haveSeenViewDidAppear){ self.haveSeenViewDidAppear = YES; @@ -100,6 +95,10 @@ - (void)albumViewControllerDoneClicked:(OLAlbumViewController *)albumController [self.delegate facebookImagePicker:self didFinishPickingImages:albumController.selected]; } +- (void)albumViewControllerCancelClicked:(OLAlbumViewController *)albumController { + [self.delegate facebookImagePickerDidCancelPickingImages:self]; +} + - (void)albumViewController:(OLAlbumViewController *)albumController didFailWithError:(NSError *)error { [self.delegate facebookImagePicker:self didFailWithError:error]; } diff --git a/FacebookImagePicker/OLPhotoViewController.m b/FacebookImagePicker/OLPhotoViewController.m index 7ec14ef..07e777e 100644 --- a/FacebookImagePicker/OLPhotoViewController.m +++ b/FacebookImagePicker/OLPhotoViewController.m @@ -83,8 +83,9 @@ - (NSArray *)selected { [selectedItems addObject:image]; } - [selectedItems addObjectsFromArray:self.selectedImagesInFuturePages]; - + if (self.isMultiselectEnabled) { + [selectedItems addObjectsFromArray:self.selectedImagesInFuturePages]; + } return selectedItems; } @@ -210,13 +211,8 @@ -(void) collectionView:(UICollectionView *)collectionView didDeselectItemAtIndex } -(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ - if(self.isMultiselectEnabled) { - [self updateTitleWithSelectedIndexPaths:collectionView.indexPathsForSelectedItems]; + [self updateTitleWithSelectedIndexPaths:collectionView.indexPathsForSelectedItems]; - } else { - [collectionView deselectItemAtIndexPath:indexPath animated:NO]; - } - if ([self.delegate respondsToSelector:@selector(photoViewController:didSelectImage:)]){ [self.delegate photoViewController:self didSelectImage:[self.photos objectAtIndex:indexPath.item]]; } diff --git a/FacebookImagePicker/Podfile b/FacebookImagePicker/Podfile index f80d8e9..dfe83f8 100644 --- a/FacebookImagePicker/Podfile +++ b/FacebookImagePicker/Podfile @@ -1,2 +1,4 @@ -pod 'FBSDKCoreKit', '~> 4.8.0' -pod 'FBSDKLoginKit', '~> 4.8.0' +target 'FacebookImagePicker' do + pod 'FBSDKCoreKit', '~> 4.13.1' + pod 'FBSDKLoginKit', '~> 4.13.1' +end \ No newline at end of file From d781b18687a2709644f912abe7a3ec1f1c80acfe Mon Sep 17 00:00:00 2001 From: Daron Tancharoen Date: Fri, 16 Sep 2016 15:08:40 +0700 Subject: [PATCH 3/4] better fix --- FacebookImagePicker/OLAlbumViewController.m | 10 ++++++++-- FacebookImagePicker/OLPhotoViewController.m | 5 ++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/FacebookImagePicker/OLAlbumViewController.m b/FacebookImagePicker/OLAlbumViewController.m index 7974038..27fb4f0 100644 --- a/FacebookImagePicker/OLAlbumViewController.m +++ b/FacebookImagePicker/OLAlbumViewController.m @@ -207,7 +207,13 @@ - (void)cancelButtonClicked{ - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - [self updateSelectedFromPhotoViewController]; + if (self.isMultiselectEnabled) { + // only remember selected photos from other album if enable multiple selection mode + [self updateSelectedFromPhotoViewController]; + } else { + self.selected = nil; + } + } #pragma mark - UITableViewDataSource methods @@ -276,7 +282,7 @@ - (void)photoViewController:(OLPhotoViewController *)photoController didSelectIm } - (void)photoViewController:(OLPhotoViewController *)photoController didDeSelectImage:(OLFacebookImage *)image{ - [self updateSelectedFromPhotoViewController]; + //[self updateSelectedFromPhotoViewController]; } - (BOOL)photoViewController:(OLPhotoViewController *)photoController shouldSelectImage:(OLFacebookImage *)image{ diff --git a/FacebookImagePicker/OLPhotoViewController.m b/FacebookImagePicker/OLPhotoViewController.m index b76d73b..3fb84c2 100644 --- a/FacebookImagePicker/OLPhotoViewController.m +++ b/FacebookImagePicker/OLPhotoViewController.m @@ -83,9 +83,8 @@ - (NSArray *)selected { [selectedItems addObject:image]; } - if (self.isMultiselectEnabled) { - [selectedItems addObjectsFromArray:self.selectedImagesInFuturePages]; - } + [selectedItems addObjectsFromArray:self.selectedImagesInFuturePages]; + return selectedItems; } From 0a4c131c13be063ef865a699d87aa61a6e01bfde Mon Sep 17 00:00:00 2001 From: Daron Tancharoen Date: Fri, 12 Jan 2018 14:25:19 +0700 Subject: [PATCH 4/4] remove Facebook version from pod dependency --- FacebookImagePicker.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FacebookImagePicker.podspec b/FacebookImagePicker.podspec index 9ab8098..1ce5eb0 100644 --- a/FacebookImagePicker.podspec +++ b/FacebookImagePicker.podspec @@ -14,6 +14,6 @@ Pod::Spec.new do |s| } s.source_files = ['FacebookImagePicker/OL*.{h,m}', 'FacebookImagePicker/UIImageView+FacebookFadeIn.{h,m}'] s.resources = ['FacebookImagePicker/FacebookImagePicker.xcassets', 'FacebookImagePicker/*.xib'] - s.dependency 'FBSDKCoreKit', '~> 4.13.1' - s.dependency 'FBSDKLoginKit', '~> 4.13.1' + s.dependency 'FBSDKCoreKit' + s.dependency 'FBSDKLoginKit' end