mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-07 20:07:48 -06:00
Download to the public Downloads folder.
Removed ununsed permissions.
This commit is contained in:
@@ -1,11 +1,15 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.paperless_mobile">
|
package="com.example.paperless_mobile">
|
||||||
|
<application
|
||||||
|
android:requestLegacyExternalStorage="true"/>
|
||||||
<!-- Flutter needs it to communicate with the running application
|
<!-- Flutter needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
-->
|
-->
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> -->
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
android:maxSdkVersion="29"
|
||||||
|
tools:ignore="ScopedStorage"/>
|
||||||
|
<!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> -->
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
package="com.example.paperless_mobile">
|
package="com.example.paperless_mobile">
|
||||||
<application android:label="Paperless Mobile"
|
<application android:label="Paperless Mobile"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/launcher_icon">
|
android:icon="@mipmap/launcher_icon"
|
||||||
|
android:requestLegacyExternalStorage="true">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
@@ -301,9 +302,9 @@
|
|||||||
</application>
|
</application>
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<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"
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||||
android:maxSdkVersion="32" />
|
android:maxSdkVersion="32" /> -->
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||||
android:maxSdkVersion="29" />
|
android:maxSdkVersion="29" />
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
|||||||
@@ -58,9 +58,16 @@ class FileService {
|
|||||||
|
|
||||||
static Future<Directory> get downloadsDirectory async {
|
static Future<Directory> get downloadsDirectory async {
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
return (await getExternalStorageDirectories(
|
Directory? directory;
|
||||||
type: StorageDirectory.downloads))!
|
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;
|
.first;
|
||||||
|
}
|
||||||
|
return directory;
|
||||||
} else if (Platform.isIOS) {
|
} else if (Platform.isIOS) {
|
||||||
return getApplicationDocumentsDirectory();
|
return getApplicationDocumentsDirectory();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -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/extensions/flutter_extensions.dart';
|
||||||
import 'package:paperless_mobile/generated/l10n.dart';
|
import 'package:paperless_mobile/generated/l10n.dart';
|
||||||
import 'package:paperless_mobile/helpers/message_helpers.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:paperless_mobile/constants.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
|
|
||||||
class DocumentDownloadButton extends StatefulWidget {
|
class DocumentDownloadButton extends StatefulWidget {
|
||||||
final DocumentModel? document;
|
final DocumentModel? document;
|
||||||
@@ -47,6 +49,13 @@ class _DocumentDownloadButtonState extends State<DocumentDownloadButton> {
|
|||||||
context, "This feature is currently only supported on Android!");
|
context, "This feature is currently only supported on Android!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (true) {
|
||||||
|
// should check for android versions < 30
|
||||||
|
final isGranted = await askForPermission(Permission.storage);
|
||||||
|
if (!isGranted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
setState(() => _isDownloadPending = true);
|
setState(() => _isDownloadPending = true);
|
||||||
final service = context.read<PaperlessDocumentsApi>();
|
final service = context.read<PaperlessDocumentsApi>();
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user