Calories / SpO2 charts: Add units

This commit is contained in:
José Rebelo
2025-12-26 21:26:37 +00:00
parent e6c4d53e5d
commit ebf548cecd
3 changed files with 12 additions and 10 deletions
@@ -35,6 +35,7 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
@@ -198,10 +199,11 @@ public class CaloriesDailyFragment extends AbstractChartFragment<CaloriesDailyFr
int restingCalories = data.restingBurnt;
int activeCalories = data.activeBurnt;
int totalCalories = activeCalories + restingCalories;
caloriesActive.setText(String.valueOf(activeCalories));
metabolicRate.setText(String.valueOf(data.restingMetabolicRate));
caloriesResting.setText(String.valueOf(restingCalories));
caloriesActiveGoal.setText(String.valueOf(ACTIVE_CALORIES_GOAL));
final String kcal = getString(R.string.calories_unit);
caloriesActive.setText(String.format(Locale.getDefault(), "%d %s", activeCalories, kcal));
metabolicRate.setText(String.format(Locale.getDefault(), "%d %s", data.restingMetabolicRate, kcal));
caloriesResting.setText(String.format(Locale.getDefault(), "%d %s", restingCalories, kcal));
caloriesActiveGoal.setText(String.format(Locale.getDefault(), "%d %s", ACTIVE_CALORIES_GOAL, kcal));
if (gaugeViewMode.equals(GaugeViewMode.TOTAL_CALORIES_SEGMENT)) {
int[] colors = new int[] {
@@ -133,9 +133,9 @@ public class Spo2ChartFragment extends AbstractChartFragment<Spo2ChartFragment.S
binding.manualMeasurementsList.removeAllViews();
binding.manualMeasurements.setVisibility(View.GONE);
final String emptyValue = requireContext().getString(R.string.stats_empty_value);
binding.spo2Minimum.setText(data.minimum > 0 ? String.valueOf(data.minimum) : emptyValue);
binding.spo2Maximum.setText(data.maximum > 0 ? String.valueOf(data.maximum) : emptyValue);
binding.spo2Average.setText(data.average > 0 ? String.valueOf(data.average) : emptyValue);
binding.spo2Minimum.setText(data.minimum > 0 ? getString(R.string.battery_percentage_str, String.valueOf(data.minimum)) : emptyValue);
binding.spo2Maximum.setText(data.maximum > 0 ? getString(R.string.battery_percentage_str, String.valueOf(data.maximum)) : emptyValue);
binding.spo2Average.setText(data.average > 0 ? getString(R.string.battery_percentage_str, String.valueOf(data.average)) : emptyValue);
binding.spo2LineChart.setData(null); // workaround for https://github.com/PhilJay/MPAndroidChart/issues/2317
binding.spo2LineChart.getAxisLeft().removeAllLimitLines();
Date date = new Date((long) getTSEnd() * 1000);
@@ -212,9 +212,9 @@ public class Spo2PeriodFragment extends AbstractChartFragment<Spo2PeriodFragment
final int minimum = minAccumulator.getCount() > 0 ? (int) Math.round(minAccumulator.getMin()) : DATA_INVALID;
final int maximum = maxAccumulator.getCount() > 0 ? (int) Math.round(maxAccumulator.getMax()) : DATA_INVALID;
spo2Minimum.setText(minimum > 0 ? String.valueOf(minimum) : emptyValue);
spo2Maximum.setText(maximum > 0 ? String.valueOf(maximum) : emptyValue);
spo2Average.setText(average > 0 ? String.valueOf(average) : emptyValue);
spo2Minimum.setText(minimum > 0 ? getString(R.string.battery_percentage_str, String.valueOf(minimum)) : emptyValue);
spo2Maximum.setText(maximum > 0 ? getString(R.string.battery_percentage_str, String.valueOf(maximum)) : emptyValue);
spo2Average.setText(average > 0 ? getString(R.string.battery_percentage_str, String.valueOf(average)) : emptyValue);
final String fmt = TOTAL_DAYS == 7 ? "EEE" : "dd";
SimpleDateFormat formatDay = new SimpleDateFormat(fmt, Locale.getDefault());