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