Today I committed a quite a few updates for my Driver Timer, I will go over them one by one.
Added rest timer functionality [WIP]
Rest timer basic functionality is now operational.
Reset timer mapped to bottom button.
Drive timer stops when rest timer starts and vice versa.
Reset button resets rest timer too.
Saved state works for reset timer.
For the Driver Timer to be more useful, it needed to track rest time too. EU driving laws state that a rest period of at least 45 minutes must be completed before a total of 4 and a half driving hours.
This commit added early functionality of how it will work in my Driver Timer. It needs to be resettable by the user, the driver timer needs to automatically stop when the user puts the Driver Timer into rest mode and the app needs to remember how long the user has been resting if the Driver Timer has been exited. Due to a limitation of the Pebble watch, background operations (such as I am using in the Driver Timer when the app has been exited with the timers still counting) can only run up to two hours. This is save battery life and improve overall performance of the device as it only has limited resources.
Fixed persistent state for rest timer
Added vibrate alerts for rest timer (15 and 45 minutes).
Reset drive timer at 45 minute rest.
Added some EU rules to rest timer
If rest is less than 15 minutes, reset to zero when going back to drive mode.
If rest is more than 15 minutes but less than 45 minutes, reset rest to 15 minutes when going back to drive mode.
If rest is greater than or equal to 45 minutes reset drive timer to zero.
I added a vibrate alert for the user when the rest timer reaches 15 and 45 minutes. EU driving laws state that the 45 minute rest period can be split into two chunks, the first needs to be at least 15 minutes. The rest timer will reset to zero if drive mode is enabled before the rest time exceeds 15 minutes. If the rest timer is more than 15 minutes but less than 45 minutes, the rest timer will reset to 15 minutes if drive mode is enabled. If the rest timer reaches 45 minutes, the user is alerted with a vibration and the drive timer is reset to zero, allowing the user to drive for another 4 and half hours until rest is needed again.
Changed app icon and fixed post rest drive reset
I created an icon in Adobe Illustrator for the Driver Timer which I then exported as a .png. I used the universal drive symbol seen on a lot HGV tachograph units.
Changed button icons and order
Changed icons to mimic typical tachograph buttons
Up until this point, the original stopwatch icons were still being used for the button menu. I created some icons for the buttons and rearranged the order to fit with how the different timers were displayed on the screen.
Fixed drive button behaviour
Previously needed drive button to be pressed twice after a fully completed rest period.
The drive button was required to be pressed twice after a full rest period to change the mode back to drive. This was because the first press would reset the rest timer and the second press would start the drive timer. I found this was not very user friendly or intuitive, so I combined both actions to a single button press.