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 j, {required bool plainSecrets}) { j['vaultEnabled'] = enabled; j['vaultMasterCopy'] = masterCopy; j['vaultAutoLockSeconds'] = autoLockSeconds; } @override void read(Map j) { enabled = j['vaultEnabled'] == true; masterCopy = j['vaultMasterCopy'] == true; autoLockSeconds = j['vaultAutoLockSeconds'] is num ? (j['vaultAutoLockSeconds'] as num).round().clamp(0, 3600) : 60; } }