JJ_MKVMaker/lib/app/settings/vault_settings.dart

31 lines
1.4 KiB
Dart

import 'settings_group.dart';
/// 약속 (설정 A): 환경 설정 > 암호 보관함 - 자기 키 (이름 · 처음 값 · 읽기 · 쓰기) 를 스스로 갖는다.
/// 설정 하나를 더할 때는 이 파일만 고친다. 저장 파일의 키 이름은 예전 그대로 (평평한 키)
class VaultSettings implements SettingsGroup {
/// X-plore 비교 5-2 암호 보관함 (사용자 결정 10/21, 관리자 결정): 처음 끔. 보관함 자체는 설정이 아니라 그 폴더 (vault.json · *.jjv) 에 있다 -
/// 설정을 처음 상태로 돌려도 보관함은 그대로 (끄기만 됨)
bool enabled = false;
/// [마스터로도 열기] - 보관함 열쇠 한 벌을 안전 저장소 (마스터 비밀번호로 막힘) 에 둔다. 처음 끔. 마스터를 초기화하면 그 한 벌은 지워진다
bool masterCopy = false;
/// 앱이 뒤로 간 뒤 이만큼 (초) 지나면 다시 잠금 (처음 60)
int autoLockSeconds = 60;
@override
void write(Map<String, Object?> j, {required bool plainSecrets}) {
j['vaultEnabled'] = enabled;
j['vaultMasterCopy'] = masterCopy;
j['vaultAutoLockSeconds'] = autoLockSeconds;
}
@override
void read(Map<String, dynamic> j) {
enabled = j['vaultEnabled'] == true;
masterCopy = j['vaultMasterCopy'] == true;
autoLockSeconds = j['vaultAutoLockSeconds'] is num ? (j['vaultAutoLockSeconds'] as num).round().clamp(0, 3600) : 60;
}
}