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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
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(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue