Add phone album sync to the Android client: MediaStore source (device albums), a Room index with upload provenance, on-device previews, and a mixed server + device album list where a linked pair collapses into a single device card with a link indicator and mode label. Three modes over one pipeline: A (off), B (upload copies, originals stay local), C (upload originals and offload them locally to previews). The sync engine tracks device changes (add/remove/rename/move/content), matches assets to server photos by sha256 content hash, deletes only this client's uploads, and reflects server changes without touching local originals. Offload is automatic; the zoomed viewer pulls the server original. Backend: expose the original content checksum in photo data (Postgres and SQLite), additive with no migration. Also anchor the `.gitignore` `data/` rule to `/data/` so the Android `com.galo.android.data` package is tracked, and add the halo launcher icon.
32 lines
599 B
Plaintext
32 lines
599 B
Plaintext
.env
|
|
/bin/
|
|
backend/static/*
|
|
!backend/static/.gitkeep
|
|
frontend/node_modules/
|
|
frontend/build/
|
|
frontend/.svelte-kit/
|
|
node_modules/
|
|
*.log
|
|
|
|
# Python bytecode
|
|
__pycache__/
|
|
*.py[cod]
|
|
|
|
# Local data backends (defaults)
|
|
galo.db
|
|
galo.db-*
|
|
# Root-level local FS storage (FS_ROOT=./data); anchored so it does not match
|
|
# the Android source package android/.../com/galo/android/data/.
|
|
/data/
|
|
|
|
# Android build output and local toolchain config
|
|
android/.gradle/
|
|
android/build/
|
|
android/app/build/
|
|
android/local.properties
|
|
android/keystore.properties
|
|
android/*.jks
|
|
android/*.keystore
|
|
android/.idea/
|
|
android/captures/
|