mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-26 09:44:31 +02:00
added options to select if body fat, body water or muscle are displayed as absolute or relative values.
This commit is contained in:
@@ -27,6 +27,7 @@ import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.health.openscale.R;
|
||||
@@ -41,6 +42,12 @@ import java.util.Set;
|
||||
|
||||
public class MeasurementPreferences extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public static final String PREFERENCE_KEY_DELETE_ALL = "deleteAll";
|
||||
public static final String PREFERENCE_KEY_FAT = "fatEnable";
|
||||
public static final String PREFERENCE_KEY_FAT_PERCENTAGE = "fatPercentageEnable";
|
||||
public static final String PREFERENCE_KEY_WATER = "waterEnable";
|
||||
public static final String PREFERENCE_KEY_WATER_PERCENTAGE = "waterPercentageEnable";
|
||||
public static final String PREFERENCE_KEY_MUSCLE = "muscleEnable";
|
||||
public static final String PREFERENCE_KEY_MUSCLE_PERCENTAGE = "musclePercentageEnable";
|
||||
public static final String PREFERENCE_KEY_ESTIMATE_WATER = "estimateWaterEnable";
|
||||
public static final String PREFERENCE_KEY_ESTIMATE_WATER_FORMULA = "estimateWaterFormula";
|
||||
public static final String PREFERENCE_KEY_ESTIMATE_LBW = "estimateLBWEnable";
|
||||
@@ -49,6 +56,14 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
||||
public static final String PREFERENCE_KEY_ESTIMATE_FAT_FORMULA = "estimateFatFormula";
|
||||
|
||||
private Preference deleteAll;
|
||||
|
||||
private CheckBoxPreference fatEnable;
|
||||
private SwitchPreference fatPercentageEnable;
|
||||
private CheckBoxPreference waterEnable;
|
||||
private SwitchPreference waterPercentageEnable;
|
||||
private CheckBoxPreference muscleEnable;
|
||||
private SwitchPreference musclePercentageEnable;
|
||||
|
||||
private CheckBoxPreference estimateWaterEnable;
|
||||
private ListPreference estimateWaterFormula;
|
||||
private CheckBoxPreference estimateLBWEnable;
|
||||
@@ -72,6 +87,13 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
||||
estimateFatEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_ESTIMATE_FAT);
|
||||
estimateFatFormula = (ListPreference) findPreference(PREFERENCE_KEY_ESTIMATE_FAT_FORMULA);
|
||||
|
||||
fatEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_FAT);
|
||||
fatPercentageEnable = (SwitchPreference) findPreference(PREFERENCE_KEY_FAT_PERCENTAGE);
|
||||
waterEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_WATER);
|
||||
waterPercentageEnable = (SwitchPreference) findPreference(PREFERENCE_KEY_WATER_PERCENTAGE);
|
||||
muscleEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_MUSCLE);
|
||||
musclePercentageEnable = (SwitchPreference) findPreference(PREFERENCE_KEY_MUSCLE_PERCENTAGE);
|
||||
|
||||
updateWaterListPreferences();
|
||||
updateLBWListPreferences();
|
||||
updateFatListPreferences();
|
||||
@@ -167,6 +189,24 @@ public class MeasurementPreferences extends PreferenceFragment implements Shared
|
||||
estimateFatFormula.setEnabled(false);
|
||||
}
|
||||
|
||||
if (fatEnable.isChecked()) {
|
||||
fatPercentageEnable.setEnabled(true);
|
||||
} else {
|
||||
fatPercentageEnable.setEnabled(false);
|
||||
}
|
||||
|
||||
if (waterEnable.isChecked()) {
|
||||
waterPercentageEnable.setEnabled(true);
|
||||
} else {
|
||||
waterPercentageEnable.setEnabled(false);
|
||||
}
|
||||
|
||||
if (muscleEnable.isChecked()) {
|
||||
musclePercentageEnable.setEnabled(true);
|
||||
} else {
|
||||
musclePercentageEnable.setEnabled(false);
|
||||
}
|
||||
|
||||
estimateWaterFormula.setSummary(EstimatedWaterMetric.getEstimatedMetric(EstimatedWaterMetric.FORMULA.valueOf(estimateWaterFormula.getValue())).getName());
|
||||
estimateLBWFormula.setSummary(EstimatedLBWMetric.getEstimatedMetric(EstimatedLBWMetric.FORMULA.valueOf(estimateLBWFormula.getValue())).getName());
|
||||
estimateFatFormula.setSummary(EstimatedFatMetric.getEstimatedMetric(EstimatedFatMetric.FORMULA.valueOf(estimateFatFormula.getValue())).getName());
|
||||
|
@@ -21,12 +21,14 @@ import android.support.v4.content.ContextCompat;
|
||||
|
||||
import com.health.openscale.R;
|
||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||
import com.health.openscale.core.datatypes.ScaleUser;
|
||||
import com.health.openscale.core.evaluation.EvaluationResult;
|
||||
import com.health.openscale.core.evaluation.EvaluationSheet;
|
||||
|
||||
public class FatMeasurementView extends FloatMeasurementView {
|
||||
|
||||
private boolean estimateFatEnable;
|
||||
private boolean percentageEnable;
|
||||
|
||||
public FatMeasurementView(Context context) {
|
||||
super(context, context.getResources().getString(R.string.label_fat), ContextCompat.getDrawable(context, R.drawable.ic_fat));
|
||||
@@ -36,28 +38,45 @@ public class FatMeasurementView extends FloatMeasurementView {
|
||||
public void updatePreferences(SharedPreferences preferences) {
|
||||
setVisible(preferences.getBoolean("fatEnable", true));
|
||||
estimateFatEnable = preferences.getBoolean("estimateFatEnable", false);
|
||||
percentageEnable = preferences.getBoolean("fatPercentageEnable", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMeasurementValue(ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
return measurement.getFat();
|
||||
}
|
||||
|
||||
return measurement.getConvertedWeight(getScaleUser().getScaleUnit()) / 100.0f * measurement.getFat();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setMeasurementValue(float value, ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
measurement.setFat(value);
|
||||
} else {
|
||||
measurement.setFat(100.0f / measurement.getConvertedWeight(getScaleUser().getScaleUnit()) * value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getUnit() {
|
||||
if (percentageEnable) {
|
||||
return "%";
|
||||
}
|
||||
|
||||
return ScaleUser.UNIT_STRING[getScaleUser().getScaleUnit()];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMaxValue() {
|
||||
if (percentageEnable) {
|
||||
return 80;
|
||||
}
|
||||
|
||||
return 300;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isEstimationEnabled() {
|
||||
return estimateFatEnable;
|
||||
|
@@ -21,11 +21,14 @@ import android.support.v4.content.ContextCompat;
|
||||
|
||||
import com.health.openscale.R;
|
||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||
import com.health.openscale.core.datatypes.ScaleUser;
|
||||
import com.health.openscale.core.evaluation.EvaluationResult;
|
||||
import com.health.openscale.core.evaluation.EvaluationSheet;
|
||||
|
||||
public class MuscleMeasurementView extends FloatMeasurementView {
|
||||
|
||||
private boolean percentageEnable;
|
||||
|
||||
public MuscleMeasurementView(Context context) {
|
||||
super(context, context.getResources().getString(R.string.label_muscle), ContextCompat.getDrawable(context, R.drawable.ic_muscle));
|
||||
}
|
||||
@@ -33,28 +36,45 @@ public class MuscleMeasurementView extends FloatMeasurementView {
|
||||
@Override
|
||||
public void updatePreferences(SharedPreferences preferences) {
|
||||
setVisible(preferences.getBoolean("muscleEnable", true));
|
||||
percentageEnable = preferences.getBoolean("musclePercentageEnable", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMeasurementValue(ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
return measurement.getMuscle();
|
||||
}
|
||||
|
||||
return measurement.getConvertedWeight(getScaleUser().getScaleUnit()) / 100.0f * measurement.getMuscle();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setMeasurementValue(float value, ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
measurement.setMuscle(value);
|
||||
} else {
|
||||
measurement.setMuscle(100.0f / measurement.getConvertedWeight(getScaleUser().getScaleUnit()) * value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getUnit() {
|
||||
if (percentageEnable) {
|
||||
return "%";
|
||||
}
|
||||
|
||||
return ScaleUser.UNIT_STRING[getScaleUser().getScaleUnit()];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMaxValue() {
|
||||
if (percentageEnable) {
|
||||
return 80;
|
||||
}
|
||||
|
||||
return 300;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value) {
|
||||
return evalSheet.evaluateBodyMuscle(value);
|
||||
|
@@ -21,12 +21,14 @@ import android.support.v4.content.ContextCompat;
|
||||
|
||||
import com.health.openscale.R;
|
||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||
import com.health.openscale.core.datatypes.ScaleUser;
|
||||
import com.health.openscale.core.evaluation.EvaluationResult;
|
||||
import com.health.openscale.core.evaluation.EvaluationSheet;
|
||||
|
||||
public class WaterMeasurementView extends FloatMeasurementView {
|
||||
|
||||
private boolean estimateWaterEnable;
|
||||
private boolean percentageEnable;
|
||||
|
||||
public WaterMeasurementView(Context context) {
|
||||
super(context, context.getResources().getString(R.string.label_water), ContextCompat.getDrawable(context, R.drawable.ic_water));
|
||||
@@ -36,28 +38,45 @@ public class WaterMeasurementView extends FloatMeasurementView {
|
||||
public void updatePreferences(SharedPreferences preferences) {
|
||||
setVisible(preferences.getBoolean("waterEnable", true));
|
||||
estimateWaterEnable = preferences.getBoolean("estimateWaterEnable", false);
|
||||
percentageEnable = preferences.getBoolean("waterPercentageEnable", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMeasurementValue(ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
return measurement.getWater();
|
||||
}
|
||||
|
||||
return measurement.getConvertedWeight(getScaleUser().getScaleUnit()) / 100.0f * measurement.getWater();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setMeasurementValue(float value, ScaleMeasurement measurement) {
|
||||
if (percentageEnable) {
|
||||
measurement.setWater(value);
|
||||
} else {
|
||||
measurement.setWater(100.0f / measurement.getConvertedWeight(getScaleUser().getScaleUnit()) * value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getUnit() {
|
||||
if (percentageEnable) {
|
||||
return "%";
|
||||
}
|
||||
|
||||
return ScaleUser.UNIT_STRING[getScaleUser().getScaleUnit()];
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getMaxValue() {
|
||||
if (percentageEnable) {
|
||||
return 80;
|
||||
}
|
||||
|
||||
return 300;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isEstimationEnabled() {
|
||||
return estimateWaterEnable;
|
||||
|
@@ -160,4 +160,7 @@
|
||||
<string name="close_drawer">schließen</string>
|
||||
<string name="info_bluetooth_no_device_set">Kein Bluetooth Gerät ausgewählt</string>
|
||||
<string name="info_new_data_duplicated">Messung mit gleichen Datum und Uhrzeit exisitiert bereits</string>
|
||||
<string name="label_fat_percentage">Körperfett in %</string>
|
||||
<string name="label_water_percentage">Wasseranteil in %</string>
|
||||
<string name="label_muscle_percentage">Muskelanteil in %</string>
|
||||
</resources>
|
@@ -40,6 +40,10 @@
|
||||
<string name="label_bone">Bone mass</string>
|
||||
<string name="label_smartUserAssign">Smart User assignment</string>
|
||||
|
||||
<string name="label_fat_percentage">Body fat in %</string>
|
||||
<string name="label_water_percentage">Body water in %</string>
|
||||
<string name="label_muscle_percentage">Muscle in %</string>
|
||||
|
||||
<plurals name="label_days">
|
||||
<item quantity="one">%d day</item>
|
||||
<item quantity="other">%d days</item>
|
||||
|
@@ -2,8 +2,11 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="@string/label_category_display">
|
||||
<CheckBoxPreference android:title="@string/label_fat" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="fatEnable" android:defaultValue="true"/>
|
||||
<SwitchPreference android:title="@string/label_fat_percentage" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key ="fatPercentageEnable" android:defaultValue="true"/>
|
||||
<CheckBoxPreference android:title="@string/label_water" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="waterEnable" android:defaultValue="true"/>
|
||||
<SwitchPreference android:title="@string/label_water_percentage" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key ="waterPercentageEnable" android:defaultValue="true"/>
|
||||
<CheckBoxPreference android:title="@string/label_muscle" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="muscleEnable" android:defaultValue="true"/>
|
||||
<SwitchPreference android:title="@string/label_muscle_percentage" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key ="musclePercentageEnable" android:defaultValue="true"/>
|
||||
<CheckBoxPreference android:title="@string/label_lbw" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="lbwEnable" android:defaultValue="false"/>
|
||||
<CheckBoxPreference android:title="@string/label_bone" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="boneEnable" android:defaultValue="false"/>
|
||||
<CheckBoxPreference android:title="@string/label_waist" android:summaryOn="@string/info_is_enable" android:summaryOff="@string/info_is_not_enable" android:key="waistEnable" android:defaultValue="false"/>
|
||||
|
Reference in New Issue
Block a user