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 c65f1154..54800798 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 @@ -154,24 +154,27 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen @Override public void updateOnView(List scaleMeasurementList) { + currentScaleUser = OpenScale.getInstance(getContext()).getSelectedScaleUser(); + if (scaleMeasurementList.isEmpty()) { lastScaleMeasurement = new ScaleMeasurement(); + lastScaleMeasurement.setUserId(currentScaleUser.getId()); } else { lastScaleMeasurement = scaleMeasurementList.get(0); } - currentScaleUser = OpenScale.getInstance(getContext()).getSelectedScaleUser(); - updateStatistics(scaleMeasurementList); - updateGoal(scaleMeasurementList); + updateGoal(); } - private void updateGoal(List scaleMeasurementList) { - ScaleMeasurement goalScaleMeasurement = new ScaleMeasurement(); - goalScaleMeasurement.setConvertedWeight(currentScaleUser.getGoalWeight(), currentScaleUser.getScaleUnit()); - + private void updateGoal() { final Converters.WeightUnit unit = currentScaleUser.getScaleUnit(); - txtGoalWeight.setText(goalScaleMeasurement.getConvertedWeight(unit) + " " + unit.toString()); + + ScaleMeasurement goalScaleMeasurement = new ScaleMeasurement(); + goalScaleMeasurement.setUserId(currentScaleUser.getId()); + goalScaleMeasurement.setConvertedWeight(currentScaleUser.getGoalWeight(), unit); + + txtGoalWeight.setText(String.format("%.1f %s", goalScaleMeasurement.getConvertedWeight(unit), unit.toString())); double weight_diff = goalScaleMeasurement.getConvertedWeight(unit) - lastScaleMeasurement.getConvertedWeight(unit); txtGoalDiff.setText(String.format("%.1f %s", weight_diff, unit.toString())); @@ -181,19 +184,14 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen int days = Math.max(0, DateTimeHelpers.daysBetween(Calendar.getInstance(), goalCalendar)); txtGoalDayLeft.setText(getResources().getQuantityString(R.plurals.label_days, days, days)); - lastScaleMeasurement.setUserId(currentScaleUser.getId()); - - ScaleMeasurement goalData = new ScaleMeasurement(); - goalData.setConvertedWeight(currentScaleUser.getGoalWeight(), unit); - goalData.setUserId(currentScaleUser.getId()); - + final float goalBmi = goalScaleMeasurement.getBMI(currentScaleUser.getBodyHeight()); txtLabelGoalWeight.setText( Html.fromHtml( getResources().getString(R.string.label_goal_weight) + "
" + getResources().getString(R.string.label_bmi) + ": " + - String.format("%.1f", goalData.getBMI(currentScaleUser.getBodyHeight())) + + String.format("%.1f", goalBmi) + " " ) ); @@ -203,7 +201,7 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen "
" + getResources().getString(R.string.label_bmi) + ": " + - String.format("%.1f", lastScaleMeasurement.getBMI(currentScaleUser.getBodyHeight()) - goalData.getBMI(currentScaleUser.getBodyHeight())) + + String.format("%.1f", lastScaleMeasurement.getBMI(currentScaleUser.getBodyHeight()) - goalBmi) + " " ) ); @@ -216,7 +214,7 @@ public class StatisticsFragment extends Fragment implements FragmentUpdateListen + DateFormat.getDateInstance(DateFormat.LONG).format(currentScaleUser.getGoalDate()) + " " ) - ); // currentScaleUser.goalDate + ); } private void updateStatistics(List scaleMeasurementList) {