Finally reworked the way date and time are set so that they have the expected value and behaviour

This commit is contained in:
anschrammh 2023-04-13 13:40:00 +02:00
parent 0789cc62ad
commit 9f241454c6

View File

@ -112,12 +112,11 @@ static void time_roller_cb(lv_event_t *e)
}
else if(roller == settingsScreen->month_roller)
{
index+=1;
settingsScreen->settingsScreenAPIInterface.setTimeSettingsCb(&NOT_SELECTED, &NOT_SELECTED, &NOT_SELECTED, &NOT_SELECTED, &index, &NOT_SELECTED, SETTING_MODE_SET);
}
else
{
index+=22; // Year is starting from 2000
index+=100+22; // Year is starting from 1900
settingsScreen->settingsScreenAPIInterface.setTimeSettingsCb(&NOT_SELECTED, &NOT_SELECTED, &NOT_SELECTED, &NOT_SELECTED, &NOT_SELECTED, &index, SETTING_MODE_SET);
}
}
@ -356,13 +355,13 @@ static void load_time_and_date_side_screen(SettingsScreen_t *settingsScreen)
lv_roller_set_options(settingsScreen->month_roller, month_options, LV_ROLLER_MODE_NORMAL);
lv_obj_align_to(settingsScreen->month_roller, settingsScreen->day_roller, LV_ALIGN_OUT_RIGHT_TOP, 5, 0);
lv_roller_set_visible_row_count(settingsScreen->month_roller, 2);
lv_roller_set_selected(settingsScreen->month_roller, month-1, LV_ANIM_OFF);
lv_roller_set_selected(settingsScreen->month_roller, month, LV_ANIM_OFF);
lv_obj_add_event_cb(settingsScreen->month_roller, &(time_roller_cb), LV_EVENT_RELEASED, settingsScreen);
lv_roller_set_options(settingsScreen->year_roller, year_options, LV_ROLLER_MODE_NORMAL);
lv_obj_align_to(settingsScreen->year_roller, settingsScreen->month_roller, LV_ALIGN_OUT_RIGHT_TOP, 5, 0);
lv_roller_set_visible_row_count(settingsScreen->year_roller, 2);
lv_roller_set_selected(settingsScreen->year_roller, year-22, LV_ANIM_OFF);
lv_roller_set_selected(settingsScreen->year_roller, year-100-22, LV_ANIM_OFF);
lv_obj_add_event_cb(settingsScreen->year_roller, &(time_roller_cb), LV_EVENT_RELEASED, settingsScreen);
// We set the state of the rollers only here, because they are not created yet earlier.
_enable_time_and_date_rollers(!auto_set_enable, settingsScreen);
@ -774,8 +773,8 @@ static void _set_rtc_time_to_label(SettingsScreen_t * const settingsScreen)
settingsScreen->settingsScreenAPIInterface.setTimeSettingsCb(&hour, &minute, &second, &day, &month, &year, SETTING_MODE_GET);
sprintf(settingsScreen->currentTime.current_time_text, "%u:%u:%u %s%u/%s%u/%u", hour, minute, second,
day < 10 ? "0":"", day,
month < 10 ? "0":"", month,
year+2000);
month + 1 < 10 ? "0":"", month,
year+1900);
lv_label_set_text_static(settingsScreen->currentTime.current_time_label, settingsScreen->currentTime.current_time_text);
}