mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-09 18:26:38 +02:00
refactored data entry activity to dynamically set measurements
This commit is contained in:
@@ -29,7 +29,7 @@ import android.view.Window;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.DatePicker;
|
import android.widget.DatePicker;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TableRow;
|
import android.widget.TableLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.TimePicker;
|
import android.widget.TimePicker;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
@@ -37,12 +37,12 @@ import android.widget.Toast;
|
|||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
import com.health.openscale.core.ScaleData;
|
import com.health.openscale.core.ScaleData;
|
||||||
import com.health.openscale.core.ScaleUser;
|
|
||||||
|
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.ListIterator;
|
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 ADD_DATA_REQUEST = 0;
|
||||||
public static final int EDIT_DATA_REQUEST = 1;
|
public static final int EDIT_DATA_REQUEST = 1;
|
||||||
|
|
||||||
private TextView txtDataNr;
|
private ArrayList<MeasurementView> dataEntryMeasurements;
|
||||||
private EditText txtWeight;
|
private TableLayout tableLayoutDataEntry;
|
||||||
private EditText txtFat;
|
|
||||||
private EditText txtWater;
|
private WeightMeasurementView weightMeasurement;
|
||||||
private EditText txtMuscle;
|
private WaterMeasurementView waterMeasurement;
|
||||||
private EditText txtWaist;
|
private MuscleMeasurementView muscleMeasurement;
|
||||||
private EditText txtHip;
|
private FatMeasurementView fatMeasurement;
|
||||||
private EditText txtDate;
|
private WaistMeasurementView waistMeasurement;
|
||||||
private EditText txtTime;
|
private HipMeasurementView hipMeasurement;
|
||||||
|
|
||||||
|
private EditText txtDate;
|
||||||
|
private EditText txtTime;
|
||||||
private EditText txtComment;
|
private EditText txtComment;
|
||||||
|
|
||||||
|
private TextView txtDataNr;
|
||||||
private Button btnAdd;
|
private Button btnAdd;
|
||||||
private Button btnOk;
|
private Button btnOk;
|
||||||
private Button btnCancel;
|
private Button btnCancel;
|
||||||
@@ -85,18 +89,35 @@ public class DataEntryActivity extends Activity {
|
|||||||
|
|
||||||
context = this;
|
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);
|
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);
|
txtDate = (EditText) findViewById(R.id.txtDate);
|
||||||
txtTime = (EditText) findViewById(R.id.txtTime);
|
txtTime = (EditText) findViewById(R.id.txtTime);
|
||||||
txtComment = (EditText) findViewById(R.id.txtComment);
|
txtComment = (EditText) findViewById(R.id.txtComment);
|
||||||
|
|
||||||
btnAdd = (Button) findViewById(R.id.btnAdd);
|
btnAdd = (Button) findViewById(R.id.btnAdd);
|
||||||
btnOk = (Button) findViewById(R.id.btnOk);
|
btnOk = (Button) findViewById(R.id.btnOk);
|
||||||
btnCancel = (Button) findViewById(R.id.btnCancel);
|
btnCancel = (Button) findViewById(R.id.btnCancel);
|
||||||
@@ -117,33 +138,13 @@ public class DataEntryActivity extends Activity {
|
|||||||
updateOnView();
|
updateOnView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateOnView()
|
private void updateOnView()
|
||||||
{
|
{
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
|
||||||
if(!prefs.getBoolean("fatEnable", true)) {
|
for (MeasurementView measuremt : dataEntryMeasurements) {
|
||||||
TableRow row = (TableRow)findViewById(R.id.tableRowFat);
|
measuremt.updatePreferences(prefs);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getIntent().getExtras().getInt("mode") == EDIT_DATA_REQUEST) {
|
if (getIntent().getExtras().getInt("mode") == EDIT_DATA_REQUEST) {
|
||||||
@@ -171,13 +172,10 @@ public class DataEntryActivity extends Activity {
|
|||||||
ScaleData editScaleData = openScale.getScaleData(id);
|
ScaleData editScaleData = openScale.getScaleData(id);
|
||||||
|
|
||||||
txtDataNr.setText(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT).format(editScaleData.date_time));
|
txtDataNr.setText(DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT).format(editScaleData.date_time));
|
||||||
txtWeight.setText(editScaleData.weight+"");
|
|
||||||
txtFat.setText(editScaleData.fat+"");
|
for (MeasurementView measuremt : dataEntryMeasurements) {
|
||||||
txtWater.setText(editScaleData.water+"");
|
measuremt.updateValue(editScaleData);
|
||||||
txtMuscle.setText(editScaleData.muscle+"");
|
}
|
||||||
txtWaist.setText(editScaleData.waist+"");
|
|
||||||
txtHip.setText(editScaleData.hip+"");
|
|
||||||
txtComment.setText(editScaleData.comment);
|
|
||||||
|
|
||||||
txtDate.setText(dateFormat.format(editScaleData.date_time));
|
txtDate.setText(dateFormat.format(editScaleData.date_time));
|
||||||
txtTime.setText(timeFormat.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);
|
ScaleData lastScaleData = OpenScale.getInstance(this).getScaleDataList().get(0);
|
||||||
|
|
||||||
txtFat.setText(Float.toString(lastScaleData.fat));
|
// show as default last scale data
|
||||||
txtWater.setText(Float.toString(lastScaleData.water));
|
for (MeasurementView measuremt : dataEntryMeasurements) {
|
||||||
txtMuscle.setText(Float.toString(lastScaleData.muscle));
|
measuremt.updateValue(lastScaleData);
|
||||||
txtWaist.setText(Float.toString(lastScaleData.waist));
|
}
|
||||||
txtHip.setText(Float.toString(lastScaleData.hip));
|
|
||||||
} else {
|
} else {
|
||||||
txtFat.setText(Float.toString(0.0f));
|
// show default values
|
||||||
txtWater.setText(Float.toString(0.0f));
|
for (MeasurementView measuremt : dataEntryMeasurements) {
|
||||||
txtMuscle.setText(Float.toString(0.0f));
|
measuremt.updateValue(new ScaleData());
|
||||||
txtWaist.setText(Float.toString(0.0f));
|
}
|
||||||
txtHip.setText(Float.toString(0.0f));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
txtDate.setText(dateFormat.format(new Date()));
|
txtDate.setText(dateFormat.format(new Date()));
|
||||||
txtTime.setText(timeFormat.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);
|
for (MeasurementView measuremt : dataEntryMeasurements) {
|
||||||
|
if (!measuremt.validateInput()) {
|
||||||
if (prefs.getBoolean("weightEnable", true)) {
|
isValidate = false;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefs.getBoolean("fatEnable", true)) {
|
return isValidate;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveScaleData() {
|
private void saveScaleData() {
|
||||||
if (validateInput()) {
|
if (validateAllInput()) {
|
||||||
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 comment = txtComment.getText().toString();
|
||||||
|
|
||||||
String date = txtDate.getText().toString();
|
String date = txtDate.getText().toString();
|
||||||
@@ -311,7 +231,15 @@ public class DataEntryActivity extends Activity {
|
|||||||
|
|
||||||
OpenScale openScale = OpenScale.getInstance(context);
|
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() {
|
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) {
|
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() {
|
private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
|
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 {
|
private class onClickListenerAdd implements View.OnClickListener {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (validateInput())
|
if (validateAllInput())
|
||||||
{
|
{
|
||||||
OpenScale openScale = OpenScale.getInstance(context);
|
OpenScale openScale = OpenScale.getInstance(context);
|
||||||
|
|
||||||
@@ -401,18 +329,20 @@ public class DataEntryActivity extends Activity {
|
|||||||
|
|
||||||
infoDialog.show();
|
infoDialog.show();
|
||||||
} else {
|
} 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 comment = txtComment.getText().toString();
|
||||||
|
|
||||||
String date = txtDate.getText().toString();
|
String date = txtDate.getText().toString();
|
||||||
String time = txtTime.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();
|
finish();
|
||||||
}
|
}
|
||||||
@@ -423,7 +353,7 @@ public class DataEntryActivity extends Activity {
|
|||||||
private class onClickListenerOk implements View.OnClickListener {
|
private class onClickListenerOk implements View.OnClickListener {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (validateInput()) {
|
if (validateAllInput()) {
|
||||||
saveScaleData();
|
saveScaleData();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,10 @@ import android.graphics.Color;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
|
import android.text.InputType;
|
||||||
|
import android.util.TypedValue;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Space;
|
import android.widget.Space;
|
||||||
import android.widget.TableLayout;
|
import android.widget.TableLayout;
|
||||||
@@ -16,6 +19,7 @@ import android.widget.TextView;
|
|||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
import com.health.openscale.core.EvaluationResult;
|
import com.health.openscale.core.EvaluationResult;
|
||||||
import com.health.openscale.core.EvaluationSheet;
|
import com.health.openscale.core.EvaluationSheet;
|
||||||
|
import com.health.openscale.core.OpenScale;
|
||||||
import com.health.openscale.core.ScaleCalculator;
|
import com.health.openscale.core.ScaleCalculator;
|
||||||
import com.health.openscale.core.ScaleData;
|
import com.health.openscale.core.ScaleData;
|
||||||
import com.health.openscale.core.ScaleUser;
|
import com.health.openscale.core.ScaleUser;
|
||||||
@@ -37,12 +41,13 @@ abstract class MeasurementView extends TableLayout {
|
|||||||
|
|
||||||
private String nameText;
|
private String nameText;
|
||||||
|
|
||||||
protected ScaleUser scaleUser;
|
private boolean editMode;
|
||||||
|
|
||||||
public MeasurementView(Context context, String text, Drawable icon) {
|
public MeasurementView(Context context, String text, Drawable icon) {
|
||||||
super(context);
|
super(context);
|
||||||
initView(context);
|
initView(context);
|
||||||
|
|
||||||
|
editMode = false;
|
||||||
nameText = text;
|
nameText = text;
|
||||||
nameView.setText(text);
|
nameView.setText(text);
|
||||||
iconView.setImageDrawable(icon);
|
iconView.setImageDrawable(icon);
|
||||||
@@ -69,17 +74,17 @@ abstract class MeasurementView extends TableLayout {
|
|||||||
addView(measurementRow);
|
addView(measurementRow);
|
||||||
addView(evaluatorRow);
|
addView(evaluatorRow);
|
||||||
|
|
||||||
iconView.getLayoutParams().height = 80;
|
iconView.getLayoutParams().height = pxImageDp(30);
|
||||||
iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
|
iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
|
||||||
|
|
||||||
nameView.setTextSize(20);
|
nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
|
||||||
nameView.setTextColor(Color.BLACK);
|
nameView.setTextColor(Color.BLACK);
|
||||||
nameView.setLines(2);
|
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.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.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.MATCH_PARENT, 0.01f));
|
||||||
indicatorView.setBackgroundColor(Color.GRAY);
|
indicatorView.setBackgroundColor(Color.GRAY);
|
||||||
@@ -100,14 +105,44 @@ abstract class MeasurementView extends TableLayout {
|
|||||||
abstract void updateValue(ScaleData updateData);
|
abstract void updateValue(ScaleData updateData);
|
||||||
abstract void updateDiff(ScaleData updateData, ScaleData lastData);
|
abstract void updateDiff(ScaleData updateData, ScaleData lastData);
|
||||||
abstract void updatePreferences(SharedPreferences preferences);
|
abstract void updatePreferences(SharedPreferences preferences);
|
||||||
abstract String getFormat();
|
abstract String getUnit();
|
||||||
abstract EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value);
|
abstract EvaluationResult evaluateSheet(EvaluationSheet evalSheet, float value);
|
||||||
abstract float getMinValue();
|
abstract float getMinValue();
|
||||||
abstract float getMaxValue();
|
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) {
|
protected void setValueOnView(float value) {
|
||||||
valueView.setText(String.format(getFormat(), value));
|
if (isEditModeOn()) {
|
||||||
evaluate(value);
|
valueView.setText(String.valueOf(value));
|
||||||
|
} else {
|
||||||
|
valueView.setText(String.format("%.2f ", value) + getUnit());
|
||||||
|
evaluate(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setDiffOnView(float value, float lastValue) {
|
protected void setDiffOnView(float value, float lastValue) {
|
||||||
@@ -127,7 +162,7 @@ abstract class MeasurementView extends TableLayout {
|
|||||||
" <br> <font color='grey'>" +
|
" <br> <font color='grey'>" +
|
||||||
symbol +
|
symbol +
|
||||||
"<small> " +
|
"<small> " +
|
||||||
String.format(getFormat(), diffValue) +
|
String.format("%.2f ", diffValue) + getUnit() +
|
||||||
"</small></font>"
|
"</small></font>"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -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) {
|
private void evaluate(float value) {
|
||||||
EvaluationSheet evalSheet = new EvaluationSheet(scaleUser);
|
EvaluationSheet evalSheet = new EvaluationSheet(getScaleUser());
|
||||||
EvaluationResult evalResult = evaluateSheet(evalSheet, value);
|
EvaluationResult evalResult = evaluateSheet(evalSheet, value);
|
||||||
|
|
||||||
evaluatorView.setMinMaxValue(getMinValue(), getMaxValue());
|
evaluatorView.setMinMaxValue(getMinValue(), getMaxValue());
|
||||||
@@ -166,13 +223,19 @@ abstract class MeasurementView extends TableLayout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateScaleUser(ScaleUser user) {
|
protected ScaleUser getScaleUser() {
|
||||||
scaleUser = user;
|
OpenScale openScale = OpenScale.getInstance(getContext());
|
||||||
|
|
||||||
|
return openScale.getSelectedScaleUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
private class onClickListenerEvaluation implements View.OnClickListener {
|
private class onClickListenerEvaluation implements View.OnClickListener {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
if (isEditModeOn()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (evaluatorRow.getVisibility() == View.VISIBLE) {
|
if (evaluatorRow.getVisibility() == View.VISIBLE) {
|
||||||
evaluatorRow.setVisibility(View.GONE);
|
evaluatorRow.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
@@ -199,8 +262,8 @@ class WeightMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f " + ScaleUser.UNIT_STRING[scaleUser.scale_unit];
|
return ScaleUser.UNIT_STRING[getScaleUser().scale_unit];
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -222,6 +285,11 @@ class WeightMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 300;
|
return 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class BMIMeasurementView extends MeasurementView {
|
class BMIMeasurementView extends MeasurementView {
|
||||||
@@ -233,19 +301,19 @@ class BMIMeasurementView extends MeasurementView {
|
|||||||
@Override
|
@Override
|
||||||
void updateValue(ScaleData updateData) {
|
void updateValue(ScaleData updateData) {
|
||||||
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
||||||
setValueOnView(updateCalculator.getBMI(scaleUser.body_height));
|
setValueOnView(updateCalculator.getBMI(getScaleUser().body_height));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void updateDiff(ScaleData updateData, ScaleData lastData) {
|
void updateDiff(ScaleData updateData, ScaleData lastData) {
|
||||||
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
||||||
ScaleCalculator lastCalculator = new ScaleCalculator(lastData);
|
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
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -263,6 +331,11 @@ class BMIMeasurementView extends MeasurementView {
|
|||||||
return 50;
|
return 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void updatePreferences(SharedPreferences preferences) {
|
void updatePreferences(SharedPreferences preferences) {
|
||||||
setVisible(preferences.getBoolean("weightEnable", true));
|
setVisible(preferences.getBoolean("weightEnable", true));
|
||||||
@@ -286,8 +359,8 @@ class WaterMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f %%";
|
return "%";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -309,6 +382,11 @@ class WaterMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 80;
|
return 80;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MuscleMeasurementView extends MeasurementView {
|
class MuscleMeasurementView extends MeasurementView {
|
||||||
@@ -328,8 +406,8 @@ class MuscleMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f %%";
|
return "%";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -351,6 +429,11 @@ class MuscleMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 80;
|
return 80;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FatMeasurementView extends MeasurementView {
|
class FatMeasurementView extends MeasurementView {
|
||||||
@@ -370,8 +453,8 @@ class FatMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f %%";
|
return "%";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -393,6 +476,11 @@ class FatMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 40;
|
return 40;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WaistMeasurementView extends MeasurementView {
|
class WaistMeasurementView extends MeasurementView {
|
||||||
@@ -412,8 +500,8 @@ class WaistMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f cm";
|
return "cm";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -435,6 +523,11 @@ class WaistMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WHtRMeasurementView extends MeasurementView {
|
class WHtRMeasurementView extends MeasurementView {
|
||||||
@@ -446,19 +539,19 @@ class WHtRMeasurementView extends MeasurementView {
|
|||||||
@Override
|
@Override
|
||||||
void updateValue(ScaleData updateData) {
|
void updateValue(ScaleData updateData) {
|
||||||
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
||||||
setValueOnView(updateCalculator.getWHtR(scaleUser.body_height));
|
setValueOnView(updateCalculator.getWHtR(getScaleUser().body_height));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void updateDiff(ScaleData updateData, ScaleData lastData) {
|
void updateDiff(ScaleData updateData, ScaleData lastData) {
|
||||||
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
ScaleCalculator updateCalculator = new ScaleCalculator(updateData);
|
||||||
ScaleCalculator lastCalculator = new ScaleCalculator(lastData);
|
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
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.2f";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -480,6 +573,11 @@ class WHtRMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class HipMeasurementView extends MeasurementView {
|
class HipMeasurementView extends MeasurementView {
|
||||||
@@ -499,8 +597,8 @@ class HipMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.1f cm";
|
return "cm";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -522,6 +620,11 @@ class HipMeasurementView extends MeasurementView {
|
|||||||
float getMaxValue() {
|
float getMaxValue() {
|
||||||
return 200;
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WHRMeasurementView extends MeasurementView {
|
class WHRMeasurementView extends MeasurementView {
|
||||||
@@ -544,8 +647,8 @@ class WHRMeasurementView extends MeasurementView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
String getFormat() {
|
String getUnit() {
|
||||||
return "%.2f";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -568,4 +671,9 @@ class WHRMeasurementView extends MeasurementView {
|
|||||||
return 1.5f;
|
return 1.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getInputType() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -226,10 +226,6 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
|
|||||||
|
|
||||||
userSelectedData = null;
|
userSelectedData = null;
|
||||||
|
|
||||||
for (MeasurementView measuremt : overviewMeasurements) {
|
|
||||||
measuremt.updateScaleUser(currentScaleUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
spinUserAdapter.clear();
|
spinUserAdapter.clear();
|
||||||
ArrayList<ScaleUser> scaleUserList = OpenScale.getInstance(overviewView.getContext()).getScaleUserList();
|
ArrayList<ScaleUser> scaleUserList = OpenScale.getInstance(overviewView.getContext()).getScaleUserList();
|
||||||
|
|
||||||
|
@@ -87,8 +87,6 @@
|
|||||||
<TableLayout
|
<TableLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="fill_parent"
|
||||||
android:layout_weight="90"
|
|
||||||
android:stretchColumns="1"
|
|
||||||
android:id="@+id/tableLayoutMeasurements">
|
android:id="@+id/tableLayoutMeasurements">
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="fill_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="5dp" >
|
android:padding="5dp" >
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="5dp"
|
||||||
android:gravity="center">
|
android:gravity="center">
|
||||||
@@ -46,13 +46,12 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" >
|
||||||
android:id="@+id/scrollView3" >
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="5dp" >
|
android:padding="5dp" >
|
||||||
|
|
||||||
@@ -60,301 +59,99 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="5dp"
|
android:padding="5dp"
|
||||||
android:stretchColumns="2" >
|
android:id="@+id/tableLayoutDataEntry">
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowWeight"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView16"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/weight"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/textView1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_weight"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtWeight"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:hint="@string/info_enter_value_unit"
|
|
||||||
android:inputType="numberDecimal|numberSigned"
|
|
||||||
android:layout_column="2">
|
|
||||||
|
|
||||||
<requestFocus />
|
|
||||||
</EditText>
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowFat"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView17"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/fat"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/txtAvgWeight"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_fat"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtFat"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:hint="@string/info_enter_value_percent"
|
|
||||||
android:inputType="numberDecimal|numberSigned"
|
|
||||||
android:layout_column="2" />
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowWater"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView18"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/water"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/textView3"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_water"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtWater"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:hint="@string/info_enter_value_percent"
|
|
||||||
android:inputType="numberDecimal|numberSigned"
|
|
||||||
android:layout_column="2" />
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowMuscle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView21"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/muscle"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/txtAvgFat"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_muscle"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtMuscle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:hint="@string/info_enter_value_percent"
|
|
||||||
android:inputType="numberDecimal|numberSigned"
|
|
||||||
android:layout_column="2" />
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableRowWaist"
|
android:id="@+id/tableRowComment"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content"
|
||||||
|
android:weightSum="1.0">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:id="@+id/imageView10"
|
android:src="@drawable/comment"
|
||||||
android:layout_column="0"
|
android:layout_gravity="center" />
|
||||||
android:src="@drawable/waist"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_waist"
|
android:text="@string/label_comment"
|
||||||
android:layout_column="1" />
|
android:textSize="15sp"
|
||||||
|
android:layout_weight="0.9"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtWaist"
|
android:id="@+id/txtComment"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:textSize="15sp"
|
||||||
android:hint="@string/info_enter_value_cm"
|
android:layout_weight="0.01"
|
||||||
android:inputType="numberDecimal|numberSigned"
|
android:inputType="text|textImeMultiLine|textMultiLine|textAutoComplete|textAutoCorrect"
|
||||||
android:layout_column="2" />
|
android:hint="@string/info_enter_comment" />
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableRowHip"
|
android:id="@+id/tableRowDate"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content"
|
||||||
|
android:weightSum="1.0">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
android:id="@+id/imageView12"
|
android:src="@drawable/lastmonth"
|
||||||
android:layout_column="0"
|
android:layout_gravity="center" />
|
||||||
android:src="@drawable/hip"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView2"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_hip"
|
android:text="@string/label_date"
|
||||||
android:layout_column="1" />
|
android:textSize="15sp"
|
||||||
|
android:layout_weight="0.9"/>
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtHip"
|
android:id="@+id/txtDate"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:layout_weight="0.01"
|
||||||
android:hint="@string/info_enter_value_cm"
|
android:textSize="15sp"
|
||||||
android:inputType="numberDecimal|numberSigned"
|
android:inputType="none"/>
|
||||||
android:layout_column="2" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableRowComment"
|
android:id="@+id/tableRowTime"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:src="@drawable/daysleft"
|
||||||
|
android:layout_gravity="center" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/txtAvgWater"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:layout_weight="0.9"
|
||||||
|
android:text="@string/label_time" />
|
||||||
|
|
||||||
<ImageView
|
<EditText
|
||||||
android:layout_width="30dp"
|
android:id="@+id/txtTime"
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView22"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/comment"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/txtView22"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_comment"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtComment"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_column="2"
|
|
||||||
android:inputType="text|textImeMultiLine|textMultiLine|textAutoComplete|textAutoCorrect"
|
|
||||||
android:hint="@string/info_enter_comment" />
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowDate"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.01"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:inputType="none" />
|
||||||
|
|
||||||
<ImageView
|
</TableRow>
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView19"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/lastmonth"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
</TableLayout>
|
||||||
android:id="@+id/textView5"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_date"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtDate"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="5"
|
|
||||||
android:ems="10"
|
|
||||||
android:inputType="none"
|
|
||||||
android:layout_column="2" />
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
<TableRow
|
|
||||||
android:id="@+id/tableRowTime"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:id="@+id/imageView20"
|
|
||||||
android:layout_column="0"
|
|
||||||
android:src="@drawable/daysleft"
|
|
||||||
android:layout_gravity="center"
|
|
||||||
android:layout_marginRight="2dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/txtAvgWater"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/label_time"
|
|
||||||
android:layout_column="1" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/txtTime"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="5"
|
|
||||||
android:ems="10"
|
|
||||||
android:layout_column="2"
|
|
||||||
android:inputType="none" />
|
|
||||||
|
|
||||||
</TableRow>
|
|
||||||
|
|
||||||
</TableLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnCancel"
|
android:id="@+id/btnCancel"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -397,7 +194,7 @@
|
|||||||
android:background="@drawable/flat_selector"
|
android:background="@drawable/flat_selector"
|
||||||
android:text="@string/label_ok" />
|
android:text="@string/label_ok" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@@ -79,7 +79,6 @@
|
|||||||
<TableLayout
|
<TableLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="fill_parent"
|
||||||
android:stretchColumns="1"
|
|
||||||
android:id="@+id/tableLayoutMeasurements">
|
android:id="@+id/tableLayoutMeasurements">
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
|
||||||
|
@@ -4,15 +4,8 @@
|
|||||||
<string name="action_settings">Einstellungen</string>
|
<string name="action_settings">Einstellungen</string>
|
||||||
<string name="error_body_height_required">Fehler Körpergröße ist erforderlich</string>
|
<string name="error_body_height_required">Fehler Körpergröße ist erforderlich</string>
|
||||||
<string name="error_exporting">Fehler beim Exportieren</string>
|
<string name="error_exporting">Fehler beim Exportieren</string>
|
||||||
<string name="error_fat_value_required">Fettanteil ist erforderlich</string>
|
|
||||||
<string name="error_importing">Fehler beim Importieren</string>
|
<string name="error_importing">Fehler beim Importieren</string>
|
||||||
<string name="error_muscle_value_required">Muskelanteil ist erforderlich</string>
|
|
||||||
<string name="error_user_name_required">Fehler Benutzername ist erfoderlich</string>
|
<string name="error_user_name_required">Fehler Benutzername ist erfoderlich</string>
|
||||||
<string name="error_value_range_0_100">Der Wert muss zwischen 0 und 100 liegen</string>
|
|
||||||
<string name="error_value_range_0_300">Der Wert muss zwischen 0 und 300 liegen</string>
|
|
||||||
<string name="error_water_value_required">Wassergehalt ist erforderlich</string>
|
|
||||||
<string name="error_weight_value_required">Gewicht ist erforderlich</string>
|
|
||||||
<string name="error_waist_value_required">Bauchumfang ist erforderlich</string>
|
|
||||||
<string name="error_hip_value_required">Hüftumfang ist erforderlich</string>
|
<string name="error_hip_value_required">Hüftumfang ist erforderlich</string>
|
||||||
<string name="info_data_all_deleted">Alle Datenbank Einträge wurden gelöscht</string>
|
<string name="info_data_all_deleted">Alle Datenbank Einträge wurden gelöscht</string>
|
||||||
<string name="info_data_deleted">Datenbank Eintrag wurde gelöscht</string>
|
<string name="info_data_deleted">Datenbank Eintrag wurde gelöscht</string>
|
||||||
@@ -121,4 +114,6 @@
|
|||||||
<string name="Friday">Freitag</string>
|
<string name="Friday">Freitag</string>
|
||||||
<string name="Saturday">Samstag</string>
|
<string name="Saturday">Samstag</string>
|
||||||
<string name="Sunday">Sonntag</string>
|
<string name="Sunday">Sonntag</string>
|
||||||
|
<string name="error_value_range">Fehler beim Wertebereich</string>
|
||||||
|
<string name="error_value_required">Wert ist erforderlich</string>
|
||||||
</resources>
|
</resources>
|
@@ -49,13 +49,7 @@
|
|||||||
<string name="error_exporting">エクスポートに失敗しました</string>
|
<string name="error_exporting">エクスポートに失敗しました</string>
|
||||||
<string name="error_importing">インポートに失敗しました</string>
|
<string name="error_importing">インポートに失敗しました</string>
|
||||||
<string name="error_body_height_required">身長が必要です</string>
|
<string name="error_body_height_required">身長が必要です</string>
|
||||||
<string name="error_fat_value_required">体脂肪率が必要です</string>
|
|
||||||
<string name="error_muscle_value_required">筋肉率が必要です</string>
|
|
||||||
<string name="error_user_name_required">ユーザー名が必要です</string>
|
<string name="error_user_name_required">ユーザー名が必要です</string>
|
||||||
<string name="error_value_range_0_100">値は0から100の間でなければなりません</string>
|
|
||||||
<string name="error_value_range_0_300">値は0から300の間でなければなりません</string>
|
|
||||||
<string name="error_water_value_required">体内の水分が必要です</string>
|
|
||||||
<string name="error_weight_value_required">体重が必要です</string>
|
|
||||||
<string name="info_data_all_deleted">すべてのレコードが削除されます</string>
|
<string name="info_data_all_deleted">すべてのレコードが削除されます</string>
|
||||||
<string name="info_data_deleted">レコードが削除されます</string>
|
<string name="info_data_deleted">レコードが削除されます</string>
|
||||||
<string name="info_data_exported">レコードのエクスポート</string>
|
<string name="info_data_exported">レコードのエクスポート</string>
|
||||||
@@ -88,7 +82,6 @@
|
|||||||
<string name="info_is_not_enable">無効にします</string>
|
<string name="info_is_not_enable">無効にします</string>
|
||||||
<string name="info_is_enable">有効にします</string>
|
<string name="info_is_enable">有効にします</string>
|
||||||
<string name="error_hip_value_required">腰囲が必要です</string>
|
<string name="error_hip_value_required">腰囲が必要です</string>
|
||||||
<string name="error_waist_value_required">胴囲が必要です</string>
|
|
||||||
<string name="label_waist">胴囲</string>
|
<string name="label_waist">胴囲</string>
|
||||||
<string name="label_hip">腰囲</string>
|
<string name="label_hip">腰囲</string>
|
||||||
<string name="info_your_waist">あなたは胴囲が</string>
|
<string name="info_your_waist">あなたは胴囲が</string>
|
||||||
@@ -121,4 +114,6 @@
|
|||||||
<string name="Tuesday">火曜日</string>
|
<string name="Tuesday">火曜日</string>
|
||||||
<string name="Monday">月曜日</string>
|
<string name="Monday">月曜日</string>
|
||||||
<string name="Sunday">日曜日</string>
|
<string name="Sunday">日曜日</string>
|
||||||
|
<string name="error_value_required">値が必要です</string>
|
||||||
|
<string name="error_value_range">エラー値の範囲</string>
|
||||||
</resources>
|
</resources>
|
@@ -63,18 +63,13 @@
|
|||||||
<string name="label_export">Export</string>
|
<string name="label_export">Export</string>
|
||||||
<string name="label_delete_all">Delete all</string>
|
<string name="label_delete_all">Delete all</string>
|
||||||
|
|
||||||
<string name="error_weight_value_required">Weight is required</string>
|
<string name="error_value_required">Value is required</string>
|
||||||
<string name="error_fat_value_required">Body fat percentage is required</string>
|
<string name="error_value_range">The value is not in range</string>
|
||||||
<string name="error_water_value_required">Water percentage is required</string>
|
|
||||||
<string name="error_muscle_value_required">Muscle percentage is required</string>
|
|
||||||
<string name="error_value_range_0_300">The value must be in range from 0 to 300</string>
|
|
||||||
<string name="error_value_range_0_100">The value must be in range from 0 to 100</string>
|
|
||||||
<string name="error_exporting">Error exporting</string>
|
<string name="error_exporting">Error exporting</string>
|
||||||
<string name="error_importing">Error importing</string>
|
<string name="error_importing">Error importing</string>
|
||||||
<string name="error_user_name_required">Error user name is required</string>
|
<string name="error_user_name_required">Error user name is required</string>
|
||||||
<string name="error_body_height_required">Error body height is required</string>
|
<string name="error_body_height_required">Error body height is required</string>
|
||||||
<string name="error_goal_weight_required">Error goal weight is required</string>
|
<string name="error_goal_weight_required">Error goal weight is required</string>
|
||||||
<string name="error_waist_value_required">waist circumference is required</string>
|
|
||||||
<string name="error_hip_value_required">hip circumference is required</string>
|
<string name="error_hip_value_required">hip circumference is required</string>
|
||||||
|
|
||||||
<string name="info_data_deleted">Database entry deleted</string>
|
<string name="info_data_deleted">Database entry deleted</string>
|
||||||
|
Reference in New Issue
Block a user