Fix "Rings On" feature - correct time display for future date alarms Implement Mutually Exclusive Scheduling Options for Alarms
Description
This PR fixes an issue with the "Rings On" feature where the time until the alarm was not correctly displayed for alarms set to future dates. The home screen and alarm settings page now correctly show the proper duration (e.g., "2 days" for an alarm set 2 days in the future).
This PR implements a new scheduling interface that makes alarm scheduling more intuitive by ensuring that "Ring On" (one-time) and "Repeat" (recurring) options are mutually exclusive.
Proposed Changes
-Enhanced timeUntilAlarm() method in Utils class to handle future date alarms with ringOn flag -Added formatted duration display for multi-day alarms -Updated all relevant controllers to pass the ringOn and alarmDate parameters -Added proper time updating when toggling the "Ring On" feature
- Created a new
SchedulingOptionsTilewith a tabbed interface for selecting between one-time and recurring alarms - Implemented automatic disabling of conflicting scheduling options
- Added undo functionality when settings are automatically changed
- Improved the visual design to make it clear which scheduling mode is active
- Added more intuitive feedback with snackbar notifications
Fixes #827
Screenshots
https://github.com/user-attachments/assets/e0cdf74d-4fae-435f-a1e2-e4a4ab6f85af
Checklist
- [x] Tests have been added or updated to cover the changes
- [x] Documentation has been updated to reflect the changes
- [x] Code follows the established coding style guidelines
- [x] All tests are passing