diff --git a/android_app/app/src/main/AndroidManifest.xml b/android_app/app/src/main/AndroidManifest.xml
index d3e357bb..31147b3b 100644
--- a/android_app/app/src/main/AndroidManifest.xml
+++ b/android_app/app/src/main/AndroidManifest.xml
@@ -23,8 +23,8 @@
-
-
+
+
diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
index 7ae871c5..654e2606 100644
--- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
+++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
@@ -155,7 +155,7 @@ public class OpenScale {
}
public void addScaleData(int user_id, String date_time, float weight, float fat,
- float water, float muscle) {
+ float water, float muscle, String comment) {
ScaleData scaleData = new ScaleData();
try {
@@ -165,6 +165,7 @@ public class OpenScale {
scaleData.fat = fat;
scaleData.water = water;
scaleData.muscle = muscle;
+ scaleData.comment = comment;
} catch (ParseException e) {
Log.e("OpenScale", "Can't parse date time string while adding to the database");
}
@@ -174,13 +175,14 @@ public class OpenScale {
updateScaleData();
}
- public void updateScaleData(long id, float weight, float fat, float water, float muscle) {
+ public void updateScaleData(long id, float weight, float fat, float water, float muscle, String comment) {
ScaleData scaleData = new ScaleData();
scaleData.weight = weight;
scaleData.fat = fat;
scaleData.water = water;
scaleData.muscle = muscle;
+ scaleData.comment = comment;
scaleDB.updateEntry(id, scaleData);
@@ -215,6 +217,7 @@ public class OpenScale {
newScaleData.fat = Float.parseFloat(csvField[2]);
newScaleData.water = Float.parseFloat(csvField[3]);
newScaleData.muscle = Float.parseFloat(csvField[4]);
+ newScaleData.comment = csvField[5];
newScaleData.user_id = getSelectedScaleUser().id;
@@ -246,7 +249,8 @@ public class OpenScale {
csvWriter.append(Float.toString(scaleData.weight) + ",");
csvWriter.append(Float.toString(scaleData.fat) + ",");
csvWriter.append(Float.toString(scaleData.water) + ",");
- csvWriter.append(Float.toString(scaleData.muscle));
+ csvWriter.append(Float.toString(scaleData.muscle) + ",");
+ csvWriter.append(scaleData.comment);
csvWriter.append("\n");
}
diff --git a/android_app/app/src/main/java/com/health/openscale/core/ScaleData.java b/android_app/app/src/main/java/com/health/openscale/core/ScaleData.java
index 0525565c..9d7a1c6d 100644
--- a/android_app/app/src/main/java/com/health/openscale/core/ScaleData.java
+++ b/android_app/app/src/main/java/com/health/openscale/core/ScaleData.java
@@ -26,10 +26,11 @@ public class ScaleData {
public float fat;
public float water;
public float muscle;
+ public String comment;
@Override
public String toString()
{
- return "ID : " + id + " USER_ID: " + user_id + " DATE_TIME: " + date_time.toString() + " WEIGHT: " + weight + " FAT: " + fat + " WATER: " + water + " MUSCLE: " + muscle;
+ return "ID : " + id + " USER_ID: " + user_id + " DATE_TIME: " + date_time.toString() + " WEIGHT: " + weight + " FAT: " + fat + " WATER: " + water + " MUSCLE: " + muscle + " COMMENT: " + comment;
}
}
diff --git a/android_app/app/src/main/java/com/health/openscale/core/ScaleDatabase.java b/android_app/app/src/main/java/com/health/openscale/core/ScaleDatabase.java
index e1d4b4ff..c566796d 100644
--- a/android_app/app/src/main/java/com/health/openscale/core/ScaleDatabase.java
+++ b/android_app/app/src/main/java/com/health/openscale/core/ScaleDatabase.java
@@ -31,7 +31,7 @@ import java.util.Calendar;
import java.util.Locale;
public class ScaleDatabase extends SQLiteOpenHelper {
- private static final int DATABASE_VERSION = 1;
+ private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "openScaleDatabase.db";
private static final String TABLE_NAME = "scaledata";
@@ -42,6 +42,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
private static final String COLUMN_NAME_FAT = "fat";
private static final String COLUMN_NAME_WATER = "water";
private static final String COLUMN_NAME_MUSCLE = "muscle";
+ private static final String COLUMN_NAME_COMMENT = "comment";
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + TABLE_NAME + " (" +
@@ -51,7 +52,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT + " REAL," +
COLUMN_NAME_FAT + " REAL," +
COLUMN_NAME_WATER + " REAL," +
- COLUMN_NAME_MUSCLE + " REAL" +
+ COLUMN_NAME_MUSCLE + " REAL," +
+ COLUMN_NAME_COMMENT + " TEXT" +
")";
private static final String SQL_DELETE_ENTRIES =
@@ -70,8 +72,9 @@ public class ScaleDatabase extends SQLiteOpenHelper {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL(SQL_DELETE_ENTRIES);
- onCreate(db);
+ if (oldVersion == 1 && newVersion == 2) {
+ db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_COMMENT + " TEXT DEFAULT ''");
+ }
}
public void clearScaleData(int userId) {
@@ -97,6 +100,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_FAT, scaleData.fat);
values.put(COLUMN_NAME_WATER, scaleData.water);
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
+ values.put(COLUMN_NAME_COMMENT, scaleData.comment);
try
{
@@ -120,6 +124,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_FAT, scaleData.fat);
values.put(COLUMN_NAME_WATER, scaleData.water);
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
+ values.put(COLUMN_NAME_COMMENT, scaleData.comment);
db.update(TABLE_NAME, values, COLUMN_NAME_ID + "=" + id, null);
}
@@ -136,7 +141,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
- COLUMN_NAME_MUSCLE
+ COLUMN_NAME_MUSCLE,
+ COLUMN_NAME_COMMENT
};
Cursor cursorScaleDB = db.query(
@@ -159,6 +165,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
+ scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
scaleData.date_time = formatDateTime.parse(date_time);
@@ -265,7 +272,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
- COLUMN_NAME_MUSCLE
+ COLUMN_NAME_MUSCLE,
+ COLUMN_NAME_COMMENT
};
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
@@ -300,6 +308,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
+ scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
scaleData.date_time = formatDateTime.parse(date_time);
@@ -328,7 +337,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
- COLUMN_NAME_MUSCLE
+ COLUMN_NAME_MUSCLE,
+ COLUMN_NAME_COMMENT
};
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
@@ -356,8 +366,9 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
-
- scaleData.date_time = formatDateTime.parse(date_time);
+ scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
+
+ scaleData.date_time = formatDateTime.parse(date_time);
scaleDataList.add(scaleData);
diff --git a/android_app/app/src/main/java/com/health/openscale/gui/EditDataActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/EditDataActivity.java
index 86ffa533..fbdba1c2 100644
--- a/android_app/app/src/main/java/com/health/openscale/gui/EditDataActivity.java
+++ b/android_app/app/src/main/java/com/health/openscale/gui/EditDataActivity.java
@@ -34,6 +34,7 @@ public class EditDataActivity extends Activity {
private EditText txtFat;
private EditText txtWater;
private EditText txtMuscle;
+ private EditText txtComment;
private Button btnOk;
private Button btnCancel;
@@ -53,6 +54,7 @@ public class EditDataActivity extends Activity {
txtFat = (EditText) findViewById(R.id.txtFat);
txtWater = (EditText) findViewById(R.id.txtWater);
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
+ txtComment = (EditText) findViewById(R.id.txtComment);
btnOk = (Button)findViewById(R.id.btnOk);
btnCancel = (Button)findViewById(R.id.btnCancel);
@@ -70,25 +72,89 @@ public class EditDataActivity extends Activity {
txtFat.setText(editScaleData.fat+"");
txtWater.setText(editScaleData.water+"");
txtMuscle.setText(editScaleData.muscle+"");
+ txtComment.setText(editScaleData.comment);
setTitle(getResources().getString(R.string.title_edit_data_entry) + ": " + new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(editScaleData.date_time));
}
+ private boolean validateInput()
+ {
+ boolean validate = true;
+
+ if( txtWeight.getText().toString().length() == 0 )
+ {
+ txtWeight.setError(getResources().getString(R.string.error_weight_value_required));
+ validate = false;
+ } else if( !(Float.valueOf(txtWeight.getText().toString()) >= 0 && Float.valueOf(txtWeight.getText().toString()) <= 300) )
+ {
+ txtWeight.setError(getResources().getString(R.string.error_value_range_0_300));
+ validate = false;
+ }
+
+ if( txtFat.getText().toString().length() == 0 )
+ {
+ txtFat.setError(getResources().getString(R.string.error_fat_value_required));
+ validate = false;
+ } else if(!isInRange(txtFat.getText().toString()))
+ {
+ txtFat.setError(getResources().getString(R.string.error_value_range_0_100));
+ validate = false;
+ }
+
+
+ if( txtWater.getText().toString().length() == 0 )
+ {
+ txtWater.setError(getResources().getString(R.string.error_water_value_required));
+ validate = false;
+ } else if(!isInRange(txtWater.getText().toString()))
+ {
+ txtWater.setError(getResources().getString(R.string.error_value_range_0_100));
+ validate = false;
+ }
+
+ if( txtMuscle.getText().toString().length() == 0 )
+ {
+ txtMuscle.setError(getResources().getString(R.string.error_muscle_value_required));
+ validate = false;
+ } else if(!isInRange(txtMuscle.getText().toString()))
+ {
+ txtMuscle.setError(getResources().getString(R.string.error_value_range_0_100));
+ validate = false;
+ }
+
+ return validate;
+ }
+
+ private boolean isInRange(String value)
+ {
+ if (value.length() == 0)
+ return false;
+
+ float val = Float.valueOf(value);
+
+ if (val >= 0 && val <= 100)
+ return true;
+
+ return false;
+ }
private class onClickListenerOk implements View.OnClickListener {
@Override
public void onClick(View v) {
- 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());
+ 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());
+ String comment = txtComment.getText().toString();
- OpenScale openScale = OpenScale.getInstance(context);
+ OpenScale openScale = OpenScale.getInstance(context);
- openScale.updateScaleData(id, weight, fat, water, muscle);
+ openScale.updateScaleData(id, weight, fat, water, muscle, comment);
- finish();
+ finish();
+ }
}
}
diff --git a/android_app/app/src/main/java/com/health/openscale/gui/GraphFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/GraphFragment.java
index 244b26c5..8b928ef2 100644
--- a/android_app/app/src/main/java/com/health/openscale/gui/GraphFragment.java
+++ b/android_app/app/src/main/java/com/health/openscale/gui/GraphFragment.java
@@ -17,6 +17,7 @@
package com.health.openscale.gui;
import android.app.Activity;
+import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
@@ -27,12 +28,10 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-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.SimpleDateFormat;
import java.util.ArrayList;
@@ -72,9 +71,6 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
private ArrayList scaleDataList;
- private enum lines {WEIGHT, FAT, WATER, MUSCLE}
- private ArrayList activeLines;
-
public GraphFragment() {
calYears = Calendar.getInstance();
calLastSelected = Calendar.getInstance();
@@ -180,26 +176,21 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
setHasLabels(prefs.getBoolean("labelsEnable", true)).
setFormatter(new SimpleLineChartValueFormatter(1));
- activeLines = new ArrayList();
if(prefs.getBoolean("weightEnable", true)) {
lines.add(lineWeight);
- activeLines.add(GraphFragment.lines.WEIGHT);
}
if(prefs.getBoolean("fatEnable", true)) {
lines.add(lineFat);
- activeLines.add(GraphFragment.lines.FAT);
}
if(prefs.getBoolean("waterEnable", true)) {
lines.add(lineWater);
- activeLines.add(GraphFragment.lines.WATER);
}
if(prefs.getBoolean("muscleEnable", true)) {
lines.add(lineMuscle);
- activeLines.add(GraphFragment.lines.MUSCLE);
}
LineChartData lineData = new LineChartData(lines);
@@ -291,24 +282,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
@Override
public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
ScaleData scaleData = scaleDataList.get(pointIndex);
- lines selectedLine = activeLines.get(lineIndex);
- String date_time = new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(scaleData.date_time);
+ long id = scaleData.id;
- switch (selectedLine) {
- case WEIGHT:
- Toast.makeText(getActivity(), getResources().getString(R.string.info_your_weight) + " " + scaleData.weight + ScaleUser.UNIT_STRING[OpenScale.getInstance(graphView.getContext()).getSelectedScaleUser().scale_unit] + " " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
- break;
- case FAT:
- Toast.makeText(getActivity(), getResources().getString(R.string.info_your_fat) + " " + scaleData.fat + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
- break;
- case WATER:
- Toast.makeText(getActivity(), getResources().getString(R.string.info_your_water) + " " + scaleData.water + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
- break;
- case MUSCLE:
- Toast.makeText(getActivity(), getResources().getString(R.string.info_your_muscle) + " " + scaleData.muscle + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
- break;
- }
+ Intent intent = new Intent(graphView.getContext(), EditDataActivity.class);
+ intent.putExtra("id", id);
+ startActivityForResult(intent, 1);
}
@Override
diff --git a/android_app/app/src/main/java/com/health/openscale/gui/NewEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/NewEntryActivity.java
index f72588d9..bb427ddd 100644
--- a/android_app/app/src/main/java/com/health/openscale/gui/NewEntryActivity.java
+++ b/android_app/app/src/main/java/com/health/openscale/gui/NewEntryActivity.java
@@ -46,6 +46,7 @@ public class NewEntryActivity extends Activity {
private EditText txtMuscle;
private EditText txtDate;
private EditText txtTime;
+ private EditText txtComment;
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
@@ -65,6 +66,7 @@ public class NewEntryActivity extends Activity {
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
txtDate = (EditText) findViewById(R.id.txtDate);
txtTime = (EditText) findViewById(R.id.txtTime);
+ txtComment = (EditText) findViewById(R.id.txtComment);
Button btnDateSet = (Button) findViewById(R.id.btnDateSet);
Button btnTimeSet = (Button) findViewById(R.id.btnTimeSet);
@@ -192,11 +194,12 @@ public class NewEntryActivity extends Activity {
float fat = Float.valueOf(txtFat.getText().toString());
float water = Float.valueOf(txtWater.getText().toString());
float muscle = Float.valueOf(txtMuscle.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);
+ openScale.addScaleData(selectedUserId, date + " " + time, weight, fat, water, muscle, comment);
finish();
}
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 189fa596..7cdd4d0e 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
@@ -43,6 +43,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter;
+import lecho.lib.hellocharts.listener.LineChartOnValueSelectListener;
import lecho.lib.hellocharts.listener.PieChartOnValueSelectListener;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
@@ -92,11 +93,16 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
private PieChartView pieChartLast;
private LineChartView lineChartLast;
+ private enum lines {WEIGHT, FAT, WATER, MUSCLE}
+ private ArrayList activeLines;
+
private SharedPreferences prefs;
private ScaleData lastScaleData;
private ScaleUser currentScaleUser;
+ private List scaleDataLastDays;
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
@@ -136,6 +142,8 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
pieChartLast = (PieChartView) overviewView.findViewById(R.id.pieChartLast);
lineChartLast = (LineChartView) overviewView.findViewById(R.id.lineChartLast);
+ lineChartLast.setOnValueTouchListener(new LineChartTouchListener());
+
pieChartLast.setOnValueTouchListener(new PieChartLastTouchListener());
pieChartLast.setChartRotationEnabled(false);
@@ -329,9 +337,13 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
lastDate.setTime(scaleDataList.get(0).date_time);
+ scaleDataLastDays = new ArrayList();
+
for (int i=0; i();
+
if(prefs.getBoolean("weightEnable", true)) {
lines.add(lineWeight);
+ activeLines.add(OverviewFragment.lines.WEIGHT);
}
if(prefs.getBoolean("fatEnable", true)) {
lines.add(lineFat);
+ activeLines.add(OverviewFragment.lines.FAT);
}
if(prefs.getBoolean("waterEnable", true)) {
lines.add(lineWater);
+ activeLines.add(OverviewFragment.lines.WATER);
}
if(prefs.getBoolean("muscleEnable", true)) {
lines.add(lineMuscle);
+ activeLines.add(OverviewFragment.lines.MUSCLE);
}
LineChartData lineData = new LineChartData(lines);
@@ -490,4 +508,34 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
}
}
}
+
+ private class LineChartTouchListener implements LineChartOnValueSelectListener {
+ @Override
+ public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
+ ScaleData scaleData = scaleDataLastDays.get(pointIndex);
+ lines selectedLine = activeLines.get(lineIndex);
+
+ String date_time = new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(scaleData.date_time);
+
+ switch (selectedLine) {
+ case WEIGHT:
+ Toast.makeText(getActivity(), getResources().getString(R.string.info_your_weight) + " " + scaleData.weight + ScaleUser.UNIT_STRING[OpenScale.getInstance(overviewView.getContext()).getSelectedScaleUser().scale_unit] + " " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
+ break;
+ case FAT:
+ Toast.makeText(getActivity(), getResources().getString(R.string.info_your_fat) + " " + scaleData.fat + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
+ break;
+ case WATER:
+ Toast.makeText(getActivity(), getResources().getString(R.string.info_your_water) + " " + scaleData.water + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
+ break;
+ case MUSCLE:
+ Toast.makeText(getActivity(), getResources().getString(R.string.info_your_muscle) + " " + scaleData.muscle + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
+ break;
+ }
+ }
+
+ @Override
+ public void onValueDeselected() {
+
+ }
+ }
}
diff --git a/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java
index a879e819..03067666 100644
--- a/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java
+++ b/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java
@@ -84,6 +84,8 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
txtWaterTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
TextView txtMuscleTableHeader = (TextView)tableView.findViewById(R.id.txtMuscleTableHeader);
txtMuscleTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
+ TextView txtCommentTableHeader = (TextView)tableView.findViewById(R.id.txtCommentTableHeader);
+ txtCommentTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
Button btnDeleteAll = (Button)tableView.findViewById(R.id.btnDeleteAll);
btnDeleteAll.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
}
@@ -143,6 +145,12 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
muscleView.setPadding(0, 5, 5, 5);
dataRow.addView(muscleView);
+
+ TextView commentView = new TextView(tableView.getContext());
+ commentView.setText(scaleData.comment);
+ commentView.setPadding(0, 5, 5, 5);
+ dataRow.addView(commentView);
+
Button deleteButton = new Button(tableView.getContext());
deleteButton.setText("X");
deleteButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
@@ -166,6 +174,7 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
fatView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
waterView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
muscleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
+ commentView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
}
tableDataView.addView(dataRow, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
diff --git a/android_app/app/src/main/res/drawable/comment.png b/android_app/app/src/main/res/drawable/comment.png
new file mode 100644
index 00000000..0c648e3a
Binary files /dev/null and b/android_app/app/src/main/res/drawable/comment.png differ
diff --git a/android_app/app/src/main/res/layout/activity_editdata.xml b/android_app/app/src/main/res/layout/activity_editdata.xml
index faf1b06b..b97eb61f 100644
--- a/android_app/app/src/main/res/layout/activity_editdata.xml
+++ b/android_app/app/src/main/res/layout/activity_editdata.xml
@@ -9,25 +9,36 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
- android:stretchColumns="*" >
+ android:stretchColumns="2" >
-
+
+
+ android:text="@string/label_weight"
+ android:layout_column="1" />
+ android:inputType="numberDecimal|numberSigned"
+ android:layout_column="2">
@@ -39,17 +50,28 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_fat"
+ android:layout_column="1" />
+ android:inputType="numberDecimal|numberSigned"
+ android:layout_column="2" />
@@ -58,11 +80,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_water"
+ android:layout_column="1" />
+ android:inputType="numberDecimal|numberSigned"
+ android:layout_column="2" />
-
-
+
+
+ android:text="@string/label_muscle"
+ android:layout_column="1" />
-
+ android:inputType="numberDecimal|numberSigned"
+ android:layout_column="2" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:stretchColumns="2" >
+
+
+ android:text="@string/label_weight"
+ android:layout_column="1" />
+ android:inputType="numberDecimal"
+ android:layout_column="2">
@@ -40,11 +51,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_fat"
+ android:layout_column="1" />
+ android:inputType="numberDecimal"
+ android:layout_column="2" />
@@ -61,11 +83,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_water"
+ android:layout_column="1" />
+ android:inputType="numberDecimal"
+ android:layout_column="2" />
@@ -82,11 +115,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_muscle"
+ android:layout_column="1" />
+ android:inputType="numberDecimal"
+ android:layout_column="2" />
+
+
+
+
+
+
+
+
+
+
+
+ android:text="@string/label_date"
+ android:layout_column="1" />
+ android:inputType="date"
+ android:layout_column="2" />
+ android:textSize="15sp"
+ android:layout_column="3" />
@@ -132,11 +219,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
+
+
+ android:text="@string/label_time"
+ android:layout_column="1" />
+ android:inputType="time"
+ android:layout_column="2" />
+ android:textSize="15sp"
+ android:layout_column="3" />
diff --git a/android_app/app/src/main/res/layout/fragment_table.xml b/android_app/app/src/main/res/layout/fragment_table.xml
index 6349d81b..4baf0ed6 100644
--- a/android_app/app/src/main/res/layout/fragment_table.xml
+++ b/android_app/app/src/main/res/layout/fragment_table.xml
@@ -17,9 +17,9 @@
android:id="@+id/tableDataView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:shrinkColumns="*"
android:measureWithLargestChild="false"
- android:stretchColumns="1,2,3,4,5,6">
+ android:stretchColumns="1,2,3,4,5,6,7"
+ android:shrinkColumns="*">
+
+