Files
JetsonMediaIOS/Jetson Media/cache/ReadingProgressManager.swift
2025-08-17 22:08:25 +08:00

63 lines
1.9 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Foundation
class ReadingProgressManager {
static let shared = ReadingProgressManager()
private let userDefaults = UserDefaults.standard
private init() {}
///
func saveProgress(albumId: String, imageIndex: Int) {
userDefaults.set(imageIndex, forKey: progressKey(albumId: albumId))
print("已保存进度 - 漫画ID: \(albumId), 图片索引: \(imageIndex)")
}
///
func getProgress(albumId: String) -> Int {
return userDefaults.integer(forKey: progressKey(albumId: albumId))
}
///
func clearProgress(albumId: String) {
userDefaults.removeObject(forKey: progressKey(albumId: albumId))
}
///
private func progressKey(albumId: String) -> String {
return "readingProgress_\(albumId)"
}
}
///
class FavoriteManager {
static let shared = FavoriteManager()
private let userDefaults = UserDefaults.standard
private let favoriteKey = "favoriteAlbumIds"
private init() {}
/// ID
var favoriteAlbumIds: [String] {
userDefaults.array(forKey: favoriteKey) as? [String] ?? []
}
///
/// - Parameter albumId: ID
func toggleFavorite(albumId: String) {
var favorites = favoriteAlbumIds
if favorites.contains(albumId) {
favorites.removeAll { $0 == albumId }
} else {
favorites.append(albumId)
}
userDefaults.set(favorites, forKey: favoriteKey)
}
///
/// - Parameter albumId: ID
/// - Returns:
func isFavorite(albumId: String) -> Bool {
return favoriteAlbumIds.contains(albumId)
}
}