diff --git a/apps/darkroom-android/android/AndroidManifest.xml b/apps/darkroom-android/android/AndroidManifest.xml index 6df6aba..45e42af 100644 --- a/apps/darkroom-android/android/AndroidManifest.xml +++ b/apps/darkroom-android/android/AndroidManifest.xml @@ -4,9 +4,10 @@ Deliberately minimal: this packages the viewer for on-device testing (spike S2 needs Adreno and Mali hardware, which no emulator represents). Nothing - here is a distribution manifest yet. Only network access is declared: file - access needs no manifest permission because the library grid reads through - SAF, which grants per-tree at runtime (ARCH §6.9). + here is a distribution manifest yet. The library grid needs no storage + permission, because it reads through SAF, which grants per-tree at runtime + (ARCH §6.9); the one storage permission declared is for importing from a + camera card, which is read by path. Minimal is not the same as empty, and the entries below that are not the activity are the difference. A manifest is the only place a component can be @@ -21,13 +22,29 @@ WebDAV listing, thumbnail and image fetches. Without it Android refuses socket creation outright, and the failure is invisible — no panic to catch, no log line, just a worker thread that stops. Storage is the - separate case that genuinely needs no permission here, because SAF - grants per-tree at runtime (ARCH §6.9). --> + separate case: the library and album folders need no permission + here, because SAF grants per-tree at runtime (ARCH §6.9). --> + + + + @@ -53,6 +70,7 @@ android:icon="@mipmap/ic_launcher" android:hasCode="true" android:allowBackup="false" + android:requestLegacyExternalStorage="true" android:supportsRtl="true">