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]()