start writing a faster path for dealing with updates
- ID
8039a1d- date
2023-06-09 22:22:57+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
5fda324- message
start writing a faster path for dealing with updates- changed files
1 file, 24 additions, 1 deletion
Changed files
BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift (2796) → BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift (3802)
diff --git a/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift b/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
index 0ee586e..7034eec 100644
--- a/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
+++ b/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
@@ -36,8 +36,31 @@ class PhotosLibrary: NSObject, ObservableObject, PHPhotoLibraryChangeObserver {
func photoLibraryDidChange(_ changeInstance: PHChange) {
print("calling photoLibraryDidChange")
print(changeInstance.description)
- updateStatus(isChange: true)
+ updateStatus(changeInstance)
}
+
+ private func updateStatus(_ changeInstance: PHChange) {
+ DispatchQueue.main.async {
+ let options = PHFetchOptions()
+ options.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
+ options.fetchLimit = 500
+
+// print()
+
+ if let changeDetails = changeInstance.changeDetails(for: self.assets2) {
+ self.assets2 = changeDetails.fetchResultAfterChanges
+ } else {
+ self.assets2 = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: options)
+ }
+
+ self.approvedAssets = PHAsset.fetchAssets(in: self.approved, options: nil)
+ self.rejectedAssets = PHAsset.fetchAssets(in: self.rejected, options: nil)
+ self.needsActionAssets = PHAsset.fetchAssets(in: self.needsAction, options: nil)
+
+ self.isPhotoLibraryAuthorized = PHPhotoLibrary.authorizationStatus() == .authorized
+ }
+ }
+
private func updateStatus(isChange: Bool) {
DispatchQueue.main.async {