From cb3e10f07ab29bbbd44a2ae8be02ac5b21637778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Tue, 12 Dec 2023 20:46:59 +0000 Subject: [PATCH] Xiaomi: Update stress ranges to match watch --- .../charts/StressChartFragment.java | 19 ++++++------ .../devices/AbstractDeviceCoordinator.java | 29 ++++++++++++++----- .../devices/DeviceCoordinator.java | 5 ++++ .../devices/xiaomi/XiaomiCoordinator.java | 9 ++++++ .../gadgetbridge/model/StressSample.java | 6 +--- 5 files changed, 46 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/StressChartFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/StressChartFragment.java index 2e493302f..2e42cf9e1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/StressChartFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/charts/StressChartFragment.java @@ -59,7 +59,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.StressSample; import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils; -import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; public class StressChartFragment extends AbstractChartFragment { @@ -97,7 +96,7 @@ public class StressChartFragment extends AbstractChartFragment) samples); - return new StressChartsDataBuilder(samples).build(); + return new StressChartsDataBuilder(samples, device.getDeviceCoordinator().getStressRanges()).build(); } protected LineDataSet createDataSet(final StressType stressType, final List values) { @@ -281,6 +280,7 @@ public class StressChartFragment extends AbstractChartFragment samples; + private final int[] stressRanges; private final TimestampTranslation tsTranslation = new TimestampTranslation(); @@ -293,8 +293,9 @@ public class StressChartFragment extends AbstractChartFragment samples) { + public StressChartsDataBuilder(final List samples, final int[] stressRanges) { this.samples = samples; + this.stressRanges = stressRanges; } private void reset() { @@ -326,7 +327,7 @@ public class StressChartFragment extends AbstractChartFragment getTemperatureSampleProvider(GBDevice device, DaoSession session) { return null; @@ -282,7 +292,9 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { } @Override - public boolean supportsFlashing() { return false; } + public boolean supportsFlashing() { + return false; + } @Nullable @Override @@ -519,15 +531,16 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { int[] settings = new int[0]; ConnectionType connectionType = getConnectionType(); - if(connectionType.usesBluetoothLE()){ + if (connectionType.usesBluetoothLE()) { settings = ArrayUtils.insert(0, settings, R.xml.devicesettings_reconnect_ble); } - if(connectionType.usesBluetoothClassic()){ + if (connectionType.usesBluetoothClassic()) { settings = ArrayUtils.insert(0, settings, R.xml.devicesettings_reconnect_bl_classic); } return settings; } + @Override public int[] getSupportedDeviceSpecificApplicationSettings() { return new int[0]; @@ -613,7 +626,7 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { } @Override - public int getOrderPriority(){ + public int getOrderPriority() { return 0; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java index 1e7b31548..999523c29 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java @@ -249,6 +249,11 @@ public interface DeviceCoordinator { */ TimeSampleProvider getStressSampleProvider(GBDevice device, DaoSession session); + /** + * Returns the stress ranges (relaxed, mild, moderate, high), so that stress can be categorized. + */ + int[] getStressRanges(); + /** * Returns the sample provider for temperature data, for the device being supported. */ diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java index 70b4db328..5881eaaf1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xiaomi/XiaomiCoordinator.java @@ -115,6 +115,15 @@ public abstract class XiaomiCoordinator extends AbstractBLEDeviceCoordinator { return new XiaomiStressSampleProvider(device, session); } + @Override + public int[] getStressRanges() { + // 1-25 = relaxed + // 26-50 = mild + // 51-80 = moderate + // 81-100 = high + return new int[]{1, 26, 51, 81}; + } + @Override public TimeSampleProvider getSpo2SampleProvider(final GBDevice device, final DaoSession session) { return new XiaomiSpo2SampleProvider(device, session); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/StressSample.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/StressSample.java index 6c6827984..a63197593 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/StressSample.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/StressSample.java @@ -50,11 +50,7 @@ public interface StressSample extends TimeSample { Type getType(); /** - * Returns the normalized stress value between 0 and 100: - * - 0-39 = relaxed - * - 40-59 = mild - * - 60-79 = moderate - * - 80-100 = high + * Returns the stress value between 0 and 100. */ int getStress(); }