Files
suixinkan_uikit/suixinkan/DataStore/AppPaymentStore.swift
汉秋 005349f8e6 模块化 AppStore 并完善素材管理与个人空间设置。
将会话、权限、位置、收款与排队存储拆分为独立模块,同步更新各 ViewModel 与单元测试,并补充素材管理 UI 与个人空间设置交互。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-13 11:01:08 +08:00

39 lines
1.0 KiB
Swift

//
// AppPaymentStore.swift
// suixinkan
//
import Foundation
///
final class AppPaymentStore {
private enum Key: String, CaseIterable {
case isOpenReceiveVoice = "key_is_open_receive_voice"
}
private let defaults: UserDefaults
private let session: AppSessionStore
/// 使
init(defaults: UserDefaults, session: AppSessionStore) {
self.defaults = defaults
self.session = session
}
///
var isOpenReceiveVoice: Bool {
get { defaults.bool(forKey: scopedKey(.isOpenReceiveVoice)) }
set { defaults.set(newValue, forKey: scopedKey(.isOpenReceiveVoice)) }
}
///
func clear() {
Key.allCases.forEach { defaults.removeObject(forKey: scopedKey($0)) }
}
private func scopedKey(_ key: Key) -> String {
"\(session.accountCachePrefix)_\(key.rawValue)"
}
}