refactor time zone index to function calls

This commit is contained in:
joeycastillo 2024-09-29 09:30:12 -04:00
parent f315744cc3
commit 07d6a05e33
5 changed files with 23 additions and 11 deletions

View File

@ -329,6 +329,14 @@ int32_t movement_get_current_timezone_offset(void) {
return movement_get_current_timezone_offset_for_zone(movement_state.settings.bit.time_zone); return movement_get_current_timezone_offset_for_zone(movement_state.settings.bit.time_zone);
} }
int32_t movement_get_timezone_index(void) {
return movement_state.settings.bit.time_zone;
}
void movement_set_timezone_index(uint8_t value) {
movement_state.settings.bit.time_zone = value;
}
bool movement_button_should_sound(void) { bool movement_button_should_sound(void) {
return movement_state.settings.bit.button_should_sound; return movement_state.settings.bit.button_should_sound;
} }

View File

@ -331,6 +331,9 @@ uint8_t movement_claim_backup_register(void);
int32_t movement_get_current_timezone_offset_for_zone(uint8_t zone_index); int32_t movement_get_current_timezone_offset_for_zone(uint8_t zone_index);
int32_t movement_get_current_timezone_offset(void); int32_t movement_get_current_timezone_offset(void);
int32_t movement_get_timezone_index(void);
void movement_set_timezone_index(uint8_t value);
bool movement_button_should_sound(void); bool movement_button_should_sound(void);
void movement_set_button_should_sound(bool value); void movement_set_button_should_sound(bool value);

View File

@ -58,7 +58,7 @@ void habit_face_setup(movement_settings_t *settings, uint8_t watch_face_index,
habit_state_t *state = (habit_state_t *)*context_ptr; habit_state_t *state = (habit_state_t *)*context_ptr;
state->lookback = 0; state->lookback = 0;
state->last_update = watch_utility_offset_timestamp( state->last_update = watch_utility_offset_timestamp(
today_unix(settings->bit.time_zone), -24, 0, 0); today_unix(movement_get_current_timezone_offset()), -24, 0, 0);
} }
} }
@ -111,7 +111,7 @@ bool habit_face_loop(movement_event_t event, movement_settings_t *settings,
void *context) { void *context) {
habit_state_t *state = (habit_state_t *)context; habit_state_t *state = (habit_state_t *)context;
const uint32_t today_now_unix = today_unix(settings->bit.time_zone); const uint32_t today_now_unix = today_unix(movement_get_current_timezone_offset());
const bool can_do = (state->lookback & 1) == 0; const bool can_do = (state->lookback & 1) == 0;
switch (event.event_type) { switch (event.event_type) {

View File

@ -27,6 +27,7 @@
#include "set_time_hackwatch_face.h" #include "set_time_hackwatch_face.h"
#include "watch.h" #include "watch.h"
#include "watch_utility.h" #include "watch_utility.h"
#include "zones.h"
char set_time_hackwatch_face_titles[][3] = {"HR", "M1", "SE", "YR", "MO", "DA", "ZO"}; char set_time_hackwatch_face_titles[][3] = {"HR", "M1", "SE", "YR", "MO", "DA", "ZO"};
#define set_time_hackwatch_face_NUM_SETTINGS (sizeof(set_time_hackwatch_face_titles) / sizeof(*set_time_hackwatch_face_titles)) #define set_time_hackwatch_face_NUM_SETTINGS (sizeof(set_time_hackwatch_face_titles) / sizeof(*set_time_hackwatch_face_titles))
@ -125,10 +126,10 @@ bool set_time_hackwatch_face_loop(movement_event_t event, movement_settings_t *s
date_time_settings.unit.day++; date_time_settings.unit.day++;
break; break;
case 6: // time zone case 6: // time zone
if (settings->bit.time_zone > 0) { if (movement_get_timezone_index() > 0) {
settings->bit.time_zone--; movement_set_timezone_index(movement_get_timezone_index() - 1);
} else { } else {
settings->bit.time_zone = 40; movement_set_timezone_index(NUM_ZONE_NAMES - 1);
} }
break; break;
} }
@ -167,8 +168,8 @@ bool set_time_hackwatch_face_loop(movement_event_t event, movement_settings_t *s
date_time_settings.unit.day = date_time_settings.unit.day + 1; date_time_settings.unit.day = date_time_settings.unit.day + 1;
break; break;
case 6: // time zone case 6: // time zone
settings->bit.time_zone++; movement_set_timezone_index(movement_get_timezone_index() + 1);
if (settings->bit.time_zone > 40) settings->bit.time_zone = 0; if (movement_get_timezone_index() >= NUM_ZONE_NAMES) movement_set_timezone_index(0);
break; break;
} }
if (date_time_settings.unit.day > days_in_month(date_time_settings.unit.month, date_time_settings.unit.year + WATCH_RTC_REFERENCE_YEAR)) if (date_time_settings.unit.day > days_in_month(date_time_settings.unit.month, date_time_settings.unit.year + WATCH_RTC_REFERENCE_YEAR))

View File

@ -58,8 +58,8 @@ static void _handle_alarm_button(movement_settings_t *settings, watch_date_time
break; break;
} }
case 6: // time zone case 6: // time zone
settings->bit.time_zone++; movement_set_timezone_index(movement_get_timezone_index() + 1);
if (settings->bit.time_zone >= NUM_ZONE_NAMES) settings->bit.time_zone = 0; if (movement_get_timezone_index() >= NUM_ZONE_NAMES) movement_set_timezone_index(0);
break; break;
} }
if (date_time.unit.day > days_in_month(date_time.unit.month, date_time.unit.year + WATCH_RTC_REFERENCE_YEAR)) if (date_time.unit.day > days_in_month(date_time.unit.month, date_time.unit.year + WATCH_RTC_REFERENCE_YEAR))
@ -150,8 +150,8 @@ bool set_time_face_loop(movement_event_t event, movement_settings_t *settings, v
if (event.subsecond % 2) { if (event.subsecond % 2) {
memset(buf, ' ', sizeof(buf)); memset(buf, ' ', sizeof(buf));
} else { } else {
watch_display_text(WATCH_POSITION_TOP_LEFT, (char *) (zone_names + 11 * settings->bit.time_zone)); watch_display_text(WATCH_POSITION_TOP_LEFT, (char *) (zone_names + 11 * movement_get_timezone_index()));
sprintf(buf, "%s", (char *) (3 + zone_names + 11 * settings->bit.time_zone)); sprintf(buf, "%s", (char *) (3 + zone_names + 11 * movement_get_timezone_index()));
} }
} }