Native Kotlin Android app (single Activity + WorkManager worker) that copies
photos newer than a stored cursor to //192.168.123.2/photo/Home as
decade/year/month, deduping by filename and NAS file size.
- SMB2/3 via smbj; transparently reconnects when the server drops an idle
session (previously surfaced as "DiskShare has already been closed")
- MediaStore cursor store, incremental uploads, size-aware dedupe
- "Phone files" / "NAS files" browser: grid, thumbnails, full-screen preview
- Release signing read from keystore.properties (never committed)