45 lines
1.8 KiB
Dart
45 lines
1.8 KiB
Dart
|
|
import 'settings_group.dart';
|
|
|
|
/// 약속 (설정 A): 환경 설정 > Tor 釉뚮씪?곗? (?ъ슜???붿껌 10/10) - 자기 키 (이름 · 처음 값 · 읽기 · 쓰기) 를 스스로 갖는다.
|
|
/// 설정 하나를 더할 때는 이 파일만 고친다. 저장 파일의 키 이름은 예전 그대로 (평평한 키)
|
|
class TorBrowserSettings implements SettingsGroup {
|
|
/// Tor 화면의 쿠키 · 기록 · 캐시를 닫은 뒤에도 남기기 (기본: 닫으면 지움)
|
|
bool keepData = false;
|
|
|
|
/// Tor 화면을 떠난 뒤 tor 를 몇 분 더 켜 둘지 (0 = 바로 끔, 처음 2분 - 관리자 결정 10/11). 웹 뷰 · 다리 · 프록시는 늘 바로 정리
|
|
int idleMinutes = 2;
|
|
|
|
/// Tor 화면의 처음 · 🏠 주소
|
|
String homeUrl = defaultHome;
|
|
static const defaultHome = 'https://check.torproject.org/';
|
|
|
|
/// Tor 화면의 JavaScript (끄면 더 안전하지만 많은 사이트가 보이지 않음)
|
|
bool javaScript = true;
|
|
|
|
/// "공식 Tor Browser 가 아닙니다" 안내를 보았는지 (처음 열 때 한 번)
|
|
bool noticeSeen = false;
|
|
|
|
@override
|
|
void write(Map<String, Object?> j, {required bool plainSecrets}) {
|
|
j['torKeepData'] = keepData;
|
|
j['torIdleMinutes'] = idleMinutes;
|
|
j['torHomeUrl'] = homeUrl;
|
|
j['torJavaScript'] = javaScript;
|
|
j['torNoticeSeen'] = noticeSeen;
|
|
}
|
|
|
|
@override
|
|
void read(Map<String, dynamic> j) {
|
|
keepData = j['torKeepData'] == true;
|
|
idleMinutes = j['torIdleMinutes'] is int && (j['torIdleMinutes'] as int) >= 0 && (j['torIdleMinutes'] as int) <= 60
|
|
? j['torIdleMinutes'] as int
|
|
: 2;
|
|
homeUrl = j['torHomeUrl'] is String && (j['torHomeUrl'] as String).trim().isNotEmpty
|
|
? (j['torHomeUrl'] as String).trim()
|
|
: defaultHome;
|
|
javaScript = j['torJavaScript'] != false;
|
|
noticeSeen = j['torNoticeSeen'] == true;
|
|
}
|
|
}
|