keep cranking away at review latency
- ID
af7cab6- date
2023-06-10 08:00:20+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
2f376ec- message
keep cranking away at review latency- changed files
Changed files
BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift (338) → BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift (321)
diff --git a/BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift b/BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift
index 800e20f..fb7b1d9 100644
--- a/BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift
+++ b/BlinkReviewer/BlinkReviewer/BlinkReviewerApp.swift
@@ -13,8 +13,7 @@ struct BlinkReviewerApp: App {
var body: some Scene {
WindowGroup {
- PhotoReviewer()
- .environmentObject(photosLibrary)
+ PhotoReviewer().environmentObject(photosLibrary)
}
}
}
BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift (6756) → BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift (6798)
diff --git a/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift b/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
index 59fffe6..d1a7c6c 100644
--- a/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
+++ b/BlinkReviewer/BlinkReviewer/Photos/PhotosLibrary.swift
@@ -33,7 +33,7 @@ class PhotosLibrary: NSObject, ObservableObject, PHPhotoLibraryChangeObserver {
}
func photoLibraryDidChange(_ changeInstance: PHChange) {
- print("calling photoLibraryDidChange")
+ print("--> calling photoLibraryDidChange \(changeInstance.description)")
print(changeInstance.description)
updateStatus(changeInstance)
}
@@ -63,25 +63,25 @@ class PhotosLibrary: NSObject, ObservableObject, PHPhotoLibraryChangeObserver {
if let assetsChangeDetails = changeInstance.changeDetails(for: self.assets2) {
self.assets2 = assetsChangeDetails.fetchResultAfterChanges
} else {
- self.assets2 = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: options)
+// self.assets2 = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: options)
}
if let approvedChangeDetails = changeInstance.changeDetails(for: self.approvedAssets) {
self.approvedAssets = approvedChangeDetails.fetchResultAfterChanges
} else {
- self.approvedAssets = PHAsset.fetchAssets(in: self.approved, options: nil)
+// self.approvedAssets = PHAsset.fetchAssets(in: self.approved, options: nil)
}
if let rejectedChangeDetails = changeInstance.changeDetails(for: self.rejectedAssets) {
self.rejectedAssets = rejectedChangeDetails.fetchResultAfterChanges
} else {
- self.rejectedAssets = PHAsset.fetchAssets(in: self.rejected, options: nil)
+// self.rejectedAssets = PHAsset.fetchAssets(in: self.rejected, options: nil)
}
if let needsActionChangeDetails = changeInstance.changeDetails(for: self.needsActionAssets) {
self.needsActionAssets = needsActionChangeDetails.fetchResultAfterChanges
} else {
- self.needsActionAssets = PHAsset.fetchAssets(in: self.needsAction, options: nil)
+// self.needsActionAssets = PHAsset.fetchAssets(in: self.needsAction, options: nil)
}
printElapsed("get all photos data (update)")
BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift (10284) → BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift (10497)
diff --git a/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift b/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
index f4a8985..20e5ee6 100644
--- a/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/PhotoReviewer.swift
@@ -104,12 +104,17 @@ struct PhotoReviewer: View {
let needsAction = getAlbum(withName: "Needs Action")
try! PHPhotoLibrary.shared().performChangesAndWait {
- // Strictly speaking, the first condition is a combination of two:
+ // The first condition is a combination of two:
//
- // 1. The action is `toggle-approved` and the photo is approved,
- // in which case toggling means un-approving it.
- // 2. The action is anything else and the photo is approved, in
- // which case setting the new status means removing approved.
+ // -- the photo is already approved and you hit the "approve" hotkey,
+ // -- so un-approve it
+ // state == .Approved && e.characters == "1"
+ //
+ // -- the photo is already approved and you selected a different review
+ // -- state, so unapprove it
+ // state == .Approved && e.characters != "1"
+ //
+ // We can optimise it into a single case, but it does make sense!
//
// Similar logic applies for all three conditions.
if state == .Approved {
BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift (1827) → BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift (1932)
diff --git a/BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift b/BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift
index 25a2503..6b3f7a8 100644
--- a/BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/Thumbnails/NewThumbnailImage.swift
@@ -24,6 +24,8 @@ struct NewThumbnailImage: View {
// `body` method, which is too late! So instead we have the parent
// view call into PhotosLibrary and pass in the relevant values here.
init(_ assetImage: PHAssetImage, state: ReviewState?, isFavorite: Bool, isFocused: Bool) {
+ print("Redrawing thumbnail image! \(assetImage.asset?.localIdentifier ?? "(unknown)")")
+
self.assetImage = assetImage
self.state = state
self.isFavorite = isFavorite