63 lines
1.9 KiB
Swift
63 lines
1.9 KiB
Swift
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)
|
||
}
|
||
}
|