mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
Update saf
This commit is contained in:
@@ -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
|
||||
|
@@ -34,25 +34,8 @@ class _AppSettingsState extends State<AppSettings> {
|
||||
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 {
|
||||
|
Reference in New Issue
Block a user