Skip to content

feat: i18n for caregiver_app, UTC datetime fixes, and grumphp config#5

Merged
thlaure merged 2 commits into
mainfrom
feat/i18n-and-datetime-fixes
Apr 19, 2026
Merged

feat: i18n for caregiver_app, UTC datetime fixes, and grumphp config#5
thlaure merged 2 commits into
mainfrom
feat/i18n-and-datetime-fixes

Conversation

@thlaure
Copy link
Copy Markdown
Owner

@thlaure thlaure commented Apr 19, 2026

Summary

  • Add EN/FR localization to caregiver_app (home, link, active alert screens) driven by device language
  • Fix fall_detected_at timezone bug: timestamps now sent as UTC ISO-8601 instead of local time
  • Always submit fall events to the backend even when no emergency contacts are configured
  • Add handleExpiredCountdown recovery for when Android pauses the Flutter engine during countdown
  • Prompt for USE_FULL_SCREEN_INTENT permission on Android 14+ at app startup
  • Raise GrumPHP max_subject_width from 72 → 120 and disable max_body_width

Test plan

  • flutter analyze clean on both flutter_app and caregiver_app
  • flutter test passes (57/57) in flutter_app
  • Fall event recorded in DB with correct UTC timestamps (fall_detected_atreceived_at)
  • Fall event recorded even with zero emergency contacts (status failed)
  • caregiver_app displays strings in French on FR device, English on EN device
  • GrumPHP no longer rejects commit messages over 72 chars

🤖 Generated with Claude Code

Thomas Laure and others added 2 commits April 19, 2026 18:12
Add EN/FR localization to caregiver_app:
- AppLocalizations abstract class + EN/FR implementations
- Wire flutter_localizations delegates in CaregiverApp
- Replace hardcoded strings in all 3 screens

Fix datetime UTC consistency:
- Send fallTimestamp as UTC ISO 8601 (isUtc: true) to backend
  (local time caused fall_detected_at / received_at mismatch in DB)
- Store local FallEvent timestamps as UTC for correct .toLocal()
- Always submit fall to backend regardless of contacts count
  (recording and notification are separate backend concerns)

Fix alert flow when app is backgrounded:
- Add handleExpiredCountdown() to recover from lost Dart Timers
  when Android pauses the Flutter engine in background
- Add USE_FULL_SCREEN_INTENT permission prompt on Android 14+

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Raise max_subject_width from 72 to 120 and disable max_body_width (set to 0) so commit messages are not rejected for line length.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@thlaure thlaure merged commit d2086fb into main Apr 19, 2026
6 checks passed
@thlaure thlaure deleted the feat/i18n-and-datetime-fixes branch April 19, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant