Repository navigation
v2.5.11: ADHD Intake Safeguards, Take All Actions, Dynamic Snooze, and 100% Translations Parity
Latestv2.5.11: ADHD Intake Safeguards, Take All Actions, Dynamic Snooze, and 100% Translations Parity
Summary of Changes
Release v2.5.11 introduces a dose intake countdown timer and re-alert safeguard tailored for patients with ADHD, a bulk "Take All" confirmation action for multi-medication time slots, dynamic per-alarm snooze duration selectors, 100% complete translation parity across all 12 supported languages, comprehensive architectural modularization, and critical reliability fixes across profile isolation, backup restoration, and alarm lifecycle management.
⚠️ Note for existing GitHub APK users:
Because Dosezy v2.4.2+ transitions to our official production release signing key (required for Google Play), updating directly over older debug-signed APKs requires a quick backup & reinstall:
- In Dosezy, go to Menu -> Backup & Restore and tap Export/Create Backup.
- Uninstall the older version.
- Install the new v2.5.11 APK.
- Go to Menu -> Backup & Restore and tap Restore Backup to restore all profiles, medicines, and history in 1 tap.
📱 Patient App (Android)
- ADHD Intake Countdown Timer and Re-Alert Safeguard (#104):
- Added a countdown buffer before confirming intake with automatic audio and visual re-alert if distracted or forgotten.
- Configurable countdown buffer durations (60s, 120s, 180s, 300s) available in user profile preferences.
- Interactive ongoing notification with immediate actions: Extend (+1 Min), Confirm Taken, and Cancel.
- Live countdown progress pill card displayed directly on the Home screen while a dose is pending intake confirmation.
- Dedicated ADHD INTAKE RE-ALERT full-screen alarm screen with high-visibility badge and prompt.
- Take All Multi-Medication Slot Action (#102):
- Added a consolidated "Take All (X)" multi-dose confirmation card when two or more medications share the exact same scheduled time slot.
- Prevents accidental bulk logging with an accessible confirmation dialog: "Mark all X medications scheduled for HH:mm as taken?".
- Simultaneously decrements inventory stock and logs adherence records in a single atomic transaction.
- Added a dedicated "Slide to Take All (X)" sliding gesture track in full-screen alarms.
- Dynamic Per-Alarm Snooze Duration Selector (#103):
- Added interactive duration chips (5m, 10m, 15m, 20m, 30m) directly on full-screen alarms, enabling patients to customize snooze time per-alarm without modifying global profile settings.
- Integrated dynamic snooze actions into system notification actions.
- 100% Locale Translation Parity Across 12 Languages:
- Translated all newly introduced UI strings, notifications, settings, and dialogue options across Arabic, Bengali, German, Spanish, French, Hindi, Italian, Japanese, Portuguese, Russian, and Chinese.
- Achieved 100% symmetric key parity (757 / 757 string keys) across all supported language catalogs.
- Missed Dose Status Transitions and Action Flow (#105):
- Resolved historical undo loop in
ScheduleViewModel.ktallowing patients to directly take or skip doses that have transitioned toMISSEDstatus without getting trapped in infinite prompt cycles.
- Resolved historical undo loop in
- Architecture and Modularization Refactoring (#106):
- Modularized monolithic screens (
NewUserScreen,MedicineFormComponents,MedicineTimingsAndDosagesCard,AlarmActivity) into maintainable, single-responsibility components. - Unified user and app preferences into reactive
UserPreferencesDataStore. - Decoupled ViewModels by introducing formal domain layer use cases (
ScheduleRecurrenceEngine, cohort dose actions). - Extracted
PdfReportGeneratorfromDataExporterandBackupRestoreViewModelfromBackupRestoreScreen.
- Modularized monolithic screens (
- Cross-Profile Emergency Contacts and Database Isolation:
- Guarded Room database migration to prevent schema discrepancies and ensured emergency contacts and dial actions remain strictly scoped to the active patient profile.
- Prevented cross-profile data leakage upon profile switching or deletion.
- Backup and Restore Hardening:
- Enforced atomic transactions and canonical path checks during ZIP extraction to eliminate Zip Slip and temp file leakage.
- Preserved custom imported alarm audio tracks and medication photos across backup and restore cycles.
- Resolved schedule entry ID collision risks during multi-file restores.
- Alarm Lifecycle and Keyguard Compatibility:
- Fixed lockscreen keyguard dismiss casting guard on Android 7.0 and 7.1 (API 24 and 25) avoiding
ClassCastException. - Ensured profile deletion cleanly disarms and unregisters all associated alarms and Glance widget preferences.
- Invalidated PRN calendar caches immediately upon logging as-needed doses.
- Fixed lockscreen keyguard dismiss casting guard on Android 7.0 and 7.1 (API 24 and 25) avoiding
🔌 OpenAPI 3.0 Platform & Ecosystem Parity
- Updated OpenAPI 3.0 specification (
api/openapi.yaml) to v2.5.11. - Added
intakeSafeguardEnabledandintakeCountdownSecondstoUserandUserCreateInputschemas. - Updated bidirectional Kotlin data mappers and mapping tables in
api/README.md.