:sparkless: Hidden fd icon setting

This commit is contained in:
niuhuan 2023-04-12 17:48:48 +08:00
parent 4a2489dcf4
commit a898bbc438
9 changed files with 72 additions and 59 deletions

View File

@ -1 +1 @@
v1.7.2 v1.7.3

View File

@ -1,6 +1,2 @@
v1.7.2 v1.7.3
- [x] 🐛 修复安卓13导入导出的问题 - [x] ✨ 可以隐藏发电图标
- [x] 🐛 修复测速不好用的问题
- [x] ♻️ 梳理一些权限
- [x] ✨ 增加批量下载功能
- [x] ✨ 增加PAT入会发电

View File

@ -0,0 +1,33 @@
import 'package:event/event.dart';
import 'package:flutter/material.dart';
import '../Method.dart';
const _propertyName = "hiddenFdIcon";
late bool _hiddenFdIcon;
bool get hiddenFdIcon => _hiddenFdIcon;
var hiddenFdIconEvent = Event<EventArgs>();
Future initHiddenFdIcon() async {
_hiddenFdIcon = (await method.loadProperty(_propertyName, "false")) == "true";
}
Widget hiddenFdIconSetting() {
return StatefulBuilder(
builder: (BuildContext context, void Function(void Function()) setState) {
return SwitchListTile(
title: const Text("隐藏个人空间的发电图标"),
subtitle: Text(_hiddenFdIcon ? "" : ""),
value: _hiddenFdIcon,
onChanged: (value) async {
await method.saveProperty(_propertyName, "$value");
_hiddenFdIcon = value;
setState(() {});
hiddenFdIconEvent.broadcast();
},
);
},
);
}

View File

@ -1,6 +1,4 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../Common.dart';
import '../Method.dart'; import '../Method.dart';
const _propertyName = "willPopNotice"; const _propertyName = "willPopNotice";
@ -15,24 +13,16 @@ bool willPopNotice() {
return _willPopNotice; return _willPopNotice;
} }
Future<void> _chooseWillPopNotice(BuildContext context) async {
String? result =
await chooseListDialog<String>(context, "退出APP的提示", ["", ""]);
if (result != null) {
var target = result == "";
await method.saveProperty(_propertyName, "$target");
_willPopNotice = target;
}
}
Widget willPopNoticeSetting() { Widget willPopNoticeSetting() {
return StatefulBuilder( return StatefulBuilder(
builder: (BuildContext context, void Function(void Function()) setState) { builder: (BuildContext context, void Function(void Function()) setState) {
return ListTile( return SwitchListTile(
title: const Text("退出APP的提示"), title: const Text("退出APP的提示"),
subtitle: Text(_willPopNotice ? "" : ""), subtitle: Text(_willPopNotice ? "" : ""),
onTap: () async { value: _willPopNotice,
await _chooseWillPopNotice(context); onChanged: (value) async {
await method.saveProperty(_propertyName, "$value");
_willPopNotice = value;
setState(() {}); setState(() {});
}, },
); );

View File

@ -45,6 +45,7 @@ import 'package:uri_to_file/uri_to_file.dart';
import '../basic/config/DownloadCachePath.dart'; import '../basic/config/DownloadCachePath.dart';
import '../basic/config/ExportPath.dart'; import '../basic/config/ExportPath.dart';
import '../basic/config/ExportRename.dart'; import '../basic/config/ExportRename.dart';
import '../basic/config/HiddenFdIcon.dart';
import '../basic/config/IconLoading.dart'; import '../basic/config/IconLoading.dart';
import '../basic/config/IsPro.dart'; import '../basic/config/IsPro.dart';
import '../basic/config/WebDav.dart'; import '../basic/config/WebDav.dart';
@ -109,6 +110,7 @@ class _InitScreenState extends State<InitScreen> {
await reloadIsPro(); await reloadIsPro();
autoCheckNewVersion(); autoCheckNewVersion();
await initWillPopNotice(); await initWillPopNotice();
await initHiddenFdIcon();
await initShowCommentAtDownload(); await initShowCommentAtDownload();
await initDownloadCachePath(); await initDownloadCachePath();
await initUseApiLoadImage(); await initUseApiLoadImage();

View File

@ -67,14 +67,10 @@ class _ProScreenState extends State<ProScreen> {
const Padding( const Padding(
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: Text( child: Text(
"\"关于\"界面找到维护地址可获得发电指引\n\n" "\"关于\"界面找到维护地址可获得发电指引\n"
"1. \"签到/游戏/兑换\" \n" "\n \"我曾经发过电\"可同步相应发电状态"
" (1). \"我曾经发过电\"可同步相应发电状态\n" "\n \"我刚才发了电\"兑换神秘代码"
" (2). \"我刚才发了电\"兑换作者给您的礼物卡\n" "\n\n发电小功能: 多线程下载 / 批量导入导出下载",
"\n"
"2. \"PAT入会\"\n"
" 🔗将社区账号链接到软件, 同步成员状态, 订阅式发电"
"",
), ),
), ),
const Divider(), const Divider(),
@ -120,16 +116,6 @@ class _ProScreenState extends State<ProScreen> {
const Divider(), const Divider(),
...patPro(), ...patPro(),
const Divider(), const Divider(),
const Padding(
padding: EdgeInsets.all(20),
child: Text(
"发电小功能 \n"
" 多线程下载\n"
" 批量导入导出\n"
" 跳页",
),
),
const Divider(),
const Divider(), const Divider(),
], ],
), ),

View File

@ -34,6 +34,7 @@ import 'package:pikapika/screens/components/RightClickPop.dart';
import '../basic/config/Authentication.dart'; import '../basic/config/Authentication.dart';
import '../basic/config/CategoriesColumnCount.dart'; import '../basic/config/CategoriesColumnCount.dart';
import '../basic/config/DownloadCachePath.dart'; import '../basic/config/DownloadCachePath.dart';
import '../basic/config/HiddenFdIcon.dart';
import '../basic/config/UsingRightClickPop.dart'; import '../basic/config/UsingRightClickPop.dart';
import '../basic/config/WebDav.dart'; import '../basic/config/WebDav.dart';
import '../basic/config/WillPopNotice.dart'; import '../basic/config/WillPopNotice.dart';
@ -123,6 +124,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
iconLoadingSetting(), iconLoadingSetting(),
categoriesColumnCountSetting(), categoriesColumnCountSetting(),
willPopNoticeSetting(), willPopNoticeSetting(),
hiddenFdIconSetting(),
pagerActionSetting(), pagerActionSetting(),
contentFailedReloadActionSetting(), contentFailedReloadActionSetting(),
timeZoneSetting(), timeZoneSetting(),

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:pikapika/basic/Common.dart'; import 'package:pikapika/basic/Common.dart';
import 'package:pikapika/basic/config/HiddenFdIcon.dart';
import 'package:pikapika/basic/config/Version.dart'; import 'package:pikapika/basic/config/Version.dart';
import 'package:pikapika/screens/AboutScreen.dart'; import 'package:pikapika/screens/AboutScreen.dart';
import 'package:pikapika/screens/AccountScreen.dart'; import 'package:pikapika/screens/AccountScreen.dart';
@ -30,6 +31,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
void initState() { void initState() {
versionEvent.subscribe(_onEvent); versionEvent.subscribe(_onEvent);
proEvent.subscribe(_onEvent); proEvent.subscribe(_onEvent);
hiddenFdIconEvent.subscribe(_onEvent);
super.initState(); super.initState();
} }
@ -37,6 +39,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
void dispose() { void dispose() {
versionEvent.unsubscribe(_onEvent); versionEvent.unsubscribe(_onEvent);
proEvent.unsubscribe(_onEvent); proEvent.unsubscribe(_onEvent);
hiddenFdIconEvent.unsubscribe(_onEvent);
super.dispose(); super.dispose();
} }
@ -59,8 +62,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
await method.setPassword(""); await method.setPassword("");
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
mixRoute( mixRoute(builder: (context) => const AccountScreen()),
builder: (context) => const AccountScreen()),
); );
} }
}, },
@ -78,6 +80,9 @@ class _SpaceScreenState extends State<SpaceScreen> {
badge: latestVersion() == null ? null : "1", badge: latestVersion() == null ? null : "1",
), ),
), ),
...hiddenFdIcon
? []
: [
IconButton( IconButton(
onPressed: () { onPressed: () {
Navigator.of(context) Navigator.of(context)
@ -89,6 +94,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
isPro ? Icons.offline_bolt : Icons.offline_bolt_outlined, isPro ? Icons.offline_bolt : Icons.offline_bolt_outlined,
), ),
), ),
],
IconButton( IconButton(
onPressed: () { onPressed: () {
Navigator.push( Navigator.push(
@ -109,8 +115,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
mixRoute( mixRoute(builder: (context) => const FavouritePaperScreen()),
builder: (context) => const FavouritePaperScreen()),
); );
}, },
title: const Text('我的收藏'), title: const Text('我的收藏'),
@ -130,8 +135,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
mixRoute( mixRoute(builder: (context) => const DownloadListScreen()),
builder: (context) => const DownloadListScreen()),
); );
}, },
title: const Text('我的下载'), title: const Text('我的下载'),

View File

@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.7.1+17 version: 1.7.3+18
environment: environment:
sdk: ">=2.12.0 <3.0.0" sdk: ">=2.12.0 <3.0.0"