- Remove background thread mutation of logbook.logs during merge to
prevent ConcurrentModificationException crashes
- Cancel ongoing timer when user enters manual duration to prevent
orphaned ongoing events
- Prevent duplicate timer dialogs when tapping ongoing event in list
- Block starting a second timer while another is already running
- Track old fingerprint on event edit to prevent merge re-adding
the old version
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Track removed events via removedSinceLoad set in Logbook to prevent
merge from re-adding deliberately deleted or cancelled events
- Deduplicate finalized timer events (same type + similar start time)
to prevent duplicates when both devices stop the same timer
- Detect timer cancellation from other device: dismiss local timer
dialog when ongoing event disappears from logbook after sync
- Fix thread safety: take snapshot of events before background merge
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Before saving to WebDAV, the remote logbook is loaded and merged
with the local version. Events from other devices that don't exist
locally are added before uploading. This prevents one device from
overwriting events added by another device between sync intervals.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a sleep or breastfeeding timer is started, an "ongoing" event is
immediately saved to the logbook and synced via WebDAV. Other devices
detect this event on sync and can display/stop the timer. This allows
partners to stop timers started on another device.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When a timer (sleep/breastfeeding) was forgotten and the duration is
manually corrected, the "X minutes ago" display now reflects the adjusted
end time instead of the original stop time.
- Add ButtonConfigActivity for customizing main screen buttons with
drag-and-drop reordering and individual size options (S/M/L)
- Move storage settings to separate StorageSettingsActivity
- Move signature setting to storage settings (relevant for WebDAV sync)
- Move data backup to separate BackupActivity with export/import
- Make "more" overflow button configurable in size
- Simplify SettingsActivity to 3 navigation buttons
- Add logbook rename/delete functionality
- Improve S/M/L button contrast with visible borders
Features:
- Sleep tracking with timer and manual duration input
- Statistics module with 5 tabs (daily summary, feeding, diapers, sleep, growth)
- Export/Import backup functionality in settings
- Complete German, French and Italian translations
Features:
- Breastfeeding timer: Click to start, stop to save duration
- Manual duration input: Long-press for NumberPicker (1-60 min)
- Edit breastfeeding duration: Click on duration in event details
- Day separators: Visual dividers between days in event list
- German translations: Added missing strings for puke/bath events,
time units, amount labels, signature settings, event details
The breastfeeding timer state persists across app restarts.