}
void simple_clock_face_activate(movement_settings_t *settings, void *context) {
- if (settings->bit.clock_mode_24h) {
- watch_set_indicator(WATCH_INDICATOR_24H);
- }
+ if (watch_tick_animation_is_running()) watch_stop_tick_animation();
+
+ if (settings->bit.clock_mode_24h) watch_set_indicator(WATCH_INDICATOR_24H);
+
watch_set_colon();
// this ensures that none of the timestamp fields will match, so we can re-render them all.
*((uint32_t *)context) = 0xFFFFFFFF;
}
pos = 0;
if (event.event_type == EVENT_LOW_ENERGY_UPDATE) {
+ if (!watch_tick_animation_is_running()) watch_start_tick_animation(500);
sprintf(buf, "%s%2d%2d%02d ", weekdays[simple_clock_face_get_weekday(date_time.unit.year, date_time.unit.month, date_time.unit.day)], date_time.unit.day, date_time.unit.hour, date_time.unit.minute);
} else {
sprintf(buf, "%s%2d%2d%02d%02d", weekdays[simple_clock_face_get_weekday(date_time.unit.year, date_time.unit.month, date_time.unit.day)], date_time.unit.day, date_time.unit.hour, date_time.unit.minute, date_time.unit.second);
slcd_sync_start_animation(&SEGMENT_LCD_0, segs, 1, duration);
}
+bool watch_tick_animation_is_running() {
+ return hri_slcd_get_CTRLD_CSREN_bit(SLCD);
+}
+
void watch_stop_tick_animation() {
const uint32_t segs[] = { SLCD_SEGID(0, 2)};
slcd_sync_stop_animation(&SEGMENT_LCD_0, segs, 1);
*/
void watch_start_tick_animation(uint32_t duration);
+/** @brief Checks if the tick animation is currently running.
+ * @return true if the animation is running; false otherwise.
+ */
+bool watch_tick_animation_is_running();
+
/** @brief Stops the tick/tock animation and clears all animating segments.
* @details This will stop the animation and clear all segments in position 8.
*/