Skip to main content

move out a couple more bits

ID
ae72f2b
date
2023-06-08 09:31:25+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
5361a64
message
move out a couple more bits
changed files
3 files, 31 additions, 20 deletions

Changed files

BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj (24646) → BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj (24682)

diff --git a/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj b/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
index d50c739..49ef119 100644
--- a/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
+++ b/BlinkReviewer/BlinkReviewer.xcodeproj/project.pbxproj
@@ -18,7 +18,7 @@
 		94D7511E2A31B243005859E7 /* PreviewImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511D2A31B243005859E7 /* PreviewImage.swift */; };
 		94D751202A31B53E005859E7 /* AlbumInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7511F2A31B53E005859E7 /* AlbumInfo.swift */; };
 		94D751222A31BD8E005859E7 /* PhotoReviewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D751212A31BD8E005859E7 /* PhotoReviewer.swift */; };
-		94D751292A31D629005859E7 /* Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D751282A31D629005859E7 /* Assets.swift */; };
+		94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -54,7 +54,7 @@
 		94D7511D2A31B243005859E7 /* PreviewImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewImage.swift; sourceTree = "<group>"; };
 		94D7511F2A31B53E005859E7 /* AlbumInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumInfo.swift; sourceTree = "<group>"; };
 		94D751212A31BD8E005859E7 /* PhotoReviewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoReviewer.swift; sourceTree = "<group>"; };
-		94D751282A31D629005859E7 /* Assets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Assets.swift; sourceTree = "<group>"; };
+		94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssetHelpers.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -155,7 +155,7 @@
 		94D751272A31D61D005859E7 /* Photos */ = {
 			isa = PBXGroup;
 			children = (
-				94D751282A31D629005859E7 /* Assets.swift */,
+				94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */,
 			);
 			path = Photos;
 			sourceTree = "<group>";
@@ -291,8 +291,8 @@
 			buildActionMask = 2147483647;
 			files = (
 				94D7511C2A31A7B1005859E7 /* ThumbnailItem.swift in Sources */,
-				94D751292A31D629005859E7 /* Assets.swift in Sources */,
 				94D750F22A31A796005859E7 /* ContentView.swift in Sources */,
+				94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */,
 				94D7511E2A31B243005859E7 /* PreviewImage.swift in Sources */,
 				94D750F02A31A796005859E7 /* BlinkReviewerApp.swift in Sources */,
 				94D751202A31B53E005859E7 /* AlbumInfo.swift in Sources */,

BlinkReviewer/BlinkReviewer/Photos/Assets.swift (431) → BlinkReviewer/BlinkReviewer/Photos/AssetHelpers.swift (878)

diff --git a/BlinkReviewer/BlinkReviewer/Photos/Assets.swift b/BlinkReviewer/BlinkReviewer/Photos/AssetHelpers.swift
similarity index 69%
rename from BlinkReviewer/BlinkReviewer/Photos/Assets.swift
rename to BlinkReviewer/BlinkReviewer/Photos/AssetHelpers.swift
index 32fb9f1..01ef8fe 100644
--- a/BlinkReviewer/BlinkReviewer/Photos/Assets.swift
+++ b/BlinkReviewer/BlinkReviewer/Photos/AssetHelpers.swift
@@ -1,5 +1,5 @@
 //
-//  Assets.swift
+//  Helpers.swift
 //  BlinkReviewer
 //
 //  Created by Alex Chan on 08/06/2023.
@@ -19,3 +19,18 @@ func getAllPhotos() -> [PHAsset] {
     
     return photos
 }
+
+extension PHAsset {
+    /// Returns a list of all the albums that contain this asset.
+    func albums() -> [PHAssetCollection] {
+        var result: [PHAssetCollection] = []
+        
+        PHAssetCollection
+            .fetchAssetCollectionsContaining(self, with: .album, options: nil)
+            .enumerateObjects({ (collection, index, stop) in
+                result.append(collection)
+            })
+        
+        return result
+    }
+}

BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift (1106) → BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift (1066)

diff --git a/BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift b/BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift
index 9d3fd4f..09c7734 100644
--- a/BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/AlbumInfo.swift
@@ -8,28 +8,24 @@
 import SwiftUI
 import Photos
 
-extension PHAsset {
-    func albums() -> [PHAssetCollection] {
-        var result: [PHAssetCollection] = []
-        
-        PHAssetCollection
-            .fetchAssetCollectionsContaining(self, with: .album, options: nil)
-            .enumerateObjects({ (collection, index, stop) in
-                result.append(collection)
-            })
-        
-        return result
-    }
-}
-
+/// This view shows the names of the albums that a given asset is in.
+///
+/// Each album is shown as a separate "pill" in the list, for example:
+///
+///     [Cats] [Cross-stitch] [Stuff I did in 2023]
+///
 struct AlbumInfo: View {
     var asset: PHAsset
     
+    // This was chosen to match the icon used for albums in the sidebar
+    // in Photos.
+    private var albumImage = Image(systemName: "rectangle.stack")
+    
     var body: some View {
         HStack {
             ForEach(asset.albums(), id: \.localIdentifier) { album in
                 if let title = album.localizedTitle {
-                    Text("\(Image(systemName: "rectangle.stack")) \(title)")
+                    Text("\(albumImage) \(title)")
                         .fontWeight(.bold)
                         .font(.title2)
                         .padding(5)