diff --git a/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java index bd901b8b..579be708 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/OverviewFragment.java @@ -457,62 +457,69 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener if (scaleDataIterator.hasNext()) { ScaleData diffScaleData = scaleDataIterator.next(); - double diffWeight = lastScaleData.weight - diffScaleData.weight; - double diffBMI = currentScaleUser.getBMI(lastScaleData.weight) - currentScaleUser.getBMI(diffScaleData.weight); - double diffFat = lastScaleData.fat - diffScaleData.fat; - double diffMuscle = lastScaleData.muscle - diffScaleData.muscle; - double diffWater = lastScaleData.water - diffScaleData.water; - double diffWaist = lastScaleData.waist - diffScaleData.waist; - double diffWHtR = currentScaleUser.getWHtR(lastScaleData.waist) - currentScaleUser.getWHtR(diffScaleData.waist); - double diffHip = lastScaleData.hip - diffScaleData.hip; - double diffWHR = currentScaleUser.getWHR(lastScaleData.waist, lastScaleData.hip) - currentScaleUser.getWHR(diffScaleData.waist, diffScaleData.hip); - - - if (diffWeight > 0.0) - txtLabelWeight.setText(Html.fromHtml(getResources().getString(R.string.label_weight) + "
" + String.format("%.1f ", diffWeight) + ScaleUser.UNIT_STRING[currentScaleUser.scale_unit] + "")); - else - txtLabelWeight.setText(Html.fromHtml(getResources().getString(R.string.label_weight) + "
" + String.format("%.1f ", diffWeight) + ScaleUser.UNIT_STRING[currentScaleUser.scale_unit] + "")); - - - if (diffBMI > 0.0) - txtLabelBMI.setText(Html.fromHtml(getResources().getString(R.string.label_bmi) + "
" + String.format("%.1f", diffBMI) + "")); - else - txtLabelBMI.setText(Html.fromHtml(getResources().getString(R.string.label_bmi) + "
" + String.format("%.1f", diffBMI) + "")); - - if (diffFat > 0.0) - txtLabelFat.setText(Html.fromHtml(getResources().getString(R.string.label_fat) + "
" + String.format("%.1f", diffFat) + "%")); - else - txtLabelFat.setText(Html.fromHtml(getResources().getString(R.string.label_fat) + "
" + String.format("%.1f", diffFat) + "%")); - - if (diffMuscle > 0.0) - txtLabelMuscle.setText(Html.fromHtml(getResources().getString(R.string.label_muscle) + "
" + String.format("%.1f", diffMuscle) + "%")); - else - txtLabelMuscle.setText(Html.fromHtml(getResources().getString(R.string.label_muscle) + "
" + String.format("%.1f", diffMuscle) + "%")); - - if (diffWater > 0.0) - txtLabelWater.setText(Html.fromHtml(getResources().getString(R.string.label_water) + "
" + String.format("%.1f", diffWater) + "%")); - else - txtLabelWater.setText(Html.fromHtml(getResources().getString(R.string.label_water) + "
" + String.format("%.1f", diffWater) + "%")); - - if (diffWaist > 0.0) - txtLabelWaist.setText(Html.fromHtml(getResources().getString(R.string.label_waist) + "
" + String.format("%.1f", diffWaist) + "cm")); - else - txtLabelWaist.setText(Html.fromHtml(getResources().getString(R.string.label_waist) + "
" + String.format("%.1f", diffWaist) + "cm")); - - if (diffWHtR > 0.0) - txtLabelWHtR.setText(Html.fromHtml(getResources().getString(R.string.label_whtr) + "
" + String.format("%.2f", diffWHtR) + "")); - else - txtLabelWHtR.setText(Html.fromHtml(getResources().getString(R.string.label_whtr) + "
" + String.format("%.2f", diffWHtR) + "")); - - if (diffHip > 0.0) - txtLabelHip.setText(Html.fromHtml(getResources().getString(R.string.label_hip) + "
" + String.format("%.1f", diffHip) + "cm")); - else - txtLabelHip.setText(Html.fromHtml(getResources().getString(R.string.label_hip) + "
" + String.format("%.1f", diffHip) + "cm")); - - if (diffWHR > 0.0) - txtLabelWHR.setText(Html.fromHtml(getResources().getString(R.string.label_whr) + "
" + String.format("%.2f", diffWHR) + "")); - else - txtLabelWHR.setText(Html.fromHtml(getResources().getString(R.string.label_whr) + "
" + String.format("%.2f", diffWHR) + "")); + ScaleDiff.setDiff( + txtLabelWeight, + lastScaleData.weight - diffScaleData.weight, + getResources().getString(R.string.label_weight), + "%.1f ", + ScaleUser.UNIT_STRING[currentScaleUser.scale_unit] + ); + ScaleDiff.setDiff( + txtLabelBMI, + currentScaleUser.getBMI(lastScaleData.weight) - currentScaleUser.getBMI(diffScaleData.weight), + getResources().getString(R.string.label_bmi), + "%.1f ", + "" + ); + ScaleDiff.setDiff( + txtLabelFat, + lastScaleData.fat - diffScaleData.fat, + getResources().getString(R.string.label_fat), + "%.1f ", + "%" + ); + ScaleDiff.setDiff( + txtLabelMuscle, + lastScaleData.muscle - diffScaleData.muscle, + getResources().getString(R.string.label_muscle), + "%.1f ", + "%" + ); + ScaleDiff.setDiff( + txtLabelWater, + lastScaleData.water - diffScaleData.water, + getResources().getString(R.string.label_water), + "%.1f ", + "%" + ); + ScaleDiff.setDiff( + txtLabelWaist, + lastScaleData.waist - diffScaleData.waist, + getResources().getString(R.string.label_waist), + "%.1f ", + "cm" + ); + ScaleDiff.setDiff( + txtLabelWHtR, + currentScaleUser.getWHtR(lastScaleData.waist) - currentScaleUser.getWHtR(diffScaleData.waist), + getResources().getString(R.string.label_whtr), + "%.2f ", + "" + ); + ScaleDiff.setDiff( + txtLabelHip, + lastScaleData.hip - diffScaleData.hip, + getResources().getString(R.string.label_hip), + "%.1f ", + "cm" + ); + ScaleDiff.setDiff( + txtLabelWHR, + currentScaleUser.getWHR(lastScaleData.waist, lastScaleData.hip) - currentScaleUser.getWHR(diffScaleData.waist, diffScaleData.hip), + getResources().getString(R.string.label_whr), + "%.2f ", + "" + ); } } } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/ScaleDiff.java b/android_app/app/src/main/java/com/health/openscale/gui/ScaleDiff.java new file mode 100644 index 00000000..6403a4a9 --- /dev/null +++ b/android_app/app/src/main/java/com/health/openscale/gui/ScaleDiff.java @@ -0,0 +1,37 @@ +package com.health.openscale.gui; + +import android.text.Html; +import android.widget.TextView; + +public class ScaleDiff { + private static String SYMBOL_UP = "↗"; + private static String SYMBOL_DOWN = "↘"; + + public static void setDiff(TextView txtLabel, + double diff, + String labelResource, + String format, + String unit) { + + String symbol; + + if (diff > 0.0) { + symbol = SYMBOL_UP; + } else { + symbol = SYMBOL_DOWN; + } + + txtLabel.setText( + Html.fromHtml( + labelResource + + "
" + + symbol + + " " + + String.format(format, diff) + + unit + + "" + ) + ); + } +} +