31 lines
1.4 KiB
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;
|
|
}
|
|
}
|