diff --git a/ui/flutter/lib/app/modules/app/controllers/app_controller.dart b/ui/flutter/lib/app/modules/app/controllers/app_controller.dart index 1600136e..64e0c2c5 100644 --- a/ui/flutter/lib/app/modules/app/controllers/app_controller.dart +++ b/ui/flutter/lib/app/modules/app/controllers/app_controller.dart @@ -6,6 +6,7 @@ import 'package:app_links/app_links.dart'; import 'package:flutter/material.dart'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:get/get.dart'; +import 'package:lecle_downloads_path_provider/lecle_downloads_path_provider.dart'; import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tray_manager/tray_manager.dart'; @@ -416,12 +417,13 @@ class AppController extends GetxController with WindowListener, TrayListener { if (config.downloadDir.isEmpty) { if (Util.isDesktop()) { config.downloadDir = (await getDownloadsDirectory())?.path ?? "./"; - } else if (Util.isAndroid()) { - config.downloadDir = (await getExternalStorageDirectory())?.path ?? - (await getApplicationDocumentsDirectory()).path; - return; - } else if (Util.isIOS()) { - config.downloadDir = (await getApplicationDocumentsDirectory()).path; + } else if (Util.isMobile()) { + final downloadDir = (await DownloadsPath.downloadsDirectory())?.path; + if (downloadDir != null) { + config.downloadDir = '$downloadDir/Gopeed'; + } else { + config.downloadDir = (await getApplicationDocumentsDirectory()).path; + } } else { config.downloadDir = './'; } diff --git a/ui/flutter/lib/app/views/directory_selector.dart b/ui/flutter/lib/app/views/directory_selector.dart index d84d05d2..b2f27d9f 100644 --- a/ui/flutter/lib/app/views/directory_selector.dart +++ b/ui/flutter/lib/app/views/directory_selector.dart @@ -35,7 +35,7 @@ class _DirectorySelectorState extends State { return v!.trim().isNotEmpty ? null : 'downloadDirValid'.tr; }, )), - !Util.isWeb() && !Util.isIOS() + !Util.isWeb() && !Util.isAndroid() && !Util.isIOS() ? IconButton( icon: const Icon(Icons.folder_open), onPressed: () async { diff --git a/ui/flutter/pubspec.lock b/ui/flutter/pubspec.lock index 533519e2..4ed9c003 100644 --- a/ui/flutter/pubspec.lock +++ b/ui/flutter/pubspec.lock @@ -477,6 +477,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "6.7.1" + lecle_downloads_path_provider: + dependency: "direct main" + description: + name: lecle_downloads_path_provider + sha256: "111f6d6d21e18acddda515eba8fd445658aa14defcbd59513d6d1b02b9ed47a0" + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.2+8" lint: dependency: transitive description: diff --git a/ui/flutter/pubspec.yaml b/ui/flutter/pubspec.yaml index 5c925514..b3072a28 100644 --- a/ui/flutter/pubspec.yaml +++ b/ui/flutter/pubspec.yaml @@ -63,6 +63,7 @@ dependencies: flutter_foreground_task: ^6.1.2 open_filex: ^4.3.4 tray_manager: ^0.2.1 + lecle_downloads_path_provider: ^0.0.2+8 dev_dependencies: flutter_test: sdk: flutter