refactor movement's unit preference to a function call

This commit is contained in:
joeycastillo 2024-09-29 08:09:11 -04:00
parent c5e5bc1200
commit 0bec3c22c4
8 changed files with 36 additions and 25 deletions

View File

@ -345,6 +345,14 @@ void movement_set_clock_mode_24h(movement_clock_mode_t value) {
movement_state.settings.bit.clock_mode_24h = (value == MOVEMENT_CLOCK_MODE_24H);
}
bool movement_use_imperial_units(void) {
return movement_state.settings.bit.use_imperial_units;
}
void movement_set_use_imperial_units(bool value) {
movement_state.settings.bit.use_imperial_units = value;
}
void app_init(void) {
_watch_init();

View File

@ -330,3 +330,6 @@ void movement_set_button_should_sound(bool value);
movement_clock_mode_t movement_clock_mode_24h(void);
void movement_set_clock_mode_24h(movement_clock_mode_t value);
bool movement_use_imperial_units(void);
void movement_set_use_imperial_units(bool value);

View File

@ -84,9 +84,9 @@ static void reset_state(kitchen_conversions_state_t *state, movement_settings_t
state->pg = measurement;
state->measurement_i = 0;
state->from_i = 0;
state->from_is_us = settings->bit.use_imperial_units; // If uses imperial, most likely to be US
state->from_is_us = movement_use_imperial_units(); // If uses imperial, most likely to be US
state->to_i = 0;
state->to_is_us = settings->bit.use_imperial_units;
state->to_is_us = movement_use_imperial_units();
state->selection_value = 0;
state->selection_index = 0;
state->light_held = false;
@ -395,12 +395,12 @@ bool kitchen_conversions_face_loop(movement_event_t event, movement_settings_t *
case from:
state->from_i = 0;
state->from_is_us = settings->bit.use_imperial_units;
state->from_is_us = movement_use_imperial_units();
break;
case to:
state->to_i = 0;
state->to_is_us = settings->bit.use_imperial_units;
state->to_is_us = movement_use_imperial_units();
break;
case input:

View File

@ -70,19 +70,19 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
switch (event.event_type) {
case EVENT_ACTIVATE:
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
_alarm_thermometer_face_update(movement_use_imperial_units());
break;
case EVENT_TICK:
if (watch_rtc_get_date_time().unit.second % 5 == 0) {
switch (state->mode) {
case MODE_NORMAL:
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
_alarm_thermometer_face_update(movement_use_imperial_units());
break;
case MODE_ALARM:
for (size_t i = LAST_SIZE - 1; i > 0; i--) {
state->last[i] = state->last[i - 1];
}
state->last[0] = roundf(_alarm_thermometer_face_update(settings->bit.use_imperial_units) * 10.0f);
state->last[0] = roundf(_alarm_thermometer_face_update(movement_use_imperial_units()) * 10.0f);
bool constant = true;
for (size_t i = 1; i < LAST_SIZE; i++) {
if (state->last[i - 1] != state->last[i]) {
@ -116,7 +116,7 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
case MODE_ALARM:
state->mode = MODE_NORMAL;
watch_clear_indicator(WATCH_INDICATOR_BELL);
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
_alarm_thermometer_face_update(movement_use_imperial_units());
break;
}
if (movement_button_should_sound()) {
@ -125,8 +125,8 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
break;
case EVENT_ALARM_LONG_PRESS:
if (state->mode != MODE_FREEZE) {
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
movement_set_use_imperial_units(!movement_use_imperial_units());
_alarm_thermometer_face_update(movement_use_imperial_units());
}
break;
case EVENT_LOW_ENERGY_UPDATE:
@ -137,7 +137,7 @@ bool alarm_thermometer_face_loop(movement_event_t event, movement_settings_t *se
watch_start_tick_animation(1000);
}
if (watch_rtc_get_date_time().unit.minute % 5 == 0) {
_alarm_thermometer_face_update(settings->bit.use_imperial_units);
_alarm_thermometer_face_update(movement_use_imperial_units());
watch_display_string(" ", 8);
}
break;

View File

@ -107,13 +107,13 @@ bool minmax_face_loop(movement_event_t event, movement_settings_t *settings, voi
switch (event.event_type) {
case EVENT_ACTIVATE:
temp_c = _get_displayed_temperature_c(state);
_minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
_minmax_face_update_display(temp_c, movement_use_imperial_units());
break;
case EVENT_LIGHT_LONG_PRESS:
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
movement_set_use_imperial_units(!movement_use_imperial_units());
temp_c = _get_displayed_temperature_c(state);
_minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
_minmax_face_update_display(temp_c, movement_use_imperial_units());
break;
case EVENT_ALARM_BUTTON_UP:
@ -124,7 +124,7 @@ bool minmax_face_loop(movement_event_t event, movement_settings_t *settings, voi
watch_display_string("MX", 0);
}
temp_c = _get_displayed_temperature_c(state);
_minmax_face_update_display(temp_c, settings->bit.use_imperial_units);
_minmax_face_update_display(temp_c, movement_use_imperial_units());
break;
case EVENT_TIMEOUT:

View File

@ -100,18 +100,18 @@ bool thermistor_logging_face_loop(movement_event_t event, movement_settings_t *s
break;
case EVENT_LIGHT_BUTTON_DOWN:
logger_state->ts_ticks = 2;
_thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
_thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
break;
case EVENT_ALARM_BUTTON_DOWN:
logger_state->display_index = (logger_state->display_index + 1) % THERMISTOR_LOGGING_NUM_DATA_POINTS;
logger_state->ts_ticks = 0;
// fall through
case EVENT_ACTIVATE:
_thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
_thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
break;
case EVENT_TICK:
if (logger_state->ts_ticks && --logger_state->ts_ticks == 0) {
_thermistor_logging_face_update_display(logger_state, settings->bit.use_imperial_units, movement_clock_mode_24h());
_thermistor_logging_face_update_display(logger_state, movement_use_imperial_units(), movement_clock_mode_24h());
}
break;
case EVENT_BACKGROUND_TASK:

View File

@ -58,8 +58,8 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
watch_date_time date_time = watch_rtc_get_date_time();
switch (event.event_type) {
case EVENT_ALARM_BUTTON_DOWN:
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
_thermistor_readout_face_update_display(settings->bit.use_imperial_units);
movement_set_use_imperial_units(!movement_use_imperial_units());
_thermistor_readout_face_update_display(movement_use_imperial_units());
break;
case EVENT_ACTIVATE:
// force a measurement to be taken immediately.
@ -72,7 +72,7 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
// In reality the measurement takes a fraction of a second, but this is just to show something is happening.
watch_set_indicator(WATCH_INDICATOR_SIGNAL);
} else if (date_time.unit.second % 5 == 0) {
_thermistor_readout_face_update_display(settings->bit.use_imperial_units);
_thermistor_readout_face_update_display(movement_use_imperial_units());
watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
}
break;
@ -85,7 +85,7 @@ bool thermistor_readout_face_loop(movement_event_t event, movement_settings_t *s
// update every 5 minutes
if (date_time.unit.minute % 5 == 0) {
watch_clear_indicator(WATCH_INDICATOR_SIGNAL);
_thermistor_readout_face_update_display(settings->bit.use_imperial_units);
_thermistor_readout_face_update_display(movement_use_imperial_units());
watch_display_string(" ", 8);
}
break;

View File

@ -60,12 +60,12 @@ bool thermistor_testing_face_loop(movement_event_t event, movement_settings_t *s
(void) context;
switch (event.event_type) {
case EVENT_ALARM_BUTTON_DOWN:
settings->bit.use_imperial_units = !settings->bit.use_imperial_units;
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
movement_set_use_imperial_units(!movement_use_imperial_units());
_thermistor_testing_face_update_display(movement_use_imperial_units());
break;
case EVENT_ACTIVATE:
case EVENT_TICK:
_thermistor_testing_face_update_display(settings->bit.use_imperial_units);
_thermistor_testing_face_update_display(movement_use_imperial_units());
break;
default:
movement_default_loop_handler(event, settings);