fix(android): sync when the app is opened, and don't say "Synced" before it has #28

Merged
brian merged 1 commit from test into main 2026-09-14 20:19:11 +00:00
Owner

Nothing but signing in, an edit, or the sync button ever started a sync, so a
device used only for reading never pulled: a phone showed the journal as of
Aug 20 for weeks. The badges read the status's initial default as "Synced", so
nothing looked wrong.

The app now syncs on coming to the foreground and every 30s while it stays
there, as the web client does; leaving stops the timer but lets a pass under
way finish. "Synced" now needs a pass that completed cleanly
(SyncStatus.lastSyncedAt); before that the badge says "Not synced yet", and
Settings shows the last sync time. The home and memories badges also ignored
errors — all three now share one label.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_0115sCfybHRKTzjnmUCXA93K

Nothing but signing in, an edit, or the sync button ever started a sync, so a device used only for reading never pulled: a phone showed the journal as of Aug 20 for weeks. The badges read the status's initial default as "Synced", so nothing looked wrong. The app now syncs on coming to the foreground and every 30s while it stays there, as the web client does; leaving stops the timer but lets a pass under way finish. "Synced" now needs a pass that completed cleanly (SyncStatus.lastSyncedAt); before that the badge says "Not synced yet", and Settings shows the last sync time. The home and memories badges also ignored errors — all three now share one label. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0115sCfybHRKTzjnmUCXA93K
Nothing but signing in, an edit, or the sync button ever started a sync, so a
device used only for reading never pulled: a phone showed the journal as of
Aug 20 for weeks. The badges read the status's initial default as "Synced", so
nothing looked wrong.

The app now syncs on coming to the foreground and every 30s while it stays
there, as the web client does; leaving stops the timer but lets a pass under
way finish. "Synced" now needs a pass that completed cleanly
(SyncStatus.lastSyncedAt); before that the badge says "Not synced yet", and
Settings shows the last sync time. The home and memories badges also ignored
errors — all three now share one label.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0115sCfybHRKTzjnmUCXA93K
brian merged commit 7a2fd6dd0a into main 2026-09-14 20:19:11 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
brian/Journal!28
No description provided.