Download to the public Downloads folder.

Removed ununsed permissions.
This commit is contained in:
Iulian Ciorascu
2023-02-09 16:14:50 +01:00
parent 65750b9f61
commit d7cbe40395
4 changed files with 30 additions and 9 deletions

View File

@@ -1,11 +1,15 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.paperless_mobile">
<application
android:requestLegacyExternalStorage="true"/>
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29"
tools:ignore="ScopedStorage"/>
<!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> -->
</manifest>

View File

@@ -2,7 +2,8 @@
package="com.example.paperless_mobile">
<application android:label="Paperless Mobile"
android:name="${applicationName}"
android:icon="@mipmap/launcher_icon">
android:icon="@mipmap/launcher_icon"
android:requestLegacyExternalStorage="true">
<activity
android:name=".MainActivity"
android:exported="true"
@@ -301,9 +302,9 @@
</application>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
android:maxSdkVersion="32" /> -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

View File

@@ -58,9 +58,16 @@ class FileService {
static Future<Directory> get downloadsDirectory async {
if (Platform.isAndroid) {
return (await getExternalStorageDirectories(
type: StorageDirectory.downloads))!
Directory? directory;
directory = Directory('/storage/emulated/0/Download');
// Try the default global folder, if it exists
if (!await directory.exists()) {
directory = (await getExternalStorageDirectories(
type: StorageDirectory.downloads,
))!
.first;
}
return directory;
} else if (Platform.isIOS) {
return getApplicationDocumentsDirectory();
} else {

View File

@@ -6,8 +6,10 @@ import 'package:paperless_mobile/core/service/file_service.dart';
import 'package:paperless_mobile/extensions/flutter_extensions.dart';
import 'package:paperless_mobile/generated/l10n.dart';
import 'package:paperless_mobile/helpers/message_helpers.dart';
import 'package:paperless_mobile/helpers/permission_helpers.dart';
import 'package:paperless_mobile/constants.dart';
import 'package:provider/provider.dart';
import 'package:permission_handler/permission_handler.dart';
class DocumentDownloadButton extends StatefulWidget {
final DocumentModel? document;
@@ -47,6 +49,13 @@ class _DocumentDownloadButtonState extends State<DocumentDownloadButton> {
context, "This feature is currently only supported on Android!");
return;
}
if (true) {
// should check for android versions < 30
final isGranted = await askForPermission(Permission.storage);
if (!isGranted) {
return;
}
}
setState(() => _isDownloadPending = true);
final service = context.read<PaperlessDocumentsApi>();
try {