64 lines
2.8 KiB
Dart
64 lines
2.8 KiB
Dart
|
|
import 'settings_group.dart';
|
|
|
|
/// 약속 (설정 A): 환경 설정 > 웹 브라우저 (앱 안 · 외부) - 자기 키 (이름 · 처음 값 · 읽기 · 쓰기) 를 스스로 갖는다.
|
|
/// 설정 하나를 더할 때는 이 파일만 고친다. 저장 파일의 키 이름은 예전 그대로 (평평한 키)
|
|
class BrowserSettings implements SettingsGroup {
|
|
/// 웹 브라우저에서 YouTube 광고 자동 건너뛰기 (건너뛰기 버튼 누르기 · 건너뛸 수 없는 광고는 빨리 감기 · 소리 끄기)
|
|
bool adSkip = true;
|
|
|
|
/// YouTube 페이지의 광고 배너 · 광고 영역 숨기기
|
|
bool adHide = true;
|
|
|
|
/// 웹 브라우저 위에 다른 화면이 올라오거나 다른 화면으로 가면 페이지의 동영상 · 소리를 멈춤 (끄면 계속 들림)
|
|
bool pauseOnLeave = true;
|
|
|
|
String homeUrl = 'https://www.youtube.com/';
|
|
|
|
/// 앱 안 브라우저 엔진: 'edge' (WebView2, 기본). 'chrome' 은 내려받아 연결 (준비 중)
|
|
String engine = 'edge';
|
|
|
|
/// 207: 관리자 권한으로 실행 중일 때도 내장 Chrome 엔진을 쓸지 (처음 꺼짐 - 관리자 판단: 보안이 먼저, CEF 는 샌드박스가 꺼져 있다)
|
|
bool cefWhenElevated = false;
|
|
|
|
/// "외부 브라우저로 열기" 에 쓸 브라우저: 'system' · 'chrome' · 'firefox' · 'edge' · 'whale'
|
|
String external = 'system';
|
|
|
|
/// 앱 안 브라우저: 다른 언어로 된 웹 페이지를 화면 언어 ([uiLanguage]) 로 자동 번역 (Google 번역)
|
|
bool translate = false;
|
|
|
|
/// 앱 안 브라우저: 페이지의 JavaScript 실행 (끄면 스크립트 없이 글 · 그림만)
|
|
bool javaScript = true;
|
|
|
|
/// 66-2: 웹 브라우저에서 화면 옮기기 (위쪽 막대를 좌우로) 안내를 한 번 보였는지
|
|
bool swipeHinted = false;
|
|
|
|
@override
|
|
void write(Map<String, Object?> j, {required bool plainSecrets}) {
|
|
j['youtubeAdSkip'] = adSkip;
|
|
j['youtubeAdHide'] = adHide;
|
|
j['webPauseOnLeave'] = pauseOnLeave;
|
|
j['homeUrl'] = homeUrl;
|
|
j['browserEngine'] = engine;
|
|
j['cefWhenElevated'] = cefWhenElevated;
|
|
j['externalBrowser'] = external;
|
|
j['webTranslate'] = translate;
|
|
j['webJavaScript'] = javaScript;
|
|
j['browserSwipeHinted'] = swipeHinted;
|
|
}
|
|
|
|
@override
|
|
void read(Map<String, dynamic> j) {
|
|
adSkip = j['youtubeAdSkip'] as bool? ?? true;
|
|
adHide = j['youtubeAdHide'] as bool? ?? true;
|
|
pauseOnLeave = j['webPauseOnLeave'] as bool? ?? true;
|
|
homeUrl = j['homeUrl'] as String? ?? 'https://www.youtube.com/';
|
|
engine = j['browserEngine'] as String? ?? 'edge';
|
|
cefWhenElevated = j['cefWhenElevated'] == true;
|
|
external = j['externalBrowser'] as String? ?? 'system';
|
|
translate = j['webTranslate'] as bool? ?? false;
|
|
javaScript = j['webJavaScript'] as bool? ?? true;
|
|
swipeHinted = j['browserSwipeHinted'] == true;
|
|
}
|
|
}
|