From 82d49350efffbc596fc41e52f1f6c3a69e6d645d Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Sun, 9 Dec 2018 11:22:42 -0500 Subject: [PATCH] properly deselect items when switching collections --- .../PhotoLibrary/ImagePickerController.swift | 11 ++++++++++- .../ViewControllers/PhotoLibrary/PhotoLibrary.swift | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Signal/src/ViewControllers/PhotoLibrary/ImagePickerController.swift b/Signal/src/ViewControllers/PhotoLibrary/ImagePickerController.swift index 3e1cdb06b..eae9aa0f1 100644 --- a/Signal/src/ViewControllers/PhotoLibrary/ImagePickerController.swift +++ b/Signal/src/ViewControllers/PhotoLibrary/ImagePickerController.swift @@ -425,6 +425,15 @@ class ImagePickerGridController: UICollectionViewController, PhotoLibraryDelegat // MARK: - PhotoCollectionPickerDelegate func photoCollectionPicker(_ photoCollectionPicker: PhotoCollectionPickerController, didPickCollection collection: PhotoCollection) { + guard photoCollection != collection else { + hideCollectionPicker() + return + } + + // Iff we switched albums, discard any selection and make sure the "Select" button shows, + // not the "Done" button + endSelectMode() + photoCollection = collection photoCollectionContents = photoCollection.contents() @@ -434,7 +443,7 @@ class ImagePickerGridController: UICollectionViewController, PhotoLibraryDelegat navigationItem.title = photoCollection.localizedTitle() } - reloadDataAndRestoreSelection() + collectionView?.reloadData() hideCollectionPicker() } diff --git a/Signal/src/ViewControllers/PhotoLibrary/PhotoLibrary.swift b/Signal/src/ViewControllers/PhotoLibrary/PhotoLibrary.swift index d0848647d..d510e5a3a 100644 --- a/Signal/src/ViewControllers/PhotoLibrary/PhotoLibrary.swift +++ b/Signal/src/ViewControllers/PhotoLibrary/PhotoLibrary.swift @@ -227,6 +227,12 @@ class PhotoCollection { } } +extension PhotoCollection: Equatable { + static func == (lhs: PhotoCollection, rhs: PhotoCollection) -> Bool { + return lhs.collection == rhs.collection + } +} + class PhotoLibrary: NSObject, PHPhotoLibraryChangeObserver { typealias WeakDelegate = Weak var delegates = [WeakDelegate]()