JJ_MKVMaker/lib/app/settings/explorer_tool_settings.dart

45 lines
2.2 KiB
Dart

import 'settings_group.dart';
/// 약속 (설정 A): 환경 설정 > 탐색기 도구 - 시스템 폴더 (Shizuku) · 루트 · Wi-Fi 공유 · ZIP 묶기 - 자기 키 (이름 · 처음 값 · 읽기 · 쓰기) 를 스스로 갖는다.
/// 설정 하나를 더할 때는 이 파일만 고친다. 저장 파일의 키 이름은 예전 그대로 (평평한 키)
class ExplorerToolSettings implements SettingsGroup {
/// X-plore 비교 5-2 시스템 폴더 보기 (Shizuku, 읽기 전용, 사용자 결정 10/21 · 관리자 결정: 처음 끔 · 켤 때마다 경고)
bool shizukuEnabled = false;
/// X-plore 비교 5-2 루트 폴더 보기 (su, 읽기 전용, 관리자 결정 10/21: Shizuku 와 같은 틀 - 처음 끔 · 켤 때 · 처음 열 때 경고)
bool rootEnabled = false;
/// 89: Wi-Fi 공유 - 저절로 끄는 시간 (분, 0 = 끄지 않음). 처음 값 30분 (관리자 지시 10/17)
int wifiShareMinutes = 30;
/// 89 · 보안 검토 3: Wi-Fi 공유를 Tailscale (100.64/10, 내 tailnet 의 기기) 주소에서도 연다 (관리자 결정 10/18: 처음 켬)
bool wifiShareTailscale = true;
/// 89: Wi-Fi 공유로 마지막에 고른 폴더 (다시 켤 때 처음 고른 것)
String wifiShareFolder = '';
/// 86: ZIP 으로 묶기의 압축 정도 (1 빠르게 · 6 보통 (처음 값) · 9 작게) - 마지막에 고른 것을 기억
int zipLevel = 6;
@override
void write(Map<String, Object?> j, {required bool plainSecrets}) {
j['shizukuEnabled'] = shizukuEnabled;
j['rootEnabled'] = rootEnabled;
j['wifiShareMinutes'] = wifiShareMinutes;
j['wifiShareTailscale'] = wifiShareTailscale;
j['wifiShareFolder'] = wifiShareFolder;
j['zipLevel'] = zipLevel;
}
@override
void read(Map<String, dynamic> j) {
shizukuEnabled = j['shizukuEnabled'] == true;
rootEnabled = j['rootEnabled'] == true;
zipLevel = const [1, 6, 9].contains(j['zipLevel']) ? j['zipLevel'] as int : 6;
wifiShareMinutes = const [0, 10, 30, 60, 120].contains(j['wifiShareMinutes']) ? j['wifiShareMinutes'] as int : 30;
wifiShareTailscale = j['wifiShareTailscale'] is bool ? j['wifiShareTailscale'] as bool : true;
wifiShareFolder = j['wifiShareFolder'] is String ? j['wifiShareFolder'] as String : '';
}
}