Pinch: the image now follows the hand (midpoint drift) and zooms ABOUT the midpoint — the image point under the fingers stays put while the scale changes. Per-frame delta math, clamped as before (fit min, image-edge pan limits). Live watching: new photos appear in the grid within ~2s of being written. inotify does not work on Android's FUSE-backed external storage, so the watcher polls a tree signature (dir mtimes only — a few dozen stats/s) every second; on change (or a 30s safety-net full pass) it debounces 600ms for the write burst, then runs the incremental rescan (walk + DB diff + emit) off the main thread. Supporting changes: - Staged corruption: a decode failure no longer marks an id broken immediately — 3 consecutive failures are required, and a success clears the count. A photo still being written fails once or twice and then decodes; genuine garbage gives up and stays gray. - Grid rebuild preserves the viewport across a live rescan (pins to the cell that was on top), so a new photo landing at the top does not jump the scroll position. |
||
|---|---|---|
| .. | ||
| capabilities | ||
| frontend/dist | ||
| gen | ||
| icons | ||
| scripts | ||
| src | ||
| .tauriignore | ||
| app-icon.png | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| tauri.conf.json | ||