move setting to unit
This commit is contained in:
parent
26dbebeb3a
commit
fde1b0ae44
|
@ -51,3 +51,19 @@ Future<void> chooseAutoCleanSec(BuildContext context) async {
|
||||||
_autoCleanSec = choose;
|
_autoCleanSec = choose;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Widget autoCleanSecSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("自动清理缓存"),
|
||||||
|
subtitle: Text(currentAutoCleanSec()),
|
||||||
|
onTap: () async {
|
||||||
|
await chooseAutoCleanSec(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -31,3 +31,18 @@ Future<void> chooseAutoFullScreen(BuildContext context) async {
|
||||||
_autoFullScreen = target;
|
_autoFullScreen = target;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget autoFullScreenSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("进入阅读器自动全屏"),
|
||||||
|
subtitle: Text(autoFullScreenName()),
|
||||||
|
onTap: () async {
|
||||||
|
await chooseAutoFullScreen(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -47,3 +47,18 @@ Future<dynamic> inputChooserRoot(BuildContext context) async {
|
||||||
_chooserRoot = input;
|
_chooserRoot = input;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget chooserRootSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("文件夹选择器默认路径"),
|
||||||
|
subtitle: Text(currentChooserRoot()),
|
||||||
|
onTap: () async {
|
||||||
|
await inputChooserRoot(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -54,3 +54,16 @@ Future<void> chooseContentFailedReloadAction(BuildContext context) async {
|
||||||
contentFailedReloadAction = result;
|
contentFailedReloadAction = result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget contentFailedReloadActionSetting(){
|
||||||
|
return StatefulBuilder(builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("加载失败时"),
|
||||||
|
subtitle: Text(currentContentFailedReloadActionName()),
|
||||||
|
onTap: () async {
|
||||||
|
await chooseContentFailedReloadAction(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},);
|
||||||
|
}
|
|
@ -52,3 +52,18 @@ Future<void> chooseFullScreenAction(BuildContext context) async {
|
||||||
fullScreenAction = result;
|
fullScreenAction = result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget fullScreenActionSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("进入全屏的方式"),
|
||||||
|
subtitle: Text(currentFullScreenActionName()),
|
||||||
|
onTap: () async {
|
||||||
|
await chooseFullScreenAction(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -48,8 +48,8 @@ String currentFullScreenUIName() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> chooseFullScreenUI(BuildContext context) async {
|
Future<void> chooseFullScreenUI(BuildContext context) async {
|
||||||
FullScreenUI? result = await chooseMapDialog<FullScreenUI>(
|
FullScreenUI? result =
|
||||||
context, fullScreenUIMap, "选择全屏UI");
|
await chooseMapDialog<FullScreenUI>(context, fullScreenUIMap, "选择全屏UI");
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
await method.saveProperty(_propertyName, result.toString());
|
await method.saveProperty(_propertyName, result.toString());
|
||||||
fullScreenUI = result;
|
fullScreenUI = result;
|
||||||
|
@ -70,3 +70,18 @@ void switchFullScreenUI() {
|
||||||
print(fullScreenUI);
|
print(fullScreenUI);
|
||||||
SystemChrome.setEnabledSystemUIOverlays(list);
|
SystemChrome.setEnabledSystemUIOverlays(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget fullScreenUISetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("全屏UI"),
|
||||||
|
subtitle: Text(currentFullScreenUIName()),
|
||||||
|
onTap: () async {
|
||||||
|
await chooseFullScreenUI(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -50,3 +50,18 @@ Future<void> choosePagerAction(BuildContext context) async {
|
||||||
currentPagerAction = result;
|
currentPagerAction = result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget pagerActionSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("列表页加载方式"),
|
||||||
|
subtitle: Text(currentPagerActionName()),
|
||||||
|
onTap: () async {
|
||||||
|
await choosePagerAction(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -64,3 +64,18 @@ Future<void> choosePagerDirection(BuildContext buildContext) async {
|
||||||
gReaderDirection = choose;
|
gReaderDirection = choose;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget readerDirectionSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("阅读器方向"),
|
||||||
|
subtitle: Text(currentReaderDirectionName()),
|
||||||
|
onTap: () async {
|
||||||
|
await choosePagerDirection(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -65,3 +65,18 @@ Future<void> choosePagerType(BuildContext buildContext) async {
|
||||||
gReaderType = t;
|
gReaderType = t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget readerTypeSetting() {
|
||||||
|
return StatefulBuilder(
|
||||||
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
||||||
|
return ListTile(
|
||||||
|
title: Text("阅读器模式"),
|
||||||
|
subtitle: Text(currentReaderTypeName()),
|
||||||
|
onTap: () async {
|
||||||
|
await choosePagerType(context);
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
|
||||||
|
// 关于
|
||||||
class AboutScreen extends StatelessWidget {
|
class AboutScreen extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
|
@ -27,12 +27,7 @@ import 'package:pikapi/screens/components/NetworkSetting.dart';
|
||||||
import 'CleanScreen.dart';
|
import 'CleanScreen.dart';
|
||||||
import 'MigrateScreen.dart';
|
import 'MigrateScreen.dart';
|
||||||
|
|
||||||
class SettingsScreen extends StatefulWidget {
|
class SettingsScreen extends StatelessWidget {
|
||||||
@override
|
|
||||||
State<StatefulWidget> createState() => _SettingsScreenState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _SettingsScreenState extends State<SettingsScreen> {
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) => Scaffold(
|
Widget build(BuildContext context) => Scaffold(
|
||||||
appBar: AppBar(title: Text('设置')),
|
appBar: AppBar(title: Text('设置')),
|
||||||
|
@ -42,76 +37,20 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
NetworkSetting(),
|
NetworkSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
qualitySetting(),
|
qualitySetting(),
|
||||||
ListTile(
|
readerTypeSetting(),
|
||||||
title: Text("阅读器模式"),
|
readerDirectionSetting(),
|
||||||
subtitle: Text(currentReaderTypeName()),
|
autoFullScreenSetting(),
|
||||||
onTap: () async {
|
fullScreenActionSetting(),
|
||||||
await choosePagerType(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text("阅读器方向"),
|
|
||||||
subtitle: Text(currentReaderDirectionName()),
|
|
||||||
onTap: () async {
|
|
||||||
await choosePagerDirection(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text("进入阅读器自动全屏"),
|
|
||||||
subtitle: Text(autoFullScreenName()),
|
|
||||||
onTap: () async {
|
|
||||||
await chooseAutoFullScreen(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text("进入全屏的方式"),
|
|
||||||
subtitle: Text(currentFullScreenActionName()),
|
|
||||||
onTap: () async {
|
|
||||||
await chooseFullScreenAction(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
volumeControllerSetting(),
|
volumeControllerSetting(),
|
||||||
keyboardControllerSetting(),
|
keyboardControllerSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
shadowCategoriesSetting(),
|
shadowCategoriesSetting(),
|
||||||
ListTile(
|
pagerActionSetting(),
|
||||||
title: Text("列表页加载方式"),
|
fullScreenUISetting(),
|
||||||
subtitle: Text(currentPagerActionName()),
|
contentFailedReloadActionSetting(),
|
||||||
onTap: () async {
|
|
||||||
await choosePagerAction(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text("全屏UI"),
|
|
||||||
subtitle: Text(currentFullScreenUIName()),
|
|
||||||
onTap: () async {
|
|
||||||
await chooseFullScreenUI(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
title: Text("加载失败时"),
|
|
||||||
subtitle: Text(currentContentFailedReloadActionName()),
|
|
||||||
onTap: () async {
|
|
||||||
await chooseContentFailedReloadAction(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
timeZoneSetting(),
|
timeZoneSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
ListTile(
|
autoCleanSecSetting(),
|
||||||
title: Text("自动清理缓存"),
|
|
||||||
subtitle: Text(currentAutoCleanSec()),
|
|
||||||
onTap: () async {
|
|
||||||
await chooseAutoCleanSec(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
ListTile(
|
ListTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
|
@ -125,34 +64,24 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
androidDisplayModeSetting(),
|
androidDisplayModeSetting(),
|
||||||
androidSecureFlagSetting(),
|
androidSecureFlagSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
ListTile(
|
chooserRootSetting(),
|
||||||
title: Text("文件夹选择器默认路径"),
|
|
||||||
subtitle: Text(currentChooserRoot()),
|
|
||||||
onTap: () async {
|
|
||||||
await inputChooserRoot(context);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
),
|
|
||||||
downloadThreadCountSetting(),
|
downloadThreadCountSetting(),
|
||||||
downloadAndExportPathSetting(),
|
downloadAndExportPathSetting(),
|
||||||
fontSetting(),
|
fontSetting(),
|
||||||
Divider(),
|
Divider(),
|
||||||
migrate(),
|
migrate(context),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
Widget migrate() {
|
Widget migrate(BuildContext context) {
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text("文件迁移"),
|
title: Text("文件迁移"),
|
||||||
subtitle: Text("更换您的数据文件夹"),
|
subtitle: Text("更换您的数据文件夹"),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
var f = await confirmDialog(
|
var f =
|
||||||
context,
|
await confirmDialog(context, "文件迁移", "此功能菜单保存后, 需要重启程序, 您确认吗");
|
||||||
"文件迁移",
|
|
||||||
"此功能菜单保存后, 需要重启程序, 您确认吗"
|
|
||||||
);
|
|
||||||
if (f) {
|
if (f) {
|
||||||
Navigator.of(context).pushAndRemoveUntil(
|
Navigator.of(context).pushAndRemoveUntil(
|
||||||
MaterialPageRoute(builder: (BuildContext context) {
|
MaterialPageRoute(builder: (BuildContext context) {
|
||||||
|
|
Loading…
Reference in New Issue