2021-11-04 05:56:25 +00:00
|
|
|
/// 下载的同时导出到文件系统
|
|
|
|
|
2021-10-25 11:27:38 +00:00
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
2021-11-11 03:00:38 +00:00
|
|
|
import 'package:pikapika/basic/Common.dart';
|
|
|
|
import 'package:pikapika/basic/Cross.dart';
|
2021-10-25 11:27:38 +00:00
|
|
|
|
|
|
|
import '../Method.dart';
|
|
|
|
|
|
|
|
late String _downloadAndExportPath;
|
|
|
|
|
|
|
|
Future initDownloadAndExportPath() async {
|
2021-10-28 10:45:43 +00:00
|
|
|
if (Platform.isWindows ||
|
|
|
|
Platform.isMacOS ||
|
|
|
|
Platform.isAndroid ||
|
|
|
|
Platform.isLinux) {
|
|
|
|
_downloadAndExportPath = await method.loadDownloadAndExportPath();
|
|
|
|
}
|
2021-10-25 11:27:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Widget downloadAndExportPathSetting() {
|
|
|
|
if (Platform.isWindows ||
|
|
|
|
Platform.isMacOS ||
|
|
|
|
Platform.isAndroid ||
|
|
|
|
Platform.isLinux) {
|
|
|
|
return StatefulBuilder(
|
|
|
|
builder: (BuildContext context, void Function(void Function()) setState) {
|
|
|
|
return ListTile(
|
2022-03-19 04:12:27 +00:00
|
|
|
title: const Text("下载的同时导出到文件系统"),
|
2021-10-25 11:27:38 +00:00
|
|
|
subtitle: Text(_downloadAndExportPath),
|
|
|
|
onTap: () async {
|
|
|
|
if (_downloadAndExportPath == "") {
|
|
|
|
bool b = await confirmDialog(
|
|
|
|
context,
|
|
|
|
"下载的同时导出到文件系统",
|
|
|
|
"您即将选择一个目录, 如果文件系统可写, 下载的同时会为您自动导出一份",
|
|
|
|
);
|
|
|
|
if (b) {
|
2021-11-18 01:53:30 +00:00
|
|
|
late String? folder;
|
|
|
|
try {
|
|
|
|
folder = await chooseFolder(context);
|
|
|
|
} catch (e) {
|
|
|
|
defaultToast(context, "$e");
|
|
|
|
return;
|
|
|
|
}
|
2021-10-25 11:27:38 +00:00
|
|
|
if (folder != null) {
|
|
|
|
await method.saveDownloadAndExportPath(folder);
|
|
|
|
_downloadAndExportPath = folder;
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
bool b = await confirmDialog(
|
|
|
|
context,
|
|
|
|
"下载的同时导出到文件系统",
|
|
|
|
"您确定取消下载并导出的功能吗? 取消之后您可以再次点击设置",
|
|
|
|
);
|
|
|
|
if (b) {
|
|
|
|
var folder = "";
|
|
|
|
await method.saveDownloadAndExportPath(folder);
|
|
|
|
_downloadAndExportPath = folder;
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
);
|
|
|
|
},
|
|
|
|
);
|
|
|
|
}
|
|
|
|
return Container();
|
|
|
|
}
|