Repository navigation
shutterboy 0.1 (115903a)
Auto-built APK from commit 115903a.
Install
Sideload via Obtainium (recommended — see the project README for setup) or install directly:
adb install -r shutterboy-0.1-115903a.apk
Changes since v0.1-0197963
- nav: BROWSABLE + explicit schemes + ACTION_EDIT in Open-with filter (115903a)
- fix: show thumbnail in video delete consent dialog (c37011e)
- nav: simplify Open-with intent filter to MIME-only (59375b5)
- nav: register as image/video viewer in the system "Open with" chooser (07b64b8)
- appearance: reset button on color picker dialog (7b43233)
- nav: settings opens as full-screen modal (tonearmboy/whisperboy parity) (bf74fd6)
- chore: fix pre-existing test failures + clean up compiler warnings (7bcfe47)
- about: app-icon header + Credits card + navigationBarsPadding (f56a353)
- prefetch: expose scheduler rate as user setting (normal + battery saver) (7d985e4)
- prefetch: bump scheduler poll 50ms → 100ms (7c80e14)
- prefetch: bump scheduler poll from 20ms → 50ms (696bea4)
- prefetch: move ThumbnailPrefetcher to AppGraph (process scope) (e740aee)
- prefetch: viewport-center LIFO + always-on baseline lookahead (c4f58e4)
- prefetch: 20 ms poll + symmetric safe zone for direction reverses (1f4ce0a)
- prefetch: halve scheduler poll rate (40 ms → 80 ms) (0197963)
- photos: persist grouping + column count across nav lifecycle (6a09702)
- photos: fix grouping dispatch + distinct 5-column icon (bee0bd8)
- photos: split grouping from column count — independent controls (fb9c295)
- photos: add density-cycle FAB above the search FAB (33d3779)
- settings: move Display section from Look-and-feel to Photos (cf216fc)
- prefetch: progressive quality — low first, upgrade on dwell (8ee0ca2)
- display: ThumbnailQuality becomes a multiplier on cell-px, auto-derived (1c55474)
- display: halve ThumbnailQuality targets (96/192/384) (82e5802)
- prefetch: self-submit on cell composition + tighter direction reaction (511a2a8)
- fetcher: honor coroutine cancellation in MediaStoreThumbnailFetcher (f3f1848)
- prefetch: rip the tiny tier — render target immediately, no placeholder (c7c0df7)
- Revert "prewarm: force MediaStore to generate MINI_KIND on disk at scan time" (5bd8cbd)
- prewarm: force MediaStore to generate MINI_KIND on disk at scan time (7110332)
- prefetch: suspend FAR ring during fling so visible decodes win the OS pipe (bfe1293)
- prefetch: coalesce mid-fling schedules + symmetric keep-zone for bounce-back (fc9cc03)
- prefetch: adaptive velocity-scaled window + leading-edge priority + cancel-on-reverse (4761c0c)
- scan: debounce observer + incremental upsert (9303ba5)
- scan: use scanIfChanged() not forceRescan() on cold launch (9330ea1)
- grid: play-circle overlay on video thumbnails (68431f7)
- nav: drop GalleryTimelineFrame's transformable — it was eating root-tab swipes (ac35b96)
- nav: horizontal swipe between Photos / Favorites / Collections tabs (f3ac365)
- collections: lean folder tile — memoised request + thumb-cache alignment + stable click (296ded4)
- scrubber: shorten pause-to-peek debounce 200 ms → 80 ms (f05b460)
- scan: bump streaming batch size to 2500 to cut CursorWindow race surface (9c88df3)
- grid: lean tile pass — strip shared-element + suppress-decode + selection-mode plumbing (f61c0f4)
- delete: eager-remove from Room cache so the grid updates instantly (Aves-style) (f8bd735)
- thumbs: aspect-preserving downscale — stop stretching tiles into squares (6505a2e)
- thumbs: resize OS thumbnail down to requested size before HARDWARE copy (13724bd)
- grid: static spinner at 0.75 progress — fuller ring without the animation tick (b4c538e)
- Revert "grid: static spinner — keep the ring shape, drop the animation" (5e24d37)
- grid: static spinner — keep the ring shape, drop the animation (8fdff94)
- favorites: persist across scans — drop CASCADE FK + scanner safety net (c4a7956)
- viewer: shorten shared-element open animation to 120 ms — unblock pager swipes faster (4c3fd9e)
- viewer: filmstrip + page counter at the bottom; hides when zoomed (f84dc2c)
- grid: stable cell callbacks — eliminate per-cell recompose on every scroll frame (fd34d35)
Verify build
| Field | Value |
|---|---|
| Commit | 115903a27255f55b9cd62d4c8837fa493b3a394e |
| APK | shutterboy-0.1-115903a.apk |
| APK SHA-256 | 4fc1c6f7144bad40c375a97ae3c5926c6b18b8bcc523974409965db58e920207 |
| Build flavour | assembleDebug |
To verify locally:
sha256sum shutterboy-0.1-115903a.apk
# expected: 4fc1c6f7144bad40c375a97ae3c5926c6b18b8bcc523974409965db58e920207