diff options
Diffstat (limited to 'Sora/Data/Settings')
| -rw-r--r-- | Sora/Data/Settings/SettingsBookmark.swift | 3 | ||||
| -rw-r--r-- | Sora/Data/Settings/SettingsBookmarkSort.swift | 5 | ||||
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 20 |
3 files changed, 28 insertions, 0 deletions
diff --git a/Sora/Data/Settings/SettingsBookmark.swift b/Sora/Data/Settings/SettingsBookmark.swift index 34b87f4..41c63af 100644 --- a/Sora/Data/Settings/SettingsBookmark.swift +++ b/Sora/Data/Settings/SettingsBookmark.swift @@ -6,9 +6,12 @@ struct SettingsBookmark: Codable, Identifiable, Hashable { let createdAt: Date let provider: BooruProvider var folder: UUID? + var lastVisit: Date + var visitedCount = 0 init(provider: BooruProvider, tags: [String], folder: UUID? = nil, id: UUID = UUID()) { createdAt = Date() + lastVisit = Date() self.id = id self.tags = tags self.provider = provider diff --git a/Sora/Data/Settings/SettingsBookmarkSort.swift b/Sora/Data/Settings/SettingsBookmarkSort.swift new file mode 100644 index 0000000..290aa8d --- /dev/null +++ b/Sora/Data/Settings/SettingsBookmarkSort.swift @@ -0,0 +1,5 @@ +enum SettingsBookmarkSort: String, CaseIterable { + case dateBookmarked = "Date Bookmarked" + case lastVisited = "Last Visited" + case visitedCount = "Visited Count" +} diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index 1d6e2b8..0b5af21 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -393,6 +393,26 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l self.syncToCloud() } + func updateBookmarkLastVisit(withID id: UUID, date: Date = Date()) { + guard let index = bookmarks.firstIndex(of: bookmarks.first(where: { $0.id == id })!) else { + return + } + + bookmarks[index].lastVisit = date + + self.syncToCloud() + } + + func incrementBookmarkVisitCount(withID id: UUID) { + guard let index = bookmarks.firstIndex(of: bookmarks.first(where: { $0.id == id })!) else { + return + } + + bookmarks[index].visitedCount += 1 + + self.syncToCloud() + } + func folderName(forID id: UUID) -> String? { folders.first { $0.id == id }?.name } |