Просмотр исходного кода

battery info temperature shown in C or F based on settings (#2360)

* battery Info temperature displays C or F
* PowerSettings: add locale module to dependencies

Co-authored-by: あく <alleteam@gmail.com>
Round-Pi 2 лет назад
Родитель
Сommit
1ff5843ee6

+ 1 - 0
applications/settings/power_settings_app/application.fam

@@ -6,6 +6,7 @@ App(
     requires=[
         "gui",
         "power",
+        "locale",
     ],
     flags=["InsomniaSafe"],
     stack_size=1 * 1024,

+ 10 - 1
applications/settings/power_settings_app/views/battery_info.c

@@ -2,6 +2,7 @@
 #include <furi.h>
 #include <gui/elements.h>
 #include <assets_icons.h>
+#include <locale/locale.h>
 
 #define LOW_CHARGE_THRESHOLD 10
 #define HIGH_DRAIN_CURRENT_THRESHOLD 100
@@ -101,7 +102,15 @@ static void battery_info_draw_callback(Canvas* canvas, void* context) {
     char health[10];
 
     snprintf(batt_level, sizeof(batt_level), "%lu%%", (uint32_t)model->charge);
-    snprintf(temperature, sizeof(temperature), "%lu C", (uint32_t)model->gauge_temperature);
+    if(locale_get_measurement_unit() == LocaleMeasurementUnitsMetric) {
+        snprintf(temperature, sizeof(temperature), "%lu C", (uint32_t)model->gauge_temperature);
+    } else {
+        snprintf(
+            temperature,
+            sizeof(temperature),
+            "%lu F",
+            (uint32_t)locale_celsius_to_fahrenheit(model->gauge_temperature));
+    }
     snprintf(
         voltage,
         sizeof(voltage),