feat(android13): make All Files Access optional

- Android 13+ now only requires READ_MEDIA_AUDIO by default
- MANAGE_EXTERNAL_STORAGE is optional and can be enabled in Settings
- Added 'All Files Access' toggle in Download Settings (Android 13+ only)
- Users who encounter write errors can enable full storage access
- Respects privacy-conscious users who prefer limited permissions
This commit is contained in:
zarzet committed 2026-01-31 14:08:59 +07:00
1 parent 020ac32ee6
commit 9bbd774175
20 files changed
+526 -42

No files matched your search

+4
View File
@@ -35,6 +35,7 @@ class AppSettings {
final String lossyFormat;
final String lossyBitrate; // e.g., 'mp3_320', 'mp3_256', 'mp3_192', 'mp3_128', 'opus_128', 'opus_96', 'opus_64'
final String lyricsMode;
final bool useAllFilesAccess; // Android 13+ only: enable MANAGE_EXTERNAL_STORAGE
const AppSettings({
this.defaultService = 'tidal',
@@ -68,6 +69,7 @@ class AppSettings {
this.lossyFormat = 'mp3',
this.lossyBitrate = 'mp3_320',
this.lyricsMode = 'embed',
this.useAllFilesAccess = false,
});
AppSettings copyWith({
@@ -103,6 +105,7 @@ class AppSettings {
String? lossyFormat,
String? lossyBitrate,
String? lyricsMode,
bool? useAllFilesAccess,
}) {
return AppSettings(
defaultService: defaultService ?? this.defaultService,
@@ -136,6 +139,7 @@ class AppSettings {
lossyFormat: lossyFormat ?? this.lossyFormat,
lossyBitrate: lossyBitrate ?? this.lossyBitrate,
lyricsMode: lyricsMode ?? this.lyricsMode,
useAllFilesAccess: useAllFilesAccess ?? this.useAllFilesAccess,
);
}