From cae3f3666869760c9bbfd9e6b11d0bc4695ded64 Mon Sep 17 00:00:00 2001 From: OliE Date: Sun, 7 Oct 2018 12:41:48 +0200 Subject: [PATCH] estimate fat, water and LBM until library is reversed engineered --- .../core/bluetooth/BluetoothMiScale2.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothMiScale2.java b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothMiScale2.java index 73e25013..431334b8 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothMiScale2.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothMiScale2.java @@ -23,9 +23,16 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import com.health.openscale.core.OpenScale; +import com.health.openscale.core.bodymetric.EstimatedFatMetric; +import com.health.openscale.core.bodymetric.EstimatedLBMMetric; +import com.health.openscale.core.bodymetric.EstimatedWaterMetric; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; import com.health.openscale.core.utils.Converters; +import com.health.openscale.gui.views.FatMeasurementView; +import com.health.openscale.gui.views.LBMMeasurementView; +import com.health.openscale.gui.views.MeasurementViewSettings; +import com.health.openscale.gui.views.WaterMeasurementView; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -213,6 +220,24 @@ public class BluetoothMiScale2 extends BluetoothCommunication { scaleBtData.setWeight(Converters.toKilogram(weight, selectedUser.getScaleUnit())); scaleBtData.setDateTime(date_time); + // estimate fat, water and LBM until library is reversed engineered + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + MeasurementViewSettings settings = new MeasurementViewSettings(prefs, WaterMeasurementView.KEY); + EstimatedWaterMetric waterMetric = EstimatedWaterMetric.getEstimatedMetric( + EstimatedWaterMetric.FORMULA.valueOf(settings.getEstimationFormula())); + scaleBtData.setWater(waterMetric.getWater(selectedUser, scaleBtData)); + + settings = new MeasurementViewSettings(prefs, FatMeasurementView.KEY); + EstimatedFatMetric fatMetric = EstimatedFatMetric.getEstimatedMetric( + EstimatedFatMetric.FORMULA.valueOf(settings.getEstimationFormula())); + scaleBtData.setFat(fatMetric.getFat(selectedUser, scaleBtData)); + + settings = new MeasurementViewSettings(prefs, LBMMeasurementView.KEY); + EstimatedLBMMetric lbmMetric = EstimatedLBMMetric.getEstimatedMetric( + EstimatedLBMMetric.FORMULA.valueOf(settings.getEstimationFormula())); + scaleBtData.setLbm(lbmMetric.getLBM(selectedUser, scaleBtData)); + addScaleData(scaleBtData); } else { Timber.e("Invalid Mi scale weight year %d", year);