mirror of
https://github.com/lifegpc/eh_downloader_flutter.git
synced 2026-07-08 01:30:28 +08:00
Add new settings displayAd
This commit is contained in:
@@ -18,13 +18,14 @@ class GalleryInfo extends StatefulWidget {
|
||||
|
||||
class _GalleryInfo extends State<GalleryInfo> with ThemeModeWidget {
|
||||
final ScrollController controller = ScrollController();
|
||||
void showNsfwChanged(dynamic _) {
|
||||
void stateChanged(dynamic _) {
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
listener.on("showNsfwChanged", showNsfwChanged);
|
||||
listener.on("showNsfwChanged", stateChanged);
|
||||
listener.on("displayAdChanged", stateChanged);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@@ -76,7 +77,8 @@ class _GalleryInfo extends State<GalleryInfo> with ThemeModeWidget {
|
||||
@override
|
||||
void dispose() {
|
||||
controller.dispose();
|
||||
listener.removeEventListener("showNsfwChanged", showNsfwChanged);
|
||||
listener.removeEventListener("showNsfwChanged", stateChanged);
|
||||
listener.removeEventListener("displayAdChanged", stateChanged);
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import '../api/file.dart';
|
||||
import '../api/gallery.dart';
|
||||
import '../globals.dart';
|
||||
import 'thumbnail.dart';
|
||||
|
||||
class ThumbnailGridView extends StatelessWidget {
|
||||
@@ -12,11 +13,13 @@ class ThumbnailGridView extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final displayAd = prefs.getBool("displayAd") ?? false;
|
||||
final npages = displayAd ? pages : pages.where((e) => !e.isAd).toList();
|
||||
return SliverGrid.builder(
|
||||
gridDelegate: gridDelegate,
|
||||
itemCount: pages.length,
|
||||
itemCount: npages.length,
|
||||
itemBuilder: (context, index) {
|
||||
final page = pages[index]!;
|
||||
final page = npages[index]!;
|
||||
final fileId =
|
||||
files != null ? files!.files[page.token]!.first.id : null;
|
||||
return Container(
|
||||
|
||||
@@ -181,6 +181,24 @@ List<PopupMenuEntry<MoreVertSettings>> buildMoreVertSettings(
|
||||
title: Text(AppLocalizations.of(context)!.showNsfw),
|
||||
),
|
||||
)));
|
||||
var displayAd = prefs.getBool("displayAd") ?? false;
|
||||
list.add(PopupMenuItem(
|
||||
child: StatefulBuilder(
|
||||
builder: (context, setState) => CheckboxListTile(
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
value: displayAd,
|
||||
onChanged: (value) {
|
||||
if (value != null) {
|
||||
prefs.setBool("displayAd", value);
|
||||
listener.emit("displayAdChanged", null);
|
||||
setState(() {
|
||||
displayAd = value;
|
||||
});
|
||||
}
|
||||
},
|
||||
title: Text(AppLocalizations.of(context)!.displayAd),
|
||||
),
|
||||
)));
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,5 +29,6 @@
|
||||
"colon": ":",
|
||||
"copyImage": "Copy image to clipboard",
|
||||
"copyImgUrl": "Copy image URL to clipboard",
|
||||
"retry": "Retry"
|
||||
"retry": "Retry",
|
||||
"displayAd": "Display Ad pages"
|
||||
}
|
||||
|
||||
@@ -29,5 +29,6 @@
|
||||
"colon": ":",
|
||||
"copyImage": "复制图片到剪贴板",
|
||||
"copyImgUrl": "复制图片链接到剪贴板",
|
||||
"retry": "重试"
|
||||
"retry": "重试",
|
||||
"displayAd": "显示广告页面"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user