diff --git a/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/2.json b/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/2.json index f4749255..44f5adba 100644 --- a/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/2.json +++ b/android_app/app/schemas/com.health.openscale.core.database.AppDatabase/2.json @@ -57,7 +57,7 @@ "notNull": true }, { - "fieldPath": "lbw", + "fieldPath": "lbm", "columnName": "lbw", "affinity": "REAL", "notNull": true diff --git a/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java b/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java index 0048acec..94209bba 100644 --- a/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java +++ b/android_app/app/src/androidTest/java/com/health/openscale/gui/ScreenshotRecorder.java @@ -141,7 +141,7 @@ public class ScreenshotRecorder { private List getTestMeasurements() { List scaleMeasurementList = new ArrayList<>(); - String data = "\"dateTime\",\"weight\",\"fat\",\"water\",\"muscle\",\"lbw\",\"bone\",\"waist\",\"hip\",\"comment\"\n" + + String data = "\"dateTime\",\"weight\",\"fat\",\"water\",\"muscle\",\"lbm\",\"bone\",\"waist\",\"hip\",\"comment\"\n" + "04.08.2015 08:08,89.7,21.2,58.0,41.5\n" + "03.08.2015 05:17,89.0,26.4,54.6,41.6\n" + "02.08.2015 07:32,88.8,25.0,55.6,41.7\n" + diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 79596aa1..0727805f 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -36,7 +36,7 @@ import com.health.openscale.core.alarm.AlarmHandler; import com.health.openscale.core.bluetooth.BluetoothCommunication; import com.health.openscale.core.bluetooth.BluetoothFactory; import com.health.openscale.core.bodymetric.EstimatedFatMetric; -import com.health.openscale.core.bodymetric.EstimatedLBWMetric; +import com.health.openscale.core.bodymetric.EstimatedLBMMetric; import com.health.openscale.core.bodymetric.EstimatedWaterMetric; import com.health.openscale.core.database.AppDatabase; import com.health.openscale.core.database.ScaleDatabase; @@ -49,7 +49,7 @@ import com.health.openscale.core.utils.Converters; import com.health.openscale.core.utils.CsvHelper; import com.health.openscale.gui.fragments.FragmentUpdateListener; import com.health.openscale.gui.views.FatMeasurementView; -import com.health.openscale.gui.views.LBWMeasurementView; +import com.health.openscale.gui.views.LBMMeasurementView; import com.health.openscale.gui.views.MeasurementViewSettings; import com.health.openscale.gui.views.WaterMeasurementView; @@ -271,11 +271,11 @@ public class OpenScale { scaleMeasurement.setWater(waterMetric.getWater(getScaleUser(scaleMeasurement.getUserId()), scaleMeasurement)); } - settings = new MeasurementViewSettings(prefs, LBWMeasurementView.KEY); + settings = new MeasurementViewSettings(prefs, LBMMeasurementView.KEY); if (settings.isEnabled() && settings.isEstimationEnabled()) { - EstimatedLBWMetric lbwMetric = EstimatedLBWMetric.getEstimatedMetric( - EstimatedLBWMetric.FORMULA.valueOf(settings.getEstimationFormula())); - scaleMeasurement.setLbw(lbwMetric.getLBW(getScaleUser(scaleMeasurement.getUserId()), scaleMeasurement)); + EstimatedLBMMetric lbmMetric = EstimatedLBMMetric.getEstimatedMetric( + EstimatedLBMMetric.FORMULA.valueOf(settings.getEstimationFormula())); + scaleMeasurement.setLbm(lbmMetric.getLBM(getScaleUser(scaleMeasurement.getUserId()), scaleMeasurement)); } settings = new MeasurementViewSettings(prefs, FatMeasurementView.KEY); diff --git a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedFatMetric.java b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedFatMetric.java index a493e8b6..6e3c68d6 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedFatMetric.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedFatMetric.java @@ -19,6 +19,7 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; public abstract class EstimatedFatMetric { + // Don't change enum names, they are stored persistent in preferences public enum FORMULA { BF_DEURENBERG, BF_DEURENBERG_II, BF_EDDY, BF_GALLAGHER, BF_GALLAGHER_ASIAN } public static EstimatedFatMetric getEstimatedMetric(FORMULA metric) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBWMetric.java b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBMMetric.java similarity index 77% rename from android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBWMetric.java rename to android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBMMetric.java index 5e300ac7..0b5e5b7b 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBWMetric.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedLBMMetric.java @@ -18,20 +18,21 @@ package com.health.openscale.core.bodymetric; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; -public abstract class EstimatedLBWMetric { +public abstract class EstimatedLBMMetric { + // Don't change enum names, they are stored persistent in preferences public enum FORMULA { LBW_HUME, LBW_BOER } - public static EstimatedLBWMetric getEstimatedMetric(FORMULA metric) { + public static EstimatedLBMMetric getEstimatedMetric(FORMULA metric) { switch (metric) { case LBW_HUME: - return new LBWHume(); + return new LBMHume(); case LBW_BOER: - return new LBWBoer(); + return new LBMBoer(); } return null; } public abstract String getName(); - public abstract float getLBW(ScaleUser user, ScaleMeasurement data); + public abstract float getLBM(ScaleUser user, ScaleMeasurement data); } diff --git a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedWaterMetric.java b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedWaterMetric.java index 81d38f74..2dc5f652 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedWaterMetric.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/EstimatedWaterMetric.java @@ -19,6 +19,7 @@ import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; public abstract class EstimatedWaterMetric { + // Don't change enum names, they are stored persistent in preferences public enum FORMULA { TBW_BEHNKE, TBW_DELWAIDECRENIER, TBW_HUMEWEYERS, TBW_LEESONGKIM } public static EstimatedWaterMetric getEstimatedMetric(FORMULA metric) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWBoer.java b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMBoer.java similarity index 91% rename from android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWBoer.java rename to android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMBoer.java index 6fba1eb1..e227f4c3 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWBoer.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMBoer.java @@ -19,14 +19,14 @@ package com.health.openscale.core.bodymetric; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; -public class LBWBoer extends EstimatedLBWMetric { +public class LBMBoer extends EstimatedLBMMetric { @Override public String getName() { return "Boer (1984)"; } @Override - public float getLBW(ScaleUser user, ScaleMeasurement data) { + public float getLBM(ScaleUser user, ScaleMeasurement data) { if (user.getGender().isMale()) { return (0.4071f * data.getWeight()) + (0.267f * user.getBodyHeight()) - 19.2f; } diff --git a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWHume.java b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMHume.java similarity index 91% rename from android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWHume.java rename to android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMHume.java index 45fcee24..8ef294b9 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBWHume.java +++ b/android_app/app/src/main/java/com/health/openscale/core/bodymetric/LBMHume.java @@ -19,14 +19,14 @@ package com.health.openscale.core.bodymetric; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.datatypes.ScaleUser; -public class LBWHume extends EstimatedLBWMetric { +public class LBMHume extends EstimatedLBMMetric { @Override public String getName() { return "Hume (1966)"; } @Override - public float getLBW(ScaleUser user, ScaleMeasurement data) { + public float getLBM(ScaleUser user, ScaleMeasurement data) { if (user.getGender().isMale()) { return (0.32810f * data.getWeight()) + (0.33929f * user.getBodyHeight()) - 29.5336f; } diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java b/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java index 97b79fac..f4d74e89 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/AppDatabase.java @@ -32,6 +32,9 @@ public abstract class AppDatabase extends RoomDatabase { public abstract ScaleMeasurementDAO measurementDAO(); public abstract ScaleUserDAO userDAO(); + // For the next database version: + // - rename lbw column to lbm + public static final Migration MIGRATION_1_2 = new Migration(1, 2) { @Override public void migrate(SupportSQLiteDatabase database) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabase.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabase.java index 9da7e8af..9489babe 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabase.java +++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabase.java @@ -161,7 +161,7 @@ public class ScaleDatabase extends SQLiteOpenHelper { scaleMeasurement.setFat(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_FAT))); scaleMeasurement.setWater(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_WATER))); scaleMeasurement.setMuscle(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE))); - scaleMeasurement.setLbw(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_LBW))); + scaleMeasurement.setLbm(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_LBW))); scaleMeasurement.setBone(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_BONE))); scaleMeasurement.setWaist(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_WAIST))); scaleMeasurement.setHip(cur.getFloat(cur.getColumnIndexOrThrow(COLUMN_NAME_HIP))); diff --git a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java index c09e9aec..b2f4a362 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java +++ b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleMeasurement.java @@ -62,7 +62,7 @@ public class ScaleMeasurement implements Cloneable { private float muscle; @CsvColumn @ColumnInfo(name = "lbw") - private float lbw; + private float lbm; @CsvColumn @ColumnInfo(name = "waist") private float waist; @@ -85,7 +85,7 @@ public class ScaleMeasurement implements Cloneable { fat = 0.0f; water = 0.0f; muscle = 0.0f; - lbw = 0.0f; + lbm = 0.0f; bone = 0.0f; waist = 0.0f; hip = 0.0f; @@ -231,12 +231,12 @@ public class ScaleMeasurement implements Cloneable { this.muscle = muscle; } - public float getLbw() { - return lbw; + public float getLbm() { + return lbm; } - public void setLbw(float lbw) { - this.lbw = lbw; + public void setLbm(float lbm) { + this.lbm = lbm; } public float getWaist() { @@ -301,8 +301,8 @@ public class ScaleMeasurement implements Cloneable { { return String.format( "ID: %d, USER_ID: %d, DATE_TIME: %s, WEIGHT: %.2f, FAT: %.2f, WATER: %.2f, " + - "MUSCLE: %.2f, LBW: %.2f, WAIST: %.2f, HIP: %.2f, BONE: %.2f, COMMENT: %s", + "MUSCLE: %.2f, LBM: %.2f, WAIST: %.2f, HIP: %.2f, BONE: %.2f, COMMENT: %s", id, userId, dateTime.toString(), weight, fat, water, - muscle, lbw, waist, hip, bone, comment); + muscle, lbm, waist, hip, bone, comment); } } diff --git a/android_app/app/src/main/java/com/health/openscale/core/utils/CsvHelper.java b/android_app/app/src/main/java/com/health/openscale/core/utils/CsvHelper.java index 5dc5265a..2d630e4d 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/utils/CsvHelper.java +++ b/android_app/app/src/main/java/com/health/openscale/core/utils/CsvHelper.java @@ -17,6 +17,7 @@ package com.health.openscale.core.utils; import com.health.openscale.core.datatypes.ScaleMeasurement; +import com.j256.simplecsv.processor.ColumnNameMatcher; import com.j256.simplecsv.processor.CsvProcessor; import java.io.BufferedReader; @@ -44,31 +45,31 @@ public class CsvHelper { if (fields.length == 10) { // From version 1.6 up to 1.7 return new String[]{ - "dateTime", "weight", "fat", "water", "muscle", "lbw", "bone", "waist", "hip", "comment"}; + "dateTime", "weight", "fat", "water", "muscle", "lbm", "bone", "waist", "hip", "comment"}; } else if (fields.length == 9) { - // From version 1.5.5 (lbw unused) + // From version 1.5.5 (lbm unused) return new String[]{ "dateTime", "weight", "fat", "water", "muscle", "bone", "waist", "hip", "comment", - "lbw"}; + "lbm"}; } else if (fields.length == 8) { - // From version 1.3 (lbw and bone unused) + // From version 1.3 (lbm and bone unused) return new String[]{ "dateTime", "weight", "fat", "water", "muscle", "waist", "hip", "comment", - "lbw", "bone"}; + "lbm", "bone"}; } else if (fields.length == 6) { - // From version 1.2 (lbw, bone, waist and hip unused) + // From version 1.2 (lbm, bone, waist and hip unused) return new String[]{ "dateTime", "weight", "fat", "water", "muscle", "comment", - "lbw", "bone", "waist", "hip"}; + "lbm", "bone", "waist", "hip"}; } else if (fields.length == 5) { - // From version 1.0 (lbw, bone, waist, hip and muscle unused) + // From version 1.0 (lbm, bone, waist, hip and muscle unused) return new String[]{ "dateTime", "weight", "fat", "water", "comment", - "lbw", "bone", "waist", "hip", "muscle"}; + "lbm", "bone", "waist", "hip", "muscle"}; } // Unknown input data format @@ -84,6 +85,14 @@ public class CsvHelper { .withAlwaysTrimInput(true) .withAllowPartialLines(true); + csvProcessor.setColumnNameMatcher(new ColumnNameMatcher() { + @Override + public boolean matchesColumnName(String definitionName, String csvName) { + return definitionName.equals(csvName) + || (definitionName.equals("lbm") && csvName.equals("lbw")); + } + }); + reader.mark(1000); try { csvProcessor.readHeader(reader, null); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java index 361fea93..8d631507 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/StatisticsFragment.java @@ -36,7 +36,7 @@ import com.health.openscale.core.utils.DateTimeHelpers; import com.health.openscale.gui.views.BoneMeasurementView; import com.health.openscale.gui.views.FatMeasurementView; import com.health.openscale.gui.views.HipMeasurementView; -import com.health.openscale.gui.views.LBWMeasurementView; +import com.health.openscale.gui.views.LBMMeasurementView; import com.health.openscale.gui.views.MeasurementView; import com.health.openscale.gui.views.MuscleMeasurementView; import com.health.openscale.gui.views.WaistMeasurementView; @@ -98,7 +98,7 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen viewMeasurementsListWeek.add(new WeightMeasurementView(statisticsView.getContext())); viewMeasurementsListWeek.add(new WaterMeasurementView(statisticsView.getContext())); viewMeasurementsListWeek.add(new MuscleMeasurementView(statisticsView.getContext())); - viewMeasurementsListWeek.add(new LBWMeasurementView(statisticsView.getContext())); + viewMeasurementsListWeek.add(new LBMMeasurementView(statisticsView.getContext())); viewMeasurementsListWeek.add(new FatMeasurementView(statisticsView.getContext())); viewMeasurementsListWeek.add(new BoneMeasurementView(statisticsView.getContext())); viewMeasurementsListWeek.add(new WaistMeasurementView(statisticsView.getContext())); @@ -128,7 +128,7 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen viewMeasurementsListMonth.add(new WeightMeasurementView(statisticsView.getContext())); viewMeasurementsListMonth.add(new WaterMeasurementView(statisticsView.getContext())); viewMeasurementsListMonth.add(new MuscleMeasurementView(statisticsView.getContext())); - viewMeasurementsListMonth.add(new LBWMeasurementView(statisticsView.getContext())); + viewMeasurementsListMonth.add(new LBMMeasurementView(statisticsView.getContext())); viewMeasurementsListMonth.add(new FatMeasurementView(statisticsView.getContext())); viewMeasurementsListMonth.add(new BoneMeasurementView(statisticsView.getContext())); viewMeasurementsListMonth.add(new WaistMeasurementView(statisticsView.getContext())); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java index 0083bfca..79190caf 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/BMIMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class BMIMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "bmi"; public BMIMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java index 2528c6f3..0dbe44b2 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/BMRMeasurementView.java @@ -27,6 +27,7 @@ import com.health.openscale.core.evaluation.EvaluationSheet; import java.util.Locale; public class BMRMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "bmr"; public BMRMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java index b9f52d9b..8acb85b7 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/BoneMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class BoneMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "bone"; public BoneMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java index 9bfa08f9..55eaa2d1 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/CommentMeasurementView.java @@ -26,6 +26,7 @@ import com.health.openscale.R; import com.health.openscale.core.datatypes.ScaleMeasurement; public class CommentMeasurementView extends MeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "comment"; private String comment; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java index 634d3986..127981f2 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/DateMeasurementView.java @@ -29,6 +29,7 @@ import java.util.Calendar; import java.util.Date; public class DateMeasurementView extends MeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "date"; private static final DateFormat dateFormat = DateFormat.getDateInstance(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java index 6c1a479d..7743a2c7 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/FatMeasurementView.java @@ -27,6 +27,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class FatMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "fat"; public FatMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java index 09f78e42..d763c45b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/HipMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class HipMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "hip"; public HipMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/LBWMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java similarity index 80% rename from android_app/app/src/main/java/com/health/openscale/gui/views/LBWMeasurementView.java rename to android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java index 6addf07c..f3b7f696 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/LBWMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/LBMMeasurementView.java @@ -21,16 +21,17 @@ import android.preference.ListPreference; import android.support.v4.content.ContextCompat; import com.health.openscale.R; -import com.health.openscale.core.bodymetric.EstimatedLBWMetric; +import com.health.openscale.core.bodymetric.EstimatedLBMMetric; import com.health.openscale.core.datatypes.ScaleMeasurement; import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; -public class LBWMeasurementView extends FloatMeasurementView { +public class LBMMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "lbw"; - public LBWMeasurementView(Context context) { - super(context, context.getResources().getString(R.string.label_lbw), ContextCompat.getDrawable(context, R.drawable.ic_lbw)); + public LBMMeasurementView(Context context) { + super(context, context.getResources().getString(R.string.label_lbm), ContextCompat.getDrawable(context, R.drawable.ic_lbm)); } @Override @@ -40,12 +41,12 @@ public class LBWMeasurementView extends FloatMeasurementView { @Override protected float getMeasurementValue(ScaleMeasurement measurement) { - return measurement.getLbw(); + return measurement.getLbm(); } @Override protected void setMeasurementValue(float value, ScaleMeasurement measurement) { - measurement.setLbw(value); + measurement.setLbm(value); } @Override @@ -68,12 +69,12 @@ public class LBWMeasurementView extends FloatMeasurementView { @Override protected void prepareEstimationFormulaPreference(ListPreference preference) { - String[] entries = new String[EstimatedLBWMetric.FORMULA.values().length]; + String[] entries = new String[EstimatedLBMMetric.FORMULA.values().length]; String[] values = new String[entries.length]; int idx = 0; - for (EstimatedLBWMetric.FORMULA formula : EstimatedLBWMetric.FORMULA.values()) { - entries[idx] = EstimatedLBWMetric.getEstimatedMetric(formula).getName(); + for (EstimatedLBMMetric.FORMULA formula : EstimatedLBMMetric.FORMULA.values()) { + entries[idx] = EstimatedLBMMetric.getEstimatedMetric(formula).getName(); values[idx] = formula.name(); ++idx; } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java index 0c555525..bd123325 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementView.java @@ -106,7 +106,7 @@ public abstract class MeasurementView extends TableLayout { unsorted.add(new BMIMeasurementView(context)); unsorted.add(new WaterMeasurementView(context)); unsorted.add(new MuscleMeasurementView(context)); - unsorted.add(new LBWMeasurementView(context)); + unsorted.add(new LBMMeasurementView(context)); unsorted.add(new FatMeasurementView(context)); unsorted.add(new BoneMeasurementView(context)); unsorted.add(new WaistMeasurementView(context)); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java index 8c6565fd..2175ca3a 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MeasurementViewSettings.java @@ -19,7 +19,7 @@ package com.health.openscale.gui.views; import android.content.SharedPreferences; import com.health.openscale.core.bodymetric.EstimatedFatMetric; -import com.health.openscale.core.bodymetric.EstimatedLBWMetric; +import com.health.openscale.core.bodymetric.EstimatedLBMMetric; import com.health.openscale.core.bodymetric.EstimatedWaterMetric; public class MeasurementViewSettings { @@ -52,7 +52,7 @@ public class MeasurementViewSettings { case WeightMeasurementView.KEY: // Weight can't be disabled return true; - case LBWMeasurementView.KEY: + case LBMMeasurementView.KEY: case BoneMeasurementView.KEY: case WaistMeasurementView.KEY: case HipMeasurementView.KEY: @@ -137,7 +137,7 @@ public class MeasurementViewSettings { switch (key) { case FatMeasurementView.KEY: return "estimateFatEnable"; - case LBWMeasurementView.KEY: + case LBMMeasurementView.KEY: return "estimateLBWEnable"; case WaterMeasurementView.KEY: return "estimateWaterEnable"; @@ -153,7 +153,7 @@ public class MeasurementViewSettings { switch (key) { case FatMeasurementView.KEY: return "estimateFatFormula"; - case LBWMeasurementView.KEY: + case LBMMeasurementView.KEY: return "estimateLBWFormula"; case WaterMeasurementView.KEY: return "estimateWaterFormula"; @@ -167,8 +167,8 @@ public class MeasurementViewSettings { case FatMeasurementView.KEY: defaultValue = EstimatedFatMetric.FORMULA.BF_GALLAGHER.name(); break; - case LBWMeasurementView.KEY: - defaultValue = EstimatedLBWMetric.FORMULA.LBW_HUME.name(); + case LBMMeasurementView.KEY: + defaultValue = EstimatedLBMMetric.FORMULA.LBW_HUME.name(); break; case WaterMeasurementView.KEY: defaultValue = EstimatedWaterMetric.FORMULA.TBW_LEESONGKIM.name(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java index 4b2d7cd7..4eb2d047 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/MuscleMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class MuscleMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "muscle"; public MuscleMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java index b49cc249..192d6f58 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/TimeMeasurementView.java @@ -29,6 +29,7 @@ import java.util.Calendar; import java.util.Date; public class TimeMeasurementView extends MeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "time"; private final DateFormat timeFormat; diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java index 2c9c5919..62b5a1cd 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/WHRMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class WHRMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "whr"; public WHRMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java index f9e118e6..b4f54194 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/WHtRMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class WHtRMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "whtr"; public WHtRMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java index aaf827f2..01dd1570 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/WaistMeasurementView.java @@ -25,6 +25,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class WaistMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "waist"; public WaistMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java index 6f091f1b..8c7bd66b 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/WaterMeasurementView.java @@ -27,6 +27,7 @@ import com.health.openscale.core.evaluation.EvaluationResult; import com.health.openscale.core.evaluation.EvaluationSheet; public class WaterMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "water"; public WaterMeasurementView(Context context) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java index f99d8312..52ba50dd 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/views/WeightMeasurementView.java @@ -26,6 +26,7 @@ import com.health.openscale.core.evaluation.EvaluationSheet; import com.health.openscale.core.utils.Converters; public class WeightMeasurementView extends FloatMeasurementView { + // Don't change key value, it may be stored persistent in preferences public static final String KEY = "weight"; public WeightMeasurementView(Context context) { diff --git a/android_app/app/src/main/res/drawable-hdpi/ic_lbw.png b/android_app/app/src/main/res/drawable-hdpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-hdpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-hdpi/ic_lbm.png diff --git a/android_app/app/src/main/res/drawable-ldpi/ic_lbw.png b/android_app/app/src/main/res/drawable-ldpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-ldpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-ldpi/ic_lbm.png diff --git a/android_app/app/src/main/res/drawable-mdpi/ic_lbw.png b/android_app/app/src/main/res/drawable-mdpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-mdpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-mdpi/ic_lbm.png diff --git a/android_app/app/src/main/res/drawable-xhdpi/ic_lbw.png b/android_app/app/src/main/res/drawable-xhdpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-xhdpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-xhdpi/ic_lbm.png diff --git a/android_app/app/src/main/res/drawable-xxhdpi/ic_lbw.png b/android_app/app/src/main/res/drawable-xxhdpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-xxhdpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-xxhdpi/ic_lbm.png diff --git a/android_app/app/src/main/res/drawable-xxxhdpi/ic_lbw.png b/android_app/app/src/main/res/drawable-xxxhdpi/ic_lbm.png similarity index 100% rename from android_app/app/src/main/res/drawable-xxxhdpi/ic_lbw.png rename to android_app/app/src/main/res/drawable-xxxhdpi/ic_lbm.png diff --git a/android_app/app/src/main/res/values-ca/strings.xml b/android_app/app/src/main/res/values-ca/strings.xml index 7f836b81..b3fccbc6 100644 --- a/android_app/app/src/main/res/values-ca/strings.xml +++ b/android_app/app/src/main/res/values-ca/strings.xml @@ -25,7 +25,7 @@ Percentatge de greix corporal Percentatge d\'aigua Percentatge muscular - Massa corporal magra + Massa corporal magra Circumferència de la cintura Circumferència del maluc Comentari diff --git a/android_app/app/src/main/res/values-de/strings.xml b/android_app/app/src/main/res/values-de/strings.xml index c3ce1163..a5145a79 100644 --- a/android_app/app/src/main/res/values-de/strings.xml +++ b/android_app/app/src/main/res/values-de/strings.xml @@ -121,7 +121,7 @@ Bitte steigen Sie barfuß auf die Waage zur Referenzmessung auto Messwertedatenbank - Fettfreie Körpermasse + Fettfreie Körpermasse Lizenz Hauptentwickler Webseite diff --git a/android_app/app/src/main/res/values-es/strings.xml b/android_app/app/src/main/res/values-es/strings.xml index e12fffb8..200ac9d0 100644 --- a/android_app/app/src/main/res/values-es/strings.xml +++ b/android_app/app/src/main/res/values-es/strings.xml @@ -25,7 +25,7 @@ Porcentaje de grasa corporal Porcentaje de agua Porcentaje muscular - Masa corporal magra + Masa corporal magra Circunferencia de la cintura Circunferencia de la cadera Comentario diff --git a/android_app/app/src/main/res/values-nb/strings.xml b/android_app/app/src/main/res/values-nb/strings.xml index fe8dd0d9..ce9a0bd6 100644 --- a/android_app/app/src/main/res/values-nb/strings.xml +++ b/android_app/app/src/main/res/values-nb/strings.xml @@ -33,15 +33,15 @@ Kommentar Beinmasse Basert på vekt, høyde, alder, kjønn, etc. -Fettfri kroppsvekt + Fettfri kroppsvekt Midje-til-høyde -forhold Midje-til-hofte -forhold Smart brukertildeling - %d dag - %d dager - + %d dag + %d dager + De siste 7 dagene De siste 30 dagene Vektforskjell diff --git a/android_app/app/src/main/res/values-nl/strings.xml b/android_app/app/src/main/res/values-nl/strings.xml index 7b2bf35f..0dddd175 100644 --- a/android_app/app/src/main/res/values-nl/strings.xml +++ b/android_app/app/src/main/res/values-nl/strings.xml @@ -27,7 +27,7 @@ Lichaamsvet Lichaamsvocht Spieren - Vetvrije massa + Vetvrije massa Taille-omtrek Heup-omtrek Commentaar @@ -153,7 +153,7 @@ Stap alsjeblieft met blote voeten op de weegschaal voor een meting Gewicht meten: %.2f -Algemeen + Algemeen Delen openScale CSV data exporteren (%s) diff --git a/android_app/app/src/main/res/values-pl/strings.xml b/android_app/app/src/main/res/values-pl/strings.xml index 098a115d..144093f4 100644 --- a/android_app/app/src/main/res/values-pl/strings.xml +++ b/android_app/app/src/main/res/values-pl/strings.xml @@ -30,7 +30,7 @@ Procent tkanki tłuszczowej Procent wody w organizmie Procent masy mięśniowej - Beztłuszczowa masa ciała + Beztłuszczowa masa ciała Obwód talii Obwód bioder Komentarz diff --git a/android_app/app/src/main/res/values-pt/strings.xml b/android_app/app/src/main/res/values-pt/strings.xml index a9042a36..c521bc2d 100644 --- a/android_app/app/src/main/res/values-pt/strings.xml +++ b/android_app/app/src/main/res/values-pt/strings.xml @@ -124,7 +124,7 @@ Exportar dados openScale para CSV (%s) Taxa Metabólica Basal (TMB) - Massa Magra + Massa Magra Massa óssea Sem dispositivo Bluetooth selecionado %1$.2f%2$s [%3$s] para %4$s adicionado diff --git a/android_app/app/src/main/res/values-sv/strings.xml b/android_app/app/src/main/res/values-sv/strings.xml index bedaba75..3be921e0 100644 --- a/android_app/app/src/main/res/values-sv/strings.xml +++ b/android_app/app/src/main/res/values-sv/strings.xml @@ -58,7 +58,7 @@ Senast 7 dagarna Senast 30 dagarna Muskler - Fettfri kroppsvikt + Fettfri kroppsvikt Midjemått Höftomkrets Kommentar diff --git a/android_app/app/src/main/res/values-tr/strings.xml b/android_app/app/src/main/res/values-tr/strings.xml index 2cc442b6..c828b1cb 100644 --- a/android_app/app/src/main/res/values-tr/strings.xml +++ b/android_app/app/src/main/res/values-tr/strings.xml @@ -24,7 +24,7 @@ Vücüt Yað Yüzdesi Su Yüzdesi Kas Yüzdesi - Yaðsýz vücüt aðýrlýðý + Yaðsýz vücüt aðýrlýðý Bel çevresi Kalça çevresi Yorum diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml index a4c78f07..6fc5d9dc 100644 --- a/android_app/app/src/main/res/values/strings.xml +++ b/android_app/app/src/main/res/values/strings.xml @@ -31,7 +31,7 @@ Body fat Body water Muscle - Lean body weight + Lean body mass Waist circumference Hip circumference Comment @@ -70,48 +70,48 @@ Export Delete all - Value is required - The value is not in range + Value required + Value not in range Error exporting Error importing - Error: user name is required - Error: user name have to be at least 3 characters - Error: height is required - Error: initial weight is required - Error: goal weight is required + Error: Name required + Error: Name must be 3 characters or longer + Error: Height required + Error: Initial weight required + Error: Goal weight required Database entry deleted All database entries deleted Data exported to Data imported from - Enter value in cm - Enter an optional comment - Enter value in scale unit + Value in cm + Optional comment + Value in scale unit is visible is not visible is enabled is disabled is not available - Trying to connect to + Connecting to Lost Bluetooth connection No Bluetooth device found No Bluetooth device selected - Connection successful established + Connection established Initialize Bluetooth device - Bluetooth has an unexpected error + Unexpected Bluetooth error %1$.2f%2$s [%3$s] to %4$s added measurement with the same date and time already exist - Enter your name - No user exists. Please create a new user in the settings. - Can\'t evaluate the value + Your name + No user exists. Please create one in the settings. + Could not evaluate the value Do you really want to delete database entry? Do you really want to delete all database entries? Do you really want to delete the user? Bluetooth - Search for scale on startup + Connect to scale on startup Merge with last measurement Searching for Bluetooth scales Finished searching for Bluetooth scales @@ -189,7 +189,7 @@ Week view Permission not granted - openScale requires permission to access the coarse location to search for Bluetooth devices. The permission can be revoked after the device is found. + Coarse location permission needed to search for Bluetooth devices. It can be revoked after the device is found. Information Next Press and hold to reorder @@ -224,5 +224,5 @@ Estimated Based on weight, height, age, gender, etc. Is your scale not supported? - Click here if you want to help add support for it + Click here to help add support for it diff --git a/android_app/app/src/test/java/com/health/openscale/CsvHelperTest.java b/android_app/app/src/test/java/com/health/openscale/CsvHelperTest.java index 2a3b7109..1acb5334 100644 --- a/android_app/app/src/test/java/com/health/openscale/CsvHelperTest.java +++ b/android_app/app/src/test/java/com/health/openscale/CsvHelperTest.java @@ -33,7 +33,7 @@ import static junit.framework.Assert.assertEquals; public class CsvHelperTest { private static final String HEADERS = - "\"bone\",\"comment\",\"dateTime\",\"fat\",\"hip\",\"lbw\"," + "\"bone\",\"comment\",\"dateTime\",\"fat\",\"hip\",\"lbm\"," + "\"muscle\",\"waist\",\"water\",\"weight\"\n"; private void validateEntry(ScaleMeasurement m, int version) throws Exception { @@ -63,10 +63,10 @@ public class CsvHelperTest { assertEquals(0.0, m.getBone(), 0.001); } if (version > 3) { - assertEquals(4.0, m.getLbw(), 0.001); + assertEquals(4.0, m.getLbm(), 0.001); } else { - assertEquals(0.0, m.getLbw(), 0.001); + assertEquals(0.0, m.getLbm(), 0.001); } assertEquals("some text", m.getComment()); @@ -89,6 +89,18 @@ public class CsvHelperTest { validateEntry(list.get(0), 5); } + @Test + public void newStyleOldLbwHeaderNameSingleEntry() throws Exception { + final String data = HEADERS.replace("lbm", "lbw") + + "1.0,\"some text\",\"01.03.2018 12:45\",2.0,3.0,4.0,5.0,6.0,7.0,8.0\n"; + + List list = CsvHelper.importFrom( + new BufferedReader(new StringReader(data))); + + assertEquals(1, list.size()); + validateEntry(list.get(0), 5); + } + @Test public void exportImport() throws Exception { ScaleMeasurement m = new ScaleMeasurement(); @@ -96,7 +108,7 @@ public class CsvHelperTest { m.setFat(2.0f); m.setWater(7.0f); m.setMuscle(5.0f); - m.setLbw(4.0f); + m.setLbm(4.0f); m.setBone(1.0f); m.setWaist(6.0f); m.setHip(3.0f);