: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
- [x] 🐛 修复安卓13导入导出的问题
- [x] 🐛 修复测速不好用的问题
- [x] ♻️ 梳理一些权限
- [x] ✨ 增加批量下载功能
- [x] ✨ 增加PAT入会发电
v1.7.3
- [x] ✨ 可以隐藏发电图标

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 '../Common.dart';
import '../Method.dart';
const _propertyName = "willPopNotice";
@ -15,24 +13,16 @@ bool 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() {
return StatefulBuilder(
builder: (BuildContext context, void Function(void Function()) setState) {
return ListTile(
return SwitchListTile(
title: const Text("退出APP的提示"),
subtitle: Text(_willPopNotice ? "" : ""),
onTap: () async {
await _chooseWillPopNotice(context);
value: _willPopNotice,
onChanged: (value) async {
await method.saveProperty(_propertyName, "$value");
_willPopNotice = value;
setState(() {});
},
);

View File

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

View File

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

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:pikapika/basic/Common.dart';
import 'package:pikapika/basic/config/HiddenFdIcon.dart';
import 'package:pikapika/basic/config/Version.dart';
import 'package:pikapika/screens/AboutScreen.dart';
import 'package:pikapika/screens/AccountScreen.dart';
@ -30,6 +31,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
void initState() {
versionEvent.subscribe(_onEvent);
proEvent.subscribe(_onEvent);
hiddenFdIconEvent.subscribe(_onEvent);
super.initState();
}
@ -37,6 +39,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
void dispose() {
versionEvent.unsubscribe(_onEvent);
proEvent.unsubscribe(_onEvent);
hiddenFdIconEvent.unsubscribe(_onEvent);
super.dispose();
}
@ -53,14 +56,13 @@ class _SpaceScreenState extends State<SpaceScreen> {
IconButton(
onPressed: () async {
bool result =
await confirmDialog(context, '退出登录', '您确认要退出当前账号吗?');
await confirmDialog(context, '退出登录', '您确认要退出当前账号吗?');
if (result) {
await method.clearToken();
await method.setPassword("");
Navigator.pushReplacement(
context,
mixRoute(
builder: (context) => const AccountScreen()),
mixRoute(builder: (context) => const AccountScreen()),
);
}
},
@ -78,17 +80,21 @@ class _SpaceScreenState extends State<SpaceScreen> {
badge: latestVersion() == null ? null : "1",
),
),
IconButton(
onPressed: () {
Navigator.of(context)
.push(mixRoute(builder: (BuildContext context) {
return const ProScreen();
}));
},
icon: Icon(
isPro ? Icons.offline_bolt : Icons.offline_bolt_outlined,
),
),
...hiddenFdIcon
? []
: [
IconButton(
onPressed: () {
Navigator.of(context)
.push(mixRoute(builder: (BuildContext context) {
return const ProScreen();
}));
},
icon: Icon(
isPro ? Icons.offline_bolt : Icons.offline_bolt_outlined,
),
),
],
IconButton(
onPressed: () {
Navigator.push(
@ -109,8 +115,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
onTap: () {
Navigator.push(
context,
mixRoute(
builder: (context) => const FavouritePaperScreen()),
mixRoute(builder: (context) => const FavouritePaperScreen()),
);
},
title: const Text('我的收藏'),
@ -130,8 +135,7 @@ class _SpaceScreenState extends State<SpaceScreen> {
onTap: () {
Navigator.push(
context,
mixRoute(
builder: (context) => const DownloadListScreen()),
mixRoute(builder: (context) => const DownloadListScreen()),
);
},
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.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.7.1+17
version: 1.7.3+18
environment:
sdk: ">=2.12.0 <3.0.0"