move setting to unit

This commit is contained in:
niuhuan 2021-11-04 11:45:22 +08:00
parent 26dbebeb3a
commit fde1b0ae44
11 changed files with 151 additions and 87 deletions

View File

@ -51,3 +51,19 @@ Future<void> chooseAutoCleanSec(BuildContext context) async {
_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(() {});
},
);
},
);
}

View File

@ -31,3 +31,18 @@ Future<void> chooseAutoFullScreen(BuildContext context) async {
_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(() {});
},
);
},
);
}

View File

@ -47,3 +47,18 @@ Future<dynamic> inputChooserRoot(BuildContext context) async {
_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(() {});
},
);
},
);
}

View File

@ -54,3 +54,16 @@ Future<void> chooseContentFailedReloadAction(BuildContext context) async {
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(() {});
},
);
},);
}

View File

@ -52,3 +52,18 @@ Future<void> chooseFullScreenAction(BuildContext context) async {
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(() {});
},
);
},
);
}

View File

@ -48,8 +48,8 @@ String currentFullScreenUIName() {
}
Future<void> chooseFullScreenUI(BuildContext context) async {
FullScreenUI? result = await chooseMapDialog<FullScreenUI>(
context, fullScreenUIMap, "选择全屏UI");
FullScreenUI? result =
await chooseMapDialog<FullScreenUI>(context, fullScreenUIMap, "选择全屏UI");
if (result != null) {
await method.saveProperty(_propertyName, result.toString());
fullScreenUI = result;
@ -70,3 +70,18 @@ void switchFullScreenUI() {
print(fullScreenUI);
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(() {});
},
);
},
);
}

View File

@ -50,3 +50,18 @@ Future<void> choosePagerAction(BuildContext context) async {
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(() {});
},
);
},
);
}

View File

@ -64,3 +64,18 @@ Future<void> choosePagerDirection(BuildContext buildContext) async {
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(() {});
},
);
},
);
}

View File

@ -65,3 +65,18 @@ Future<void> choosePagerType(BuildContext buildContext) async {
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(() {});
},
);
},
);
}

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
//
class AboutScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {

View File

@ -27,12 +27,7 @@ import 'package:pikapi/screens/components/NetworkSetting.dart';
import 'CleanScreen.dart';
import 'MigrateScreen.dart';
class SettingsScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() => _SettingsScreenState();
}
class _SettingsScreenState extends State<SettingsScreen> {
class SettingsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: Text('设置')),
@ -42,76 +37,20 @@ class _SettingsScreenState extends State<SettingsScreen> {
NetworkSetting(),
Divider(),
qualitySetting(),
ListTile(
title: Text("阅读器模式"),
subtitle: Text(currentReaderTypeName()),
onTap: () async {
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(() {});
},
),
readerTypeSetting(),
readerDirectionSetting(),
autoFullScreenSetting(),
fullScreenActionSetting(),
volumeControllerSetting(),
keyboardControllerSetting(),
Divider(),
shadowCategoriesSetting(),
ListTile(
title: Text("列表页加载方式"),
subtitle: Text(currentPagerActionName()),
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(() {});
},
),
pagerActionSetting(),
fullScreenUISetting(),
contentFailedReloadActionSetting(),
timeZoneSetting(),
Divider(),
ListTile(
title: Text("自动清理缓存"),
subtitle: Text(currentAutoCleanSec()),
onTap: () async {
await chooseAutoCleanSec(context);
setState(() {});
},
),
autoCleanSecSetting(),
ListTile(
onTap: () {
Navigator.push(
@ -125,34 +64,24 @@ class _SettingsScreenState extends State<SettingsScreen> {
androidDisplayModeSetting(),
androidSecureFlagSetting(),
Divider(),
ListTile(
title: Text("文件夹选择器默认路径"),
subtitle: Text(currentChooserRoot()),
onTap: () async {
await inputChooserRoot(context);
setState(() {});
},
),
chooserRootSetting(),
downloadThreadCountSetting(),
downloadAndExportPathSetting(),
fontSetting(),
Divider(),
migrate(),
migrate(context),
],
),
);
Widget migrate() {
Widget migrate(BuildContext context) {
if (Platform.isAndroid) {
return ListTile(
title: Text("文件迁移"),
subtitle: Text("更换您的数据文件夹"),
onTap: () async {
var f = await confirmDialog(
context,
"文件迁移",
"此功能菜单保存后, 需要重启程序, 您确认吗"
);
var f =
await confirmDialog(context, "文件迁移", "此功能菜单保存后, 需要重启程序, 您确认吗");
if (f) {
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (BuildContext context) {