diff --git a/README.md b/README.md index ddf692b0..bd0ee260 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Install [openScale-dev-build.apk](https://github.com/oliexdev/openScale/releases - Estimates body metrics (body fat, body water and lean body mass) based on scientic publications - Support for multiple users - Partially or full support for custom made Bluetooth scale, Xiaomi Mi scale v1/v2, Sanitas SBF70, Medisana BS444, Digoo DG-S038H, Yunmai Mini, Excelvan CF369BLE, Yunmai SE, MGB, Exingtech Y1, Beurer BF700/710/800, Silvercrest SBF75, Runtastic Libra (see [openScale wiki](https://github.com/oliexdev/openScale/wiki/Supported-scales-in-openScale) for details) -- Partially or full translated into Brazilian Portuguese, Catalan, Chinese (traditional), Czech, Dutch, English, French, German, Greek, Italian, Japanese, Norwegian Bokmål, Polish, Romanian, Slovak, Spanish, Swedish, Turkish +- Partially or full translated into Brazilian Portuguese, Catalan, Chinese (traditional), Czech, Dutch, English, French, Galician, German, Greek, Italian, Japanese, Norwegian Bokmål, Polish, Romanian, Slovak, Spanish, Swedish, Turkish - No advertising and for free - All data belongs to you (no cloud service) 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 7f0adc91..63ef5389 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 @@ -46,34 +46,34 @@ public class ScaleMeasurement implements Cloneable { private int userId; @ColumnInfo(name = "enabled") private boolean enabled; - @CsvColumn (format = "dd.MM.yyyy HH:mm") + @CsvColumn(format = "dd.MM.yyyy HH:mm", mustNotBeBlank = true) @ColumnInfo(name = "datetime") private Date dateTime; - @CsvColumn + @CsvColumn(mustNotBeBlank = true) @ColumnInfo(name = "weight") private float weight; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "fat") private float fat; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "water") private float water; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "muscle") private float muscle; @CsvColumn @ColumnInfo(name = "visceralFat") private float visceralFat; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "lbw") private float lbm; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "waist") private float waist; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "hip") private float hip; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "bone") private float bone; @CsvColumn @@ -97,7 +97,7 @@ public class ScaleMeasurement implements Cloneable { @CsvColumn @ColumnInfo(name = "caliper3") private float caliper3; - @CsvColumn + @CsvColumn(mustBeSupplied = false) @ColumnInfo(name = "comment") private String 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 2d630e4d..981aa94b 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 @@ -40,36 +40,29 @@ public class CsvHelper { final String[] fields = sampleLine.split(",", -1); - // Return an array with header fields so that all the headers that actually are - // in the file for a given version comes first, and then the rest comes at the end. + // Return an array with header fields that match the guessed version. if (fields.length == 10) { // From version 1.6 up to 1.7 - return new String[]{ - "dateTime", "weight", "fat", "water", "muscle", "lbm", "bone", "waist", "hip", "comment"}; + return new String[]{"dateTime", "weight", "fat", "water", "muscle", "lbm", + "bone", "waist", "hip", "comment"}; } else if (fields.length == 9) { - // From version 1.5.5 (lbm unused) - return new String[]{ - "dateTime", "weight", "fat", "water", "muscle", "bone", "waist", "hip", "comment", - "lbm"}; + // From version 1.5.5 + return new String[]{"dateTime", "weight", "fat", "water", "muscle", "bone", + "waist", "hip", "comment"}; } else if (fields.length == 8) { - // From version 1.3 (lbm and bone unused) - return new String[]{ - "dateTime", "weight", "fat", "water", "muscle", "waist", "hip", "comment", - "lbm", "bone"}; + // From version 1.3 + return new String[]{"dateTime", "weight", "fat", "water", "muscle", "waist", + "hip", "comment"}; } else if (fields.length == 6) { - // From version 1.2 (lbm, bone, waist and hip unused) - return new String[]{ - "dateTime", "weight", "fat", "water", "muscle", "comment", - "lbm", "bone", "waist", "hip"}; + // From version 1.2 + return new String[]{"dateTime", "weight", "fat", "water", "muscle", "comment"}; } else if (fields.length == 5) { - // From version 1.0 (lbm, bone, waist, hip and muscle unused) - return new String[]{ - "dateTime", "weight", "fat", "water", "comment", - "lbm", "bone", "waist", "hip", "muscle"}; + // From version 1.0 + return new String[]{"dateTime", "weight", "fat", "water", "comment"}; } // Unknown input data format diff --git a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java index 17eb29ac..9ad86c52 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/widget/WidgetProvider.java @@ -39,6 +39,8 @@ import com.health.openscale.gui.views.MeasurementView; import java.text.DateFormat; import java.util.List; +import timber.log.Timber; + public class WidgetProvider extends AppWidgetProvider { List measurementViews; @@ -55,10 +57,15 @@ public class WidgetProvider extends AppWidgetProvider { // Make sure we use the correct language context = BaseAppCompatActivity.createBaseContext(context); + final int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); int userId = prefs.getInt(getUserIdPreferenceName(appWidgetId), -1); String key = prefs.getString(getMeasurementPreferenceName(appWidgetId), ""); + Timber.d("Update widget %d (%s) for user %d, min width %ddp", + appWidgetId, key, userId, minWidth); + if (measurementViews == null) { measurementViews = MeasurementView.getMeasurementList( context, MeasurementView.DateTimeOrder.NONE); @@ -79,7 +86,6 @@ public class WidgetProvider extends AppWidgetProvider { measurementView.loadFrom(latest, previous); } - final int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH); // From https://developer.android.com/guide/practices/ui_guidelines/widget_design final int twoCellsMinWidth = 110; final int thirdCellsMinWidth = 180; @@ -118,7 +124,7 @@ public class WidgetProvider extends AppWidgetProvider { views.setViewVisibility(R.id.widget_name_date_layout, View.GONE); } - // Always show value, but use smaller font in once cell mode + // Always show value and delta, but adjust font size views.setTextViewText(R.id.widget_value, measurementView.getValueAsString(true)); SpannableStringBuilder delta = new SpannableStringBuilder(); measurementView.appendDiffValue(delta, false); diff --git a/android_app/app/src/main/res/layout/widget.xml b/android_app/app/src/main/res/layout/widget.xml index 777853fc..c7205fc7 100644 --- a/android_app/app/src/main/res/layout/widget.xml +++ b/android_app/app/src/main/res/layout/widget.xml @@ -60,15 +60,15 @@ @@ -76,7 +76,7 @@ android:id="@+id/widget_delta" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="right" + android:gravity="center_horizontal" android:lines="1" android:textColor="@color/widgetTextColor" /> diff --git a/android_app/app/src/main/res/values/arrays.xml b/android_app/app/src/main/res/values/arrays.xml index cfe77854..f2115ad0 100644 --- a/android_app/app/src/main/res/values/arrays.xml +++ b/android_app/app/src/main/res/values/arrays.xml @@ -10,6 +10,7 @@ Dutch (Nederlands) English French (français) + Galician (Galego) German (Deutsch) Greek (ελληνικά) Italian (Italiano) @@ -33,6 +34,7 @@ nl en fr + gl de el it