feat: ui improvement

flutter 3.7 compatibility
responsive view
beautiful progress bar
select file in treeview
downlading and downloaded page
This commit is contained in:
wuke2022 authored and liwei committed 2023-02-16 11:34:42 +08:00
1 parent a875a9258e
commit 9b1ed15fea
28 files changed
+932 -439

No files matched your search

@@ -1,3 +1,6 @@
import 'package:get/get.dart';
class CreateController extends GetxController {}
class CreateController extends GetxController {
final files = [].obs;
final RxList selectedIndexs = [].obs;
}
+14 -22
View File
@@ -20,6 +20,7 @@ class CreateView extends GetView<CreateController> {
final _urlController = TextEditingController();
final _confirmController = RoundedLoadingButtonController();
CreateView({Key? key}) : super(key: key);
@override
@@ -28,8 +29,8 @@ class CreateView extends GetView<CreateController> {
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => Get.rootDelegate.offNamed(Routes.task)),
actions: [Container()],
onPressed: () => Get.rootDelegate.offNamed(Routes.downloading)),
// actions: [],
title: Text('create.title'.tr),
),
body: DropTarget(
@@ -47,9 +48,10 @@ class CreateView extends GetView<CreateController> {
autofocus: true,
controller: _urlController,
minLines: 1,
maxLines: 15,
maxLines: 30,
decoration: InputDecoration(
hintText: _hitText(),
hintStyle: const TextStyle(fontSize: 12),
labelText: 'create.downloadLink'.tr,
icon: const Icon(Icons.link)),
validator: (v) {
@@ -102,16 +104,15 @@ class CreateView extends GetView<CreateController> {
}
Future<void> _showResolveDialog(ResolveResult rr) async {
final res = rr.res;
controller.files.value = rr.res.files;
final appController = Get.find<AppController>();
final setting = appController.downloaderConfig.value;
final createFormKey = GlobalKey<FormState>();
final pathController = TextEditingController(text: setting.downloadDir);
final downloadController = RoundedLoadingButtonController();
var fileValues = List.filled(res.files.length, true);
return await showDialog<void>(
return showDialog<void>(
context: Get.context!,
barrierDismissible: false,
builder: (_) => AlertDialog(
@@ -129,11 +130,7 @@ class CreateView extends GetView<CreateController> {
autovalidateMode: AutovalidateMode.always,
child: Column(
children: [
Expanded(
child: FileListView(
files: res.files,
values: fileValues,
)),
Expanded(child: FileListView()),
DirectorySelector(
controller: pathController,
),
@@ -153,7 +150,7 @@ class CreateView extends GetView<CreateController> {
ElevatedButton.styleFrom(shape: const StadiumBorder())
.copyWith(
backgroundColor: MaterialStateProperty.all(
Get.theme.backgroundColor)),
Get.theme.colorScheme.background)),
onPressed: () {
Get.back();
},
@@ -183,17 +180,12 @@ class CreateView extends GetView<CreateController> {
await createTask(CreateTask(
rid: rr.id,
opts: Options(
name: '',
path: pathController.text,
selectFiles: fileValues
.asMap()
.entries
.where((e) => e.value)
.map((e) => e.key)
.toList(),
)));
name: '',
path: pathController.text,
selectFiles:
controller.selectedIndexs.cast<int>())));
Get.back();
Get.rootDelegate.offNamed(Routes.task);
Get.rootDelegate.offNamed(Routes.downloading);
}
} catch (e) {
Get.snackbar('error'.tr, e.toString());