let temperature screen skip itself, restore it to the default firmware
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
#include "thermistor_driver.h"
|
||||
#include "watch.h"
|
||||
|
||||
static bool skip = false;
|
||||
|
||||
static void _temperature_display_face_update_display(bool in_fahrenheit) {
|
||||
float temperature_c = movement_get_temperature();
|
||||
if (in_fahrenheit) {
|
||||
@@ -40,11 +42,12 @@ static void _temperature_display_face_update_display(bool in_fahrenheit) {
|
||||
void temperature_display_face_setup(uint8_t watch_face_index, void ** context_ptr) {
|
||||
(void) watch_face_index;
|
||||
(void) context_ptr;
|
||||
// if temperature is invalid, we don't have a temperature sensor which means we shouldn't be here.
|
||||
if (movement_get_temperature() == 0xFFFFFFFF) skip = true;
|
||||
}
|
||||
|
||||
void temperature_display_face_activate(void *context) {
|
||||
(void) context;
|
||||
watch_display_text_with_fallback(WATCH_POSITION_TOP, "TEMP", "TE");
|
||||
}
|
||||
|
||||
bool temperature_display_face_loop(movement_event_t event, void *context) {
|
||||
@@ -56,6 +59,11 @@ bool temperature_display_face_loop(movement_event_t event, void *context) {
|
||||
_temperature_display_face_update_display(movement_use_imperial_units());
|
||||
break;
|
||||
case EVENT_ACTIVATE:
|
||||
if (skip) {
|
||||
movement_move_to_next_face();
|
||||
return false;
|
||||
}
|
||||
watch_display_text_with_fallback(WATCH_POSITION_TOP, "TEMP", "TE");
|
||||
// force a measurement to be taken immediately.
|
||||
date_time.unit.second = 0;
|
||||
// fall through
|
||||
|
||||
Reference in New Issue
Block a user