mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-06-11 08:29:02 +08:00
Update settings
This commit is contained in:
@@ -68,7 +68,7 @@ class _GalleryInfo extends State<GalleryInfo> with ThemeModeWidget {
|
||||
]),
|
||||
),
|
||||
ThumbnailGridView(widget.gData.pages,
|
||||
const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 5),
|
||||
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: useMobile ? 2 : 5),
|
||||
files: widget.files),
|
||||
],
|
||||
);
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import '../api/gallery.dart';
|
||||
import '../globals.dart';
|
||||
import '../main.dart';
|
||||
import 'scroll_parent.dart';
|
||||
|
||||
class TagsPanel extends StatefulWidget {
|
||||
@@ -53,6 +54,8 @@ class _TagsPanel extends State<TagsPanel> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final cs = Theme.of(context).colorScheme;
|
||||
final stt = prefs.getBool("showTranslatedTag") ??
|
||||
MainApp.of(context).lang.toLocale().languageCode == "zh";
|
||||
final re = ListView.builder(
|
||||
padding: const EdgeInsets.all(8),
|
||||
itemCount: data!.length,
|
||||
@@ -60,7 +63,7 @@ class _TagsPanel extends State<TagsPanel> {
|
||||
final t = data![index].$1;
|
||||
final ta = data![index].$2;
|
||||
final namespace =
|
||||
"${tags.getTagTranslate(t) ?? t}${AppLocalizations.of(context)!.colon}";
|
||||
"${stt ? (tags.getTagTranslate(t) ?? t) : t}${AppLocalizations.of(context)!.colon}";
|
||||
return Wrap(
|
||||
children: List.generate(ta.length + 1, (index) {
|
||||
if (index == 0) {
|
||||
@@ -74,7 +77,8 @@ class _TagsPanel extends State<TagsPanel> {
|
||||
borderRadius: const BorderRadius.all(Radius.circular(4.0)),
|
||||
border: Border.all(width: 1, color: cs.primary),
|
||||
),
|
||||
child: SelectableText(_getTag(ta[index - 1]!)));
|
||||
child: SelectableText(
|
||||
stt ? _getTag(ta[index - 1]!) : ta[index - 1]!.tag));
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
@@ -30,5 +30,6 @@
|
||||
"copyImage": "Copy image to clipboard",
|
||||
"copyImgUrl": "Copy image URL to clipboard",
|
||||
"retry": "Retry",
|
||||
"displayAd": "Display Ad pages"
|
||||
"displayAd": "Display Ad pages",
|
||||
"showTranslatedTag": "Show translated tag (Chinese only)"
|
||||
}
|
||||
|
||||
@@ -30,5 +30,6 @@
|
||||
"copyImage": "复制图片到剪贴板",
|
||||
"copyImgUrl": "复制图片链接到剪贴板",
|
||||
"retry": "重试",
|
||||
"displayAd": "显示广告页面"
|
||||
"displayAd": "显示广告页面",
|
||||
"showTranslatedTag": "显示标签翻译(仅限中文)"
|
||||
}
|
||||
|
||||
@@ -17,11 +17,15 @@ class SettingsPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _SettingsPage extends State<SettingsPage> with ThemeModeWidget {
|
||||
bool _oriDisplayAd = false;
|
||||
Lang _oriLang = Lang.system;
|
||||
bool _oriShowNsfw = false;
|
||||
bool _oriShowTranslatedTag = false;
|
||||
bool _oriUseTitleJpn = false;
|
||||
bool _displayAd = false;
|
||||
Lang _lang = Lang.system;
|
||||
bool _showNsfw = false;
|
||||
bool _showTranslatedTag = false;
|
||||
bool _useTitleJpn = false;
|
||||
@override
|
||||
void initState() {
|
||||
@@ -50,6 +54,23 @@ class _SettingsPage extends State<SettingsPage> with ThemeModeWidget {
|
||||
_oriShowNsfw = false;
|
||||
_showNsfw = false;
|
||||
}
|
||||
try {
|
||||
_oriDisplayAd = prefs.getBool("displayAd") ?? false;
|
||||
_displayAd = _oriDisplayAd;
|
||||
} catch (e) {
|
||||
_log.warning("Failed to get displayAd:", e);
|
||||
_oriDisplayAd = false;
|
||||
_displayAd = false;
|
||||
}
|
||||
try {
|
||||
_oriShowTranslatedTag = prefs.getBool("showTranslatedTag") ??
|
||||
_oriLang.toLocale().languageCode == "zh";
|
||||
_showTranslatedTag = _oriShowTranslatedTag;
|
||||
} catch (e) {
|
||||
_log.warning("Failed to get showTranslatedTag:", e);
|
||||
_oriShowTranslatedTag = false;
|
||||
_showTranslatedTag = false;
|
||||
}
|
||||
}
|
||||
|
||||
void fallback(BuildContext context) {
|
||||
@@ -64,6 +85,8 @@ class _SettingsPage extends State<SettingsPage> with ThemeModeWidget {
|
||||
_lang = Lang.system;
|
||||
_useTitleJpn = false;
|
||||
_showNsfw = false;
|
||||
_displayAd = false;
|
||||
_showTranslatedTag = _oriLang.toLocale().languageCode == "zh";
|
||||
});
|
||||
}
|
||||
|
||||
@@ -91,6 +114,22 @@ class _SettingsPage extends State<SettingsPage> with ThemeModeWidget {
|
||||
_oriShowNsfw = _showNsfw;
|
||||
}
|
||||
}
|
||||
if (_oriDisplayAd != _displayAd) {
|
||||
if (!await prefs.setBool("displayAd", _displayAd)) {
|
||||
re = false;
|
||||
_log.warning("Failed to save displayAd.");
|
||||
} else {
|
||||
_oriDisplayAd = _displayAd;
|
||||
}
|
||||
}
|
||||
if (_oriShowTranslatedTag != _showTranslatedTag) {
|
||||
if (!await prefs.setBool("showTranslatedTag", _showTranslatedTag)) {
|
||||
re = false;
|
||||
_log.warning("Failed to save showTranslatedTag.");
|
||||
} else {
|
||||
_oriShowTranslatedTag = _showTranslatedTag;
|
||||
}
|
||||
}
|
||||
return re;
|
||||
}
|
||||
|
||||
@@ -179,6 +218,36 @@ class _SettingsPage extends State<SettingsPage> with ThemeModeWidget {
|
||||
AppLocalizations.of(context)!.showNsfw),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
child: CheckboxMenuButton(
|
||||
value: _displayAd,
|
||||
onChanged: (bool? value) {
|
||||
if (value != null) {
|
||||
setState(() {
|
||||
_displayAd = value;
|
||||
});
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
AppLocalizations.of(context)!.displayAd),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
padding: const EdgeInsets.symmetric(vertical: 8),
|
||||
child: CheckboxMenuButton(
|
||||
value: _showTranslatedTag,
|
||||
onChanged: (bool? value) {
|
||||
if (value != null) {
|
||||
setState(() {
|
||||
_showTranslatedTag = value;
|
||||
});
|
||||
}
|
||||
},
|
||||
child: Text(AppLocalizations.of(context)!
|
||||
.showTranslatedTag),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user