README: document the phone/NAS file browser and the Gitea download link

This commit is contained in:
2026-10-14 10:53:01 -07:00
parent 6bc1f9a355
commit f25a3ddaa1

View File

@@ -120,6 +120,30 @@ on the NAS under the base directory (base → decade folders → a few year and
subfolders). Use it to confirm the exact folder naming with an account that can
reach the `photo` share.
### File browser
Below **Test connection** are two side-by-side buttons — **Phone files** and
**NAS files** — that open the same grid browser over two different sources:
- **Phone files** browses photos through MediaStore (`Phone storage` → `DCIM`,
`Pictures`, …) with no `MANAGE_EXTERNAL_STORAGE` permission.
- **NAS files** browses the share over SMB, starting at the configured base
directory.
Folders come first, then files; thumbnails are decoded in two passes (bounds, then
sampled) and cached. Tap a folder to descend, the up arrow / Back to ascend, and a
photo to open it full-screen (tap to dismiss). If the server drops an idle SMB
session, the browser reconnects automatically on the next tap.
### Download
The signed release APK is published on the local Gitea (public repo):
http://192.168.123.18:3001/umbragit/AndPictures/releases/download/v1.0/AndPictures-1.0-release.apk
Open that link in any phone's browser on the same LAN and install it. The source
lives at http://192.168.123.18:3001/umbragit/AndPictures
### Serving the APK over the LAN
```bash
@@ -144,7 +168,13 @@ clears its saved settings.
| `WorkScheduler.kt` | WorkManager periodic + one-shot requests (network-constrained) |
| `SyncWorker.kt` | CoroutineWorker: runs the engine, persists the cursor/status |
| `SyncEngine.kt` | The job: MediaStore query → destination path → SMB upload |
| `SmbUploader.kt` | smbj wrapper: connect, list folders, mkdir -p, stream a file |
| `SmbUploader.kt` | smbj wrapper: connect, list folders, mkdir -p, stream a file (reconnects if the session drops) |
| `FileBrowserActivity.kt` | Grid browser over a `FileSource`, used for both phone and NAS |
| `PhotoViewActivity.kt` | Full-screen photo preview |
| `FileSource.kt` | Browser model + `FileSource` interface (`list`, `parentOf`, `openStream`, `loadThumbnail`) |
| `PhoneFileSource.kt` | `FileSource` backed by MediaStore |
| `NasFileSource.kt` | `FileSource` backed by SMB |
| `Bitmaps.kt` | Two-pass sampled decode + thumbnail `LruCache` |
| `PhotoStore.kt` | MediaStore queries + permission helper |
| `Prefs.kt` | Typed SharedPreferences incl. the sync cursor |
| `Notifications.kt` | Result notification |