diff --git a/Pod/Classes/WPMediaPickerViewController.h b/Pod/Classes/WPMediaPickerViewController.h index 902e6e79..bd51732d 100644 --- a/Pod/Classes/WPMediaPickerViewController.h +++ b/Pod/Classes/WPMediaPickerViewController.h @@ -111,7 +111,8 @@ /** * Asks the delegate for a view controller to push when previewing the specified asset. - * If this method isn't implemented or returns nil, the default view controller will be used. + * If this method isn't implemented, the default view controller will be used. + * If it returns nil, no preview will be displayed. * * @param picker The controller object managing the assets picker interface. * @param asset The asset to be previewed. @@ -164,5 +165,10 @@ */ - (void)setGroup:(nonnull id)group; +/** + * Clears the current asset selection in the picker. + */ +- (void)clearSelectedAssets:(BOOL)animated; + @end diff --git a/Pod/Classes/WPMediaPickerViewController.m b/Pod/Classes/WPMediaPickerViewController.m index 03c63e1d..3d9512bc 100644 --- a/Pod/Classes/WPMediaPickerViewController.m +++ b/Pod/Classes/WPMediaPickerViewController.m @@ -139,6 +139,24 @@ - (BOOL)isShowingCaptureCell return self.allowCaptureOfMedia && [self isMediaDeviceAvailable] && !self.refreshGroupFirstTime; } +- (void)setAllowMultipleSelection:(BOOL)allowMultipleSelection +{ + _allowMultipleSelection = allowMultipleSelection; + + if (self.isViewLoaded) { + self.collectionView.allowsMultipleSelection = allowMultipleSelection; + } +} + +- (void)clearSelectedAssets:(BOOL)animated +{ + for (NSIndexPath *indexPath in [self.collectionView indexPathsForSelectedItems]) { + [self.collectionView deselectItemAtIndexPath:indexPath animated:animated]; + } + + [self.selectedAssets removeAllObjects]; +} + #pragma mark - UICollectionViewDataSource -(void)updateDataWithRemoved:(NSIndexSet *)removed inserted:(NSIndexSet *)inserted changed:(NSIndexSet *)changed moved:(NSArray> *)moves { @@ -709,18 +727,12 @@ - (nullable UIViewController *)previewControllerForTouchLocation:(CGPoint)locati - (UIViewController *)previewViewControllerForAsset:(id )asset { - UIViewController *previewViewController = nil; - if ([self.mediaPickerDelegate respondsToSelector:@selector(mediaPickerController:previewViewControllerForAsset:)]) { - previewViewController = [self.mediaPickerDelegate mediaPickerController:self - previewViewControllerForAsset:asset]; - } - - if (!previewViewController) { - previewViewController = [self defaultPreviewViewControllerForAsset:asset]; + return [self.mediaPickerDelegate mediaPickerController:self + previewViewControllerForAsset:asset]; } - return previewViewController; + return [self defaultPreviewViewControllerForAsset:asset]; } - (UIViewController *)defaultPreviewViewControllerForAsset:(id )asset