summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--movement/watch_faces/complication/totp_face.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/movement/watch_faces/complication/totp_face.c b/movement/watch_faces/complication/totp_face.c
index 8af5fbc4..e7e90281 100644
--- a/movement/watch_faces/complication/totp_face.c
+++ b/movement/watch_faces/complication/totp_face.c
@@ -77,14 +77,15 @@ static void _update_display(totp_state_t *totp_state) {
char buf[14];
div_t result;
uint8_t valid_for;
+ totp_t *totp = _totp_current(totp_state);
- result = div(totp_state->timestamp, timesteps[totp_state->current_index]);
+ result = div(totp_state->timestamp, totp->period);
if (result.quot != totp_state->steps) {
totp_state->current_code = getCodeFromTimestamp(totp_state->timestamp);
totp_state->steps = result.quot;
}
- valid_for = timesteps[totp_state->current_index] - result.rem;
- sprintf(buf, "%c%c%2d%06lu", labels[totp_state->current_index][0], labels[totp_state->current_index][1], valid_for, totp_state->current_code);
+ valid_for = totp->period - result.rem;
+ sprintf(buf, "%c%c%2d%06lu", totp->labels[0], totp->labels[1], valid_for, totp_state->current_code);
watch_display_string(buf, 0);
}
@@ -99,7 +100,8 @@ void totp_face_activate(movement_settings_t *settings, void *context) {
(void) settings;
memset(context, 0, sizeof(totp_state_t));
totp_state_t *totp_state = (totp_state_t *)context;
- TOTP(keys, key_sizes[0], timesteps[0], algorithms[0]);
+ totp_t *totp = _totp_current(totp_state);
+ TOTP(totp->key, totp->key_length, totp->period, totp->algorithm);
totp_state->timestamp = watch_utility_date_time_to_unix_time(watch_rtc_get_date_time(), movement_timezone_offsets[settings->bit.time_zone] * 60);
totp_state->current_code = getCodeFromTimestamp(totp_state->timestamp);
}
@@ -119,15 +121,14 @@ bool totp_face_loop(movement_event_t event, movement_settings_t *settings, void
movement_move_to_face(0);
break;
case EVENT_ALARM_BUTTON_UP:
- if (totp_state->current_index + 1 < num_keys) {
- totp_state->current_key_offset += key_sizes[totp_state->current_index];
+ if (totp_state->current_index + 1 < _totp_num()) {
totp_state->current_index++;
} else {
// wrap around to first key
- totp_state->current_key_offset = 0;
totp_state->current_index = 0;
}
- TOTP(keys + totp_state->current_key_offset, key_sizes[totp_state->current_index], timesteps[totp_state->current_index], algorithms[totp_state->current_index]);
+ totp_t *totp = _totp_current(totp_state);
+ TOTP(totp->key, totp->key_length, totp->period, totp->algorithm);
_update_display(totp_state);
break;
case EVENT_ALARM_BUTTON_DOWN: