Update settings

This commit is contained in:
2023-09-08 16:29:04 +08:00
parent 64ce9ddf5d
commit 0826ba8fc6
5 changed files with 80 additions and 5 deletions

View File

@@ -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),
],
);

View File

@@ -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));
}
}));
});

View File

@@ -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)"
}

View File

@@ -30,5 +30,6 @@
"copyImage": "复制图片到剪贴板",
"copyImgUrl": "复制图片链接到剪贴板",
"retry": "重试",
"displayAd": "显示广告页面"
"displayAd": "显示广告页面",
"showTranslatedTag": "显示标签翻译(仅限中文)"
}

View File

@@ -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: [