From 674b5c9636862dfed217137501a42fbd52223f70 Mon Sep 17 00:00:00 2001 From: nyne Date: Mon, 2 Dec 2024 15:30:59 +0800 Subject: [PATCH] Update saf --- .../image_provider/local_comic_image.dart | 7 +++++-- lib/pages/settings/app.dart | 21 ++----------------- pubspec.lock | 4 ++-- pubspec.yaml | 2 +- 4 files changed, 10 insertions(+), 24 deletions(-) diff --git a/lib/foundation/image_provider/local_comic_image.dart b/lib/foundation/image_provider/local_comic_image.dart index cfb1c22..591b840 100644 --- a/lib/foundation/image_provider/local_comic_image.dart +++ b/lib/foundation/image_provider/local_comic_image.dart @@ -2,7 +2,6 @@ import 'dart:async' show Future, StreamController; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:venera/foundation/local.dart'; -import 'package:venera/network/images.dart'; import 'package:venera/utils/io.dart'; import 'base_image_provider.dart'; import 'local_comic_image.dart' as image_provider; @@ -50,7 +49,11 @@ class LocalComicImageProvider if(file == null) { throw "Error: Cover not found."; } - return file.readAsBytes(); + var data = await file.readAsBytes(); + if(data.isEmpty) { + throw "Exception: Empty file(${file.path})."; + } + return data; } @override diff --git a/lib/pages/settings/app.dart b/lib/pages/settings/app.dart index 69978f7..c59e19e 100644 --- a/lib/pages/settings/app.dart +++ b/lib/pages/settings/app.dart @@ -34,25 +34,8 @@ class _AppSettingsState extends State { callback: () async { String? result; if (App.isAndroid) { - var channel = const MethodChannel("venera/storage"); - var permission = await channel.invokeMethod(''); - if (permission != true) { - context.showMessage(message: "Permission denied".tl); - return; - } - var path = await selectDirectory(); - if (path != null) { - // check if the path is writable - var testFile = File(FilePath.join(path, "test")); - try { - await testFile.writeAsBytes([1]); - await testFile.delete(); - } catch (e) { - context.showMessage(message: "Permission denied".tl); - return; - } - result = path; - } + var picker = DirectoryPicker(); + result = (await picker.pickDirectory())?.path; } else if (App.isIOS) { result = await selectDirectoryIOS(); } else { diff --git a/pubspec.lock b/pubspec.lock index 167bbaa..9f64ace 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -417,8 +417,8 @@ packages: dependency: "direct main" description: path: "." - ref: dd5242918da0ea9a0a50b0f87ade7a2def65453d - resolved-ref: dd5242918da0ea9a0a50b0f87ade7a2def65453d + ref: "3315082b9f7055655610e4f6f136b69e48228c05" + resolved-ref: "3315082b9f7055655610e4f6f136b69e48228c05" url: "https://github.com/pkuislm/flutter_saf.git" source: git version: "0.0.1" diff --git a/pubspec.yaml b/pubspec.yaml index d0fd106..da623e6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -68,7 +68,7 @@ dependencies: flutter_saf: git: url: https://github.com/pkuislm/flutter_saf.git - ref: dd5242918da0ea9a0a50b0f87ade7a2def65453d + ref: 3315082b9f7055655610e4f6f136b69e48228c05 pdf: ^3.11.1 dev_dependencies: