Fixes
- Fix the app opening from other launchers (#602);
- Fix several audio playback issues:
- Prevent alarms from continuing to play in the background if audio settings are changed while an alarm is firing.
- Properly cancel the volume crescendo when playback is stopped, preventing sudden volume jumps;
- Fix an issue that could prevent other apps from resuming their audio after the alarm ended;
- Fix the application of the accent color for night mode;
Improvements
General
- Alarm, Clock, Timer, or Stopwatch settings are applied instantly without screen flickering.
- Add delay to power button actions for alarms and timers:
- This prevents the proximity sensor from instantly dismissing the alarm if the screen turns off automatically (e.g. when the phone is in a pocket or face down);
- Prevent the shake sensor from immediately stopping alarms and timers;
- Remove the "Hanoi" time zone from the "Home time zone" setting as it is not automatically available on Android;
- Use haptic feedback for all UI interactions (buttons, switches, etc.):
- Sync the "Enable vibration" setting with the device's global haptic feedback preferences;
- Keep raw vibrations strictly for firing alarms and timers;
- Add the missing tooltips to the floating action buttons;
- Improve overall performance and clean code;
Alarm
- Improve missed alarms (#597):
- Show notifications for missed alarm if "Snooze length" is set to "None";
- "Repeat missed alarms" is displayed in the settings or in the alarm editing panel only if "Silence after" and "Snooze length" are not disabled;
Timer
- Update the timer layout:
- Use the Material
CircularProgressIndicatorcomponent for standard timers and the MaterialLinearProgressIndicatorfor timers in compact mode. This displays a modern animation when the app is opened on the Timer tab, or when the timer is running, paused, or reset; - No longer hide the progress circle and progress bar to simplify the code and improve performance;
- In normal mode (progress circle displayed), the button layout has been modified to optimize usability and the size of the timers;
- Update the expired timers view to always use a night-mode background color;
- Use the Material
- Add the ability to invert the position of the timer buttons;