|
|
@@ -24,12 +24,15 @@ static View* view;
|
|
|
static VariableItemList* variable_item_list;
|
|
|
|
|
|
static const char states[2][9] = {"Auto", "Infinity"};
|
|
|
-static const char units[2][3] = {"*C", "*F"};
|
|
|
+static const char temp_units[UT_TEMP_COUNT][3] = {"*C", "*F"};
|
|
|
+static const char pressure_units[UT_PRESSURE_COUNT][6] = {"mm Hg", "in Hg", "kPa"};
|
|
|
|
|
|
//Элемент списка - бесконечная подсветка
|
|
|
VariableItem* infinity_backlight_item;
|
|
|
//Единица измерения температуры
|
|
|
VariableItem* temperature_unit_item;
|
|
|
+//Единица измерения давления
|
|
|
+VariableItem* pressure_unit_item;
|
|
|
#define VIEW_ID UnitempViewSettings
|
|
|
|
|
|
/**
|
|
|
@@ -52,7 +55,8 @@ static uint32_t _exit_callback(void* context) {
|
|
|
|
|
|
app->settings.infinityBacklight =
|
|
|
(bool)variable_item_get_current_value_index(infinity_backlight_item);
|
|
|
- app->settings.unit = (bool)variable_item_get_current_value_index(temperature_unit_item);
|
|
|
+ app->settings.temp_unit = variable_item_get_current_value_index(temperature_unit_item);
|
|
|
+ app->settings.pressure_unit = variable_item_get_current_value_index(pressure_unit_item);
|
|
|
unitemp_saveSettings();
|
|
|
unitemp_loadSettings();
|
|
|
|
|
|
@@ -79,7 +83,12 @@ static void _setting_change_callback(VariableItem* item) {
|
|
|
if(item == temperature_unit_item) {
|
|
|
variable_item_set_current_value_text(
|
|
|
temperature_unit_item,
|
|
|
- units[variable_item_get_current_value_index(temperature_unit_item)]);
|
|
|
+ temp_units[variable_item_get_current_value_index(temperature_unit_item)]);
|
|
|
+ }
|
|
|
+ if(item == pressure_unit_item) {
|
|
|
+ variable_item_set_current_value_text(
|
|
|
+ pressure_unit_item,
|
|
|
+ pressure_units[variable_item_get_current_value_index(pressure_unit_item)]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -92,9 +101,11 @@ void unitemp_Settings_alloc(void) {
|
|
|
variable_item_list_reset(variable_item_list);
|
|
|
|
|
|
infinity_backlight_item = variable_item_list_add(
|
|
|
- variable_item_list, "Backlight time", 2, _setting_change_callback, app);
|
|
|
+ variable_item_list, "Backlight time", UT_TEMP_COUNT, _setting_change_callback, app);
|
|
|
temperature_unit_item =
|
|
|
variable_item_list_add(variable_item_list, "Temp. unit", 2, _setting_change_callback, app);
|
|
|
+ pressure_unit_item = variable_item_list_add(
|
|
|
+ variable_item_list, "Press. unit", UT_PRESSURE_COUNT, _setting_change_callback, app);
|
|
|
|
|
|
//Добавление колбека на нажатие средней кнопки
|
|
|
variable_item_list_set_enter_callback(variable_item_list, _enter_callback, app);
|
|
|
@@ -117,10 +128,17 @@ void unitemp_Settings_switch(void) {
|
|
|
infinity_backlight_item,
|
|
|
states[variable_item_get_current_value_index(infinity_backlight_item)]);
|
|
|
|
|
|
- variable_item_set_current_value_index(temperature_unit_item, (uint8_t)app->settings.unit);
|
|
|
+ variable_item_set_current_value_index(temperature_unit_item, (uint8_t)app->settings.temp_unit);
|
|
|
variable_item_set_current_value_text(
|
|
|
temperature_unit_item,
|
|
|
- units[variable_item_get_current_value_index(temperature_unit_item)]);
|
|
|
+ temp_units[variable_item_get_current_value_index(temperature_unit_item)]);
|
|
|
+
|
|
|
+ variable_item_set_current_value_index(
|
|
|
+ pressure_unit_item, (uint8_t)app->settings.pressure_unit);
|
|
|
+ variable_item_set_current_value_text(
|
|
|
+ pressure_unit_item,
|
|
|
+ pressure_units[variable_item_get_current_value_index(pressure_unit_item)]);
|
|
|
+
|
|
|
view_dispatcher_switch_to_view(app->view_dispatcher, VIEW_ID);
|
|
|
}
|
|
|
|