diff --git a/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java index 1bc6c806..90d0419d 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java @@ -29,7 +29,7 @@ import android.view.Window; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; -import android.widget.TableRow; +import android.widget.TableLayout; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; @@ -37,12 +37,12 @@ import android.widget.Toast; import com.health.openscale.R; import com.health.openscale.core.OpenScale; import com.health.openscale.core.ScaleData; -import com.health.openscale.core.ScaleUser; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.ListIterator; @@ -50,17 +50,21 @@ public class DataEntryActivity extends Activity { public static final int ADD_DATA_REQUEST = 0; public static final int EDIT_DATA_REQUEST = 1; - private TextView txtDataNr; - private EditText txtWeight; - private EditText txtFat; - private EditText txtWater; - private EditText txtMuscle; - private EditText txtWaist; - private EditText txtHip; - private EditText txtDate; - private EditText txtTime; + private ArrayList dataEntryMeasurements; + private TableLayout tableLayoutDataEntry; + + private WeightMeasurementView weightMeasurement; + private WaterMeasurementView waterMeasurement; + private MuscleMeasurementView muscleMeasurement; + private FatMeasurementView fatMeasurement; + private WaistMeasurementView waistMeasurement; + private HipMeasurementView hipMeasurement; + + private EditText txtDate; + private EditText txtTime; private EditText txtComment; + private TextView txtDataNr; private Button btnAdd; private Button btnOk; private Button btnCancel; @@ -85,18 +89,35 @@ public class DataEntryActivity extends Activity { context = this; + tableLayoutDataEntry = (TableLayout) findViewById(R.id.tableLayoutDataEntry); + + weightMeasurement = new WeightMeasurementView(context); + waterMeasurement = new WaterMeasurementView(context); + muscleMeasurement = new MuscleMeasurementView(context); + fatMeasurement = new FatMeasurementView(context); + waistMeasurement = new WaistMeasurementView(context); + hipMeasurement = new HipMeasurementView(context); + + dataEntryMeasurements = new ArrayList<>(); + dataEntryMeasurements.add(weightMeasurement); + dataEntryMeasurements.add(waterMeasurement); + dataEntryMeasurements.add(muscleMeasurement); + dataEntryMeasurements.add(fatMeasurement); + dataEntryMeasurements.add(waistMeasurement); + dataEntryMeasurements.add(hipMeasurement); + + Collections.reverse(dataEntryMeasurements); + + for (MeasurementView measuremt : dataEntryMeasurements) { + tableLayoutDataEntry.addView(measuremt, 0); + measuremt.setEditMode(true); + } + txtDataNr = (TextView) findViewById(R.id.txtDataNr); - txtWeight = (EditText) findViewById(R.id.txtWeight); - txtWeight.setHint(getResources().getString(R.string.info_enter_value_unit) + " " + ScaleUser.UNIT_STRING[OpenScale.getInstance(context).getSelectedScaleUser().scale_unit]); - txtFat = (EditText) findViewById(R.id.txtFat); - txtWater = (EditText) findViewById(R.id.txtWater); - txtMuscle = (EditText) findViewById(R.id.txtMuscle); - txtWaist = (EditText) findViewById(R.id.txtWaist); - txtHip = (EditText) findViewById(R.id.txtHip); txtDate = (EditText) findViewById(R.id.txtDate); - txtTime = (EditText) findViewById(R.id.txtTime); + txtTime = (EditText) findViewById(R.id.txtTime); txtComment = (EditText) findViewById(R.id.txtComment); - + btnAdd = (Button) findViewById(R.id.btnAdd); btnOk = (Button) findViewById(R.id.btnOk); btnCancel = (Button) findViewById(R.id.btnCancel); @@ -117,33 +138,13 @@ public class DataEntryActivity extends Activity { updateOnView(); } + private void updateOnView() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - if(!prefs.getBoolean("fatEnable", true)) { - TableRow row = (TableRow)findViewById(R.id.tableRowFat); - row.setVisibility(View.GONE); - } - - if(!prefs.getBoolean("muscleEnable", true)) { - TableRow row = (TableRow)findViewById(R.id.tableRowMuscle); - row.setVisibility(View.GONE); - } - - if(!prefs.getBoolean("waterEnable", true)) { - TableRow row = (TableRow)findViewById(R.id.tableRowWater); - row.setVisibility(View.GONE); - } - - if(!prefs.getBoolean("waistEnable", false)) { - TableRow row = (TableRow)findViewById(R.id.tableRowWaist); - row.setVisibility(View.GONE); - } - - if(!prefs.getBoolean("hipEnable", false)) { - TableRow row = (TableRow)findViewById(R.id.tableRowHip); - row.setVisibility(View.GONE); + for (MeasurementView measuremt : dataEntryMeasurements) { + measuremt.updatePreferences(prefs); } if (getIntent().getExtras().getInt("mode") == EDIT_DATA_REQUEST) { @@ -171,13 +172,10 @@ public class DataEntryActivity extends Activity { ScaleData editScaleData = openScale.getScaleData(id); txtDataNr.setText(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT).format(editScaleData.date_time)); - txtWeight.setText(editScaleData.weight+""); - txtFat.setText(editScaleData.fat+""); - txtWater.setText(editScaleData.water+""); - txtMuscle.setText(editScaleData.muscle+""); - txtWaist.setText(editScaleData.waist+""); - txtHip.setText(editScaleData.hip+""); - txtComment.setText(editScaleData.comment); + + for (MeasurementView measuremt : dataEntryMeasurements) { + measuremt.updateValue(editScaleData); + } txtDate.setText(dateFormat.format(editScaleData.date_time)); txtTime.setText(timeFormat.format(editScaleData.date_time)); @@ -196,114 +194,36 @@ public class DataEntryActivity extends Activity { { ScaleData lastScaleData = OpenScale.getInstance(this).getScaleDataList().get(0); - txtFat.setText(Float.toString(lastScaleData.fat)); - txtWater.setText(Float.toString(lastScaleData.water)); - txtMuscle.setText(Float.toString(lastScaleData.muscle)); - txtWaist.setText(Float.toString(lastScaleData.waist)); - txtHip.setText(Float.toString(lastScaleData.hip)); + // show as default last scale data + for (MeasurementView measuremt : dataEntryMeasurements) { + measuremt.updateValue(lastScaleData); + } } else { - txtFat.setText(Float.toString(0.0f)); - txtWater.setText(Float.toString(0.0f)); - txtMuscle.setText(Float.toString(0.0f)); - txtWaist.setText(Float.toString(0.0f)); - txtHip.setText(Float.toString(0.0f)); + // show default values + for (MeasurementView measuremt : dataEntryMeasurements) { + measuremt.updateValue(new ScaleData()); + } } txtDate.setText(dateFormat.format(new Date())); txtTime.setText(timeFormat.format(new Date())); } - private boolean validateInput() + private boolean validateAllInput() { - boolean validate = true; + boolean isValidate = true; - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - - if (prefs.getBoolean("weightEnable", true)) { - if (txtWeight.getText().toString().length() == 0) { - txtWeight.setError(getResources().getString(R.string.error_weight_value_required)); - validate = false; - } else if (!isInRange(txtWeight.getText().toString(), 300)) { - txtWeight.setError(getResources().getString(R.string.error_value_range_0_300)); - validate = false; + for (MeasurementView measuremt : dataEntryMeasurements) { + if (!measuremt.validateInput()) { + isValidate = false; } } - if (prefs.getBoolean("fatEnable", true)) { - if (txtFat.getText().toString().length() == 0) { - txtFat.setError(getResources().getString(R.string.error_fat_value_required)); - validate = false; - } else if (!isInRange(txtFat.getText().toString(), 100)) { - txtFat.setError(getResources().getString(R.string.error_value_range_0_100)); - validate = false; - } - } - - if (prefs.getBoolean("waterEnable", true)) { - if (txtWater.getText().toString().length() == 0) { - txtWater.setError(getResources().getString(R.string.error_water_value_required)); - validate = false; - } else if (!isInRange(txtWater.getText().toString(), 100)) { - txtWater.setError(getResources().getString(R.string.error_value_range_0_100)); - validate = false; - } - } - - if (prefs.getBoolean("muscleEnable", true)) { - if (txtMuscle.getText().toString().length() == 0) { - txtMuscle.setError(getResources().getString(R.string.error_muscle_value_required)); - validate = false; - } else if (!isInRange(txtMuscle.getText().toString(), 100)) { - txtMuscle.setError(getResources().getString(R.string.error_value_range_0_100)); - validate = false; - } - } - - if (prefs.getBoolean("waistEnable", false)) { - if (txtWaist.getText().toString().length() == 0) { - txtWaist.setError(getResources().getString(R.string.error_waist_value_required)); - validate = false; - } else if (!isInRange(txtWaist.getText().toString(), 300)) { - txtWaist.setError(getResources().getString(R.string.error_value_range_0_300)); - validate = false; - } - } - - if (prefs.getBoolean("hipEnable", false)) { - if (txtHip.getText().toString().length() == 0) { - txtHip.setError(getResources().getString(R.string.error_hip_value_required)); - validate = false; - } else if (!isInRange(txtHip.getText().toString(), 300)) { - txtHip.setError(getResources().getString(R.string.error_value_range_0_300)); - validate = false; - } - } - - return validate; - } - - private boolean isInRange(String value, int maxValue) - { - if (value.length() == 0) - return false; - - float val = Float.valueOf(value); - - if (val >= 0 && val <= maxValue) - return true; - - return false; + return isValidate; } private void saveScaleData() { - if (validateInput()) { - float weight = Float.valueOf(txtWeight.getText().toString()); - float fat = Float.valueOf(txtFat.getText().toString()); - float water = Float.valueOf(txtWater.getText().toString()); - float muscle = Float.valueOf(txtMuscle.getText().toString()); - float waist = Float.valueOf(txtWaist.getText().toString()); - float hip = Float.valueOf(txtHip.getText().toString()); - + if (validateAllInput()) { String comment = txtComment.getText().toString(); String date = txtDate.getText().toString(); @@ -311,7 +231,15 @@ public class DataEntryActivity extends Activity { OpenScale openScale = OpenScale.getInstance(context); - openScale.updateScaleData(id, date + " " + time, weight, fat, water, muscle, waist, hip, comment); + openScale.updateScaleData(id, + date + " " + time, + weightMeasurement.getValue(), + fatMeasurement.getValue(), + waterMeasurement.getValue(), + muscleMeasurement.getValue(), + waistMeasurement.getValue(), + hipMeasurement.getValue(), + comment); } } @@ -370,14 +298,14 @@ public class DataEntryActivity extends Activity { private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { - txtDate.setText(String.format("%02d.%02d.%04d", selectedDay, selectedMonth+1, selectedYear)); + // txtDate.setText(String.format("%02d.%02d.%04d", selectedDay, selectedMonth+1, selectedYear)); } }; private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { - txtTime.setText(String.format("%02d:%02d", hourOfDay, minute)); + // txtTime.setText(String.format("%02d:%02d", hourOfDay, minute)); } }; @@ -385,7 +313,7 @@ public class DataEntryActivity extends Activity { private class onClickListenerAdd implements View.OnClickListener { @Override public void onClick(View v) { - if (validateInput()) + if (validateAllInput()) { OpenScale openScale = OpenScale.getInstance(context); @@ -401,18 +329,20 @@ public class DataEntryActivity extends Activity { infoDialog.show(); } else { - float weight = Float.valueOf(txtWeight.getText().toString()); - float fat = Float.valueOf(txtFat.getText().toString()); - float water = Float.valueOf(txtWater.getText().toString()); - float muscle = Float.valueOf(txtMuscle.getText().toString()); - float waist = Float.valueOf(txtWaist.getText().toString()); - float hip = Float.valueOf(txtHip.getText().toString()); String comment = txtComment.getText().toString(); String date = txtDate.getText().toString(); String time = txtTime.getText().toString(); - openScale.addScaleData(selectedUserId, date + " " + time, weight, fat, water, muscle, waist, hip, comment); + openScale.addScaleData(selectedUserId, + date + " " + time, + weightMeasurement.getValue(), + fatMeasurement.getValue(), + waterMeasurement.getValue(), + muscleMeasurement.getValue(), + waistMeasurement.getValue(), + hipMeasurement.getValue(), + comment); finish(); } @@ -423,7 +353,7 @@ public class DataEntryActivity extends Activity { private class onClickListenerOk implements View.OnClickListener { @Override public void onClick(View v) { - if (validateInput()) { + if (validateAllInput()) { saveScaleData(); finish(); } diff --git a/android_app/app/src/main/java/com/health/openscale/gui/MeasurementView.java b/android_app/app/src/main/java/com/health/openscale/gui/MeasurementView.java index 83a4b4be..76c6145c 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/MeasurementView.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/MeasurementView.java @@ -6,7 +6,10 @@ import android.graphics.Color; import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import android.text.Html; +import android.text.InputType; +import android.util.TypedValue; import android.view.View; +import android.widget.EditText; import android.widget.ImageView; import android.widget.Space; import android.widget.TableLayout; @@ -16,6 +19,7 @@ import android.widget.TextView; import com.health.openscale.R; import com.health.openscale.core.EvaluationResult; import com.health.openscale.core.EvaluationSheet; +import com.health.openscale.core.OpenScale; import com.health.openscale.core.ScaleCalculator; import com.health.openscale.core.ScaleData; import com.health.openscale.core.ScaleUser; @@ -37,12 +41,13 @@ abstract class MeasurementView extends TableLayout { private String nameText; - protected ScaleUser scaleUser; + private boolean editMode; public MeasurementView(Context context, String text, Drawable icon) { super(context); initView(context); + editMode = false; nameText = text; nameView.setText(text); iconView.setImageDrawable(icon); @@ -69,17 +74,17 @@ abstract class MeasurementView extends TableLayout { addView(measurementRow); addView(evaluatorRow); - iconView.getLayoutParams().height = 80; + iconView.getLayoutParams().height = pxImageDp(30); iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - nameView.setTextSize(20); + nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); nameView.setTextColor(Color.BLACK); nameView.setLines(2); - nameView.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 0.92f)); + nameView.setLayoutParams(new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0.90f)); - valueView.setTextSize(20); + valueView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); valueView.setTextColor(Color.BLACK); - valueView.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.MATCH_PARENT, 0.07f)); + valueView.setLayoutParams(new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 0.01f)); indicatorView.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.MATCH_PARENT, 0.01f)); indicatorView.setBackgroundColor(Color.GRAY); @@ -100,14 +105,44 @@ abstract class MeasurementView extends TableLayout { abstract void updateValue(ScaleData updateData); abstract void updateDiff(ScaleData updateData, ScaleData lastData); abstract void updatePreferences(SharedPreferences preferences); - abstract String getFormat(); + abstract String getUnit(); abstract EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value); abstract float getMinValue(); abstract float getMaxValue(); + abstract int getInputType(); + + public float getValue() { + if (valueView.getText().length() == 0) { + return -1; + } + + return Float.valueOf(valueView.getText().toString()); + } + + public void setEditMode(boolean mode) { + editMode = mode; + + if (editMode) { + valueView = new EditText(getContext()); + valueView.setInputType(getInputType()); + valueView.setHint(getContext().getResources().getString(R.string.info_enter_value_unit) + " " + getUnit()); + measurementRow.addView(valueView); + indicatorView.setVisibility(View.GONE); + } + } + + protected boolean isEditModeOn() { + return editMode; + } + protected void setValueOnView(float value) { - valueView.setText(String.format(getFormat(), value)); - evaluate(value); + if (isEditModeOn()) { + valueView.setText(String.valueOf(value)); + } else { + valueView.setText(String.format("%.2f ", value) + getUnit()); + evaluate(value); + } } protected void setDiffOnView(float value, float lastValue) { @@ -127,7 +162,7 @@ abstract class MeasurementView extends TableLayout { "
" + symbol + " " + - String.format(getFormat(), diffValue) + + String.format("%.2f ", diffValue) + getUnit() + "" ) ); @@ -141,8 +176,30 @@ abstract class MeasurementView extends TableLayout { } } + private int pxImageDp(float dp) { + return (int)(dp * getResources().getDisplayMetrics().density + 0.5f); + } + + public boolean validateInput() { + if (measurementRow.getVisibility() == View.VISIBLE) { + if (valueView.getText().toString().length() == 0) { + valueView.setError(getResources().getString(R.string.error_value_required)); + return false; + } + + float value = Float.valueOf(valueView.getText().toString()); + + if (!(value >= 0 && value <= getMaxValue())) { + valueView.setError(getResources().getString(R.string.error_value_range)); + return false; + } + } + + return true; + } + private void evaluate(float value) { - EvaluationSheet evalSheet = new EvaluationSheet(scaleUser); + EvaluationSheet evalSheet = new EvaluationSheet(getScaleUser()); EvaluationResult evalResult = evaluateSheet(evalSheet, value); evaluatorView.setMinMaxValue(getMinValue(), getMaxValue()); @@ -166,13 +223,19 @@ abstract class MeasurementView extends TableLayout { } } - public void updateScaleUser(ScaleUser user) { - scaleUser = user; + protected ScaleUser getScaleUser() { + OpenScale openScale = OpenScale.getInstance(getContext()); + + return openScale.getSelectedScaleUser(); } private class onClickListenerEvaluation implements View.OnClickListener { @Override public void onClick(View v) { + if (isEditModeOn()) { + return; + } + if (evaluatorRow.getVisibility() == View.VISIBLE) { evaluatorRow.setVisibility(View.GONE); } else { @@ -199,8 +262,8 @@ class WeightMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f " + ScaleUser.UNIT_STRING[scaleUser.scale_unit]; + String getUnit() { + return ScaleUser.UNIT_STRING[getScaleUser().scale_unit]; } @Override @@ -222,6 +285,11 @@ class WeightMeasurementView extends MeasurementView { float getMaxValue() { return 300; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class BMIMeasurementView extends MeasurementView { @@ -233,19 +301,19 @@ class BMIMeasurementView extends MeasurementView { @Override void updateValue(ScaleData updateData) { ScaleCalculator updateCalculator = new ScaleCalculator(updateData); - setValueOnView(updateCalculator.getBMI(scaleUser.body_height)); + setValueOnView(updateCalculator.getBMI(getScaleUser().body_height)); } @Override void updateDiff(ScaleData updateData, ScaleData lastData) { ScaleCalculator updateCalculator = new ScaleCalculator(updateData); ScaleCalculator lastCalculator = new ScaleCalculator(lastData); - setDiffOnView(updateCalculator.getBMI(scaleUser.body_height), lastCalculator.getBMI(scaleUser.body_height)); + setDiffOnView(updateCalculator.getBMI(getScaleUser().body_height), lastCalculator.getBMI(getScaleUser().body_height)); } @Override - String getFormat() { - return "%.1f"; + String getUnit() { + return ""; } @Override @@ -263,6 +331,11 @@ class BMIMeasurementView extends MeasurementView { return 50; } + @Override + int getInputType() { + return 0; + } + @Override void updatePreferences(SharedPreferences preferences) { setVisible(preferences.getBoolean("weightEnable", true)); @@ -286,8 +359,8 @@ class WaterMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f %%"; + String getUnit() { + return "%"; } @Override @@ -309,6 +382,11 @@ class WaterMeasurementView extends MeasurementView { float getMaxValue() { return 80; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class MuscleMeasurementView extends MeasurementView { @@ -328,8 +406,8 @@ class MuscleMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f %%"; + String getUnit() { + return "%"; } @Override @@ -351,6 +429,11 @@ class MuscleMeasurementView extends MeasurementView { float getMaxValue() { return 80; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class FatMeasurementView extends MeasurementView { @@ -370,8 +453,8 @@ class FatMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f %%"; + String getUnit() { + return "%"; } @Override @@ -393,6 +476,11 @@ class FatMeasurementView extends MeasurementView { float getMaxValue() { return 40; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class WaistMeasurementView extends MeasurementView { @@ -412,8 +500,8 @@ class WaistMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f cm"; + String getUnit() { + return "cm"; } @Override @@ -435,6 +523,11 @@ class WaistMeasurementView extends MeasurementView { float getMaxValue() { return 200; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class WHtRMeasurementView extends MeasurementView { @@ -446,19 +539,19 @@ class WHtRMeasurementView extends MeasurementView { @Override void updateValue(ScaleData updateData) { ScaleCalculator updateCalculator = new ScaleCalculator(updateData); - setValueOnView(updateCalculator.getWHtR(scaleUser.body_height)); + setValueOnView(updateCalculator.getWHtR(getScaleUser().body_height)); } @Override void updateDiff(ScaleData updateData, ScaleData lastData) { ScaleCalculator updateCalculator = new ScaleCalculator(updateData); ScaleCalculator lastCalculator = new ScaleCalculator(lastData); - setDiffOnView(updateCalculator.getWHtR(scaleUser.body_height), lastCalculator.getWHtR(scaleUser.body_height)); + setDiffOnView(updateCalculator.getWHtR(getScaleUser().body_height), lastCalculator.getWHtR(getScaleUser().body_height)); } @Override - String getFormat() { - return "%.2f"; + String getUnit() { + return ""; } @Override @@ -480,6 +573,11 @@ class WHtRMeasurementView extends MeasurementView { float getMaxValue() { return 1; } + + @Override + int getInputType() { + return 0; + } } class HipMeasurementView extends MeasurementView { @@ -499,8 +597,8 @@ class HipMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.1f cm"; + String getUnit() { + return "cm"; } @Override @@ -522,6 +620,11 @@ class HipMeasurementView extends MeasurementView { float getMaxValue() { return 200; } + + @Override + int getInputType() { + return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED; + } } class WHRMeasurementView extends MeasurementView { @@ -544,8 +647,8 @@ class WHRMeasurementView extends MeasurementView { } @Override - String getFormat() { - return "%.2f"; + String getUnit() { + return ""; } @Override @@ -568,4 +671,9 @@ class WHRMeasurementView extends MeasurementView { return 1.5f; } + @Override + int getInputType() { + return 0; + } + } 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 30529155..fad1442c 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 @@ -226,10 +226,6 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener userSelectedData = null; - for (MeasurementView measuremt : overviewMeasurements) { - measuremt.updateScaleUser(currentScaleUser); - } - spinUserAdapter.clear(); ArrayList scaleUserList = OpenScale.getInstance(overviewView.getContext()).getScaleUserList(); diff --git a/android_app/app/src/main/res/layout-large/fragment_overview.xml b/android_app/app/src/main/res/layout-large/fragment_overview.xml index 90ca9981..f147421d 100644 --- a/android_app/app/src/main/res/layout-large/fragment_overview.xml +++ b/android_app/app/src/main/res/layout-large/fragment_overview.xml @@ -87,8 +87,6 @@ diff --git a/android_app/app/src/main/res/layout/activity_dataentry.xml b/android_app/app/src/main/res/layout/activity_dataentry.xml index ffb36a67..6f99b305 100644 --- a/android_app/app/src/main/res/layout/activity_dataentry.xml +++ b/android_app/app/src/main/res/layout/activity_dataentry.xml @@ -1,13 +1,13 @@ @@ -46,13 +46,12 @@ + android:layout_width="match_parent" + android:layout_height="wrap_content" > @@ -60,301 +59,99 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" - android:stretchColumns="2" > + android:id="@+id/tableLayoutDataEntry"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:id="@+id/tableRowComment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:weightSum="1.0"> + android:src="@drawable/comment" + android:layout_gravity="center" /> + android:text="@string/label_comment" + android:textSize="15sp" + android:layout_weight="0.9"/> + android:textSize="15sp" + android:layout_weight="0.01" + android:inputType="text|textImeMultiLine|textMultiLine|textAutoComplete|textAutoCorrect" + android:hint="@string/info_enter_comment" /> + android:id="@+id/tableRowDate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:weightSum="1.0"> + android:src="@drawable/lastmonth" + android:layout_gravity="center" /> + android:text="@string/label_date" + android:textSize="15sp" + android:layout_weight="0.9"/> + android:layout_weight="0.01" + android:textSize="15sp" + android:inputType="none"/> + + + + + + android:layout_height="wrap_content" + android:textSize="15sp" + android:layout_weight="0.9" + android:text="@string/label_time" /> - - - - - - - - + android:layout_height="wrap_content" + android:layout_weight="0.01" + android:textSize="15sp" + android:inputType="none" /> - + - - - - - - - - - - - - - - - - - + +