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; _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; _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; _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; 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; 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 { 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(() {});
},
);
},
);
}

View File

@ -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(() {});
},
);
},
);
}

View File

@ -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(() {});
},
);
},
);
}

View File

@ -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(() {});
},
);
},
);
}

View File

@ -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) {

View File

@ -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) {