diff --git a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothBeurerBF105.java b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothBeurerBF105.java index 51537d63..ffe77d51 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothBeurerBF105.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bluetooth/BluetoothBeurerBF105.java @@ -25,6 +25,7 @@ import static com.welie.blessed.BluetoothBytesParser.FORMAT_UINT8; import android.content.Context; +import com.health.openscale.core.datatypes.ScaleMeasurement; import com.welie.blessed.BluetoothBytesParser; import java.util.UUID; @@ -82,6 +83,20 @@ public class BluetoothBeurerBF105 extends BluetoothStandardWeightProfile { } } + @Override + protected ScaleMeasurement bodyCompositionMeasurementToScaleMeasurement(byte[] value) { + ScaleMeasurement measurement = super.bodyCompositionMeasurementToScaleMeasurement(value); + float weight = measurement.getWeight(); + if (weight == 0.f && previousMeasurement != null) { + weight = previousMeasurement.getWeight(); + } + if (weight != 0.f) { + float water = Math.round(((measurement.getWater() / weight) * 10000.f))/100.f; + measurement.setWater(water); + } + return measurement; + } + @Override protected void setNotifyVendorSpecificUserList() { if (setNotificationOn(SERVICE_BF105_CUSTOM, CHARACTERISTIC_USER_LIST)) {