mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-15 13:14:22 +02:00
add an optional comment field for every data entry
This commit is contained in:
@@ -23,8 +23,8 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name="com.health.openscale.gui.SettingsActivity"></activity>
|
<activity android:name="com.health.openscale.gui.SettingsActivity"></activity>
|
||||||
<activity android:name="com.health.openscale.gui.NewEntryActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_new_data_entry"></activity>
|
<activity android:name="com.health.openscale.gui.NewEntryActivity" android:theme="@android:style/Theme.Holo.Light.Dialog" android:label="@string/title_new_data_entry"></activity>
|
||||||
<activity android:name="com.health.openscale.gui.EditDataActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_edit_data_entry"></activity>
|
<activity android:name="com.health.openscale.gui.EditDataActivity" android:theme="@android:style/Theme.Holo.Light.Dialog" android:label="@string/title_edit_data_entry"></activity>
|
||||||
<activity android:name=".gui.UserSettingsActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_user"></activity>
|
<activity android:name=".gui.UserSettingsActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_user"></activity>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
@@ -155,7 +155,7 @@ public class OpenScale {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addScaleData(int user_id, String date_time, float weight, float fat,
|
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();
|
ScaleData scaleData = new ScaleData();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -165,6 +165,7 @@ public class OpenScale {
|
|||||||
scaleData.fat = fat;
|
scaleData.fat = fat;
|
||||||
scaleData.water = water;
|
scaleData.water = water;
|
||||||
scaleData.muscle = muscle;
|
scaleData.muscle = muscle;
|
||||||
|
scaleData.comment = comment;
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
Log.e("OpenScale", "Can't parse date time string while adding to the database");
|
Log.e("OpenScale", "Can't parse date time string while adding to the database");
|
||||||
}
|
}
|
||||||
@@ -174,13 +175,14 @@ public class OpenScale {
|
|||||||
updateScaleData();
|
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 scaleData = new ScaleData();
|
||||||
|
|
||||||
scaleData.weight = weight;
|
scaleData.weight = weight;
|
||||||
scaleData.fat = fat;
|
scaleData.fat = fat;
|
||||||
scaleData.water = water;
|
scaleData.water = water;
|
||||||
scaleData.muscle = muscle;
|
scaleData.muscle = muscle;
|
||||||
|
scaleData.comment = comment;
|
||||||
|
|
||||||
scaleDB.updateEntry(id, scaleData);
|
scaleDB.updateEntry(id, scaleData);
|
||||||
|
|
||||||
@@ -215,6 +217,7 @@ public class OpenScale {
|
|||||||
newScaleData.fat = Float.parseFloat(csvField[2]);
|
newScaleData.fat = Float.parseFloat(csvField[2]);
|
||||||
newScaleData.water = Float.parseFloat(csvField[3]);
|
newScaleData.water = Float.parseFloat(csvField[3]);
|
||||||
newScaleData.muscle = Float.parseFloat(csvField[4]);
|
newScaleData.muscle = Float.parseFloat(csvField[4]);
|
||||||
|
newScaleData.comment = csvField[5];
|
||||||
|
|
||||||
newScaleData.user_id = getSelectedScaleUser().id;
|
newScaleData.user_id = getSelectedScaleUser().id;
|
||||||
|
|
||||||
@@ -246,7 +249,8 @@ public class OpenScale {
|
|||||||
csvWriter.append(Float.toString(scaleData.weight) + ",");
|
csvWriter.append(Float.toString(scaleData.weight) + ",");
|
||||||
csvWriter.append(Float.toString(scaleData.fat) + ",");
|
csvWriter.append(Float.toString(scaleData.fat) + ",");
|
||||||
csvWriter.append(Float.toString(scaleData.water) + ",");
|
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");
|
csvWriter.append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,10 +26,11 @@ public class ScaleData {
|
|||||||
public float fat;
|
public float fat;
|
||||||
public float water;
|
public float water;
|
||||||
public float muscle;
|
public float muscle;
|
||||||
|
public String comment;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -31,7 +31,7 @@ import java.util.Calendar;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public class ScaleDatabase extends SQLiteOpenHelper {
|
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 DATABASE_NAME = "openScaleDatabase.db";
|
||||||
|
|
||||||
private static final String TABLE_NAME = "scaledata";
|
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_FAT = "fat";
|
||||||
private static final String COLUMN_NAME_WATER = "water";
|
private static final String COLUMN_NAME_WATER = "water";
|
||||||
private static final String COLUMN_NAME_MUSCLE = "muscle";
|
private static final String COLUMN_NAME_MUSCLE = "muscle";
|
||||||
|
private static final String COLUMN_NAME_COMMENT = "comment";
|
||||||
|
|
||||||
private static final String SQL_CREATE_ENTRIES =
|
private static final String SQL_CREATE_ENTRIES =
|
||||||
"CREATE TABLE " + TABLE_NAME + " (" +
|
"CREATE TABLE " + TABLE_NAME + " (" +
|
||||||
@@ -51,7 +52,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
COLUMN_NAME_WEIGHT + " REAL," +
|
COLUMN_NAME_WEIGHT + " REAL," +
|
||||||
COLUMN_NAME_FAT + " REAL," +
|
COLUMN_NAME_FAT + " REAL," +
|
||||||
COLUMN_NAME_WATER + " REAL," +
|
COLUMN_NAME_WATER + " REAL," +
|
||||||
COLUMN_NAME_MUSCLE + " REAL" +
|
COLUMN_NAME_MUSCLE + " REAL," +
|
||||||
|
COLUMN_NAME_COMMENT + " TEXT" +
|
||||||
")";
|
")";
|
||||||
|
|
||||||
private static final String SQL_DELETE_ENTRIES =
|
private static final String SQL_DELETE_ENTRIES =
|
||||||
@@ -70,8 +72,9 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||||
db.execSQL(SQL_DELETE_ENTRIES);
|
if (oldVersion == 1 && newVersion == 2) {
|
||||||
onCreate(db);
|
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_COMMENT + " TEXT DEFAULT ''");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clearScaleData(int userId) {
|
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_FAT, scaleData.fat);
|
||||||
values.put(COLUMN_NAME_WATER, scaleData.water);
|
values.put(COLUMN_NAME_WATER, scaleData.water);
|
||||||
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
|
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
|
||||||
|
values.put(COLUMN_NAME_COMMENT, scaleData.comment);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -120,6 +124,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
values.put(COLUMN_NAME_FAT, scaleData.fat);
|
values.put(COLUMN_NAME_FAT, scaleData.fat);
|
||||||
values.put(COLUMN_NAME_WATER, scaleData.water);
|
values.put(COLUMN_NAME_WATER, scaleData.water);
|
||||||
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
|
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
|
||||||
|
values.put(COLUMN_NAME_COMMENT, scaleData.comment);
|
||||||
|
|
||||||
db.update(TABLE_NAME, values, COLUMN_NAME_ID + "=" + id, null);
|
db.update(TABLE_NAME, values, COLUMN_NAME_ID + "=" + id, null);
|
||||||
}
|
}
|
||||||
@@ -136,7 +141,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
COLUMN_NAME_WEIGHT,
|
COLUMN_NAME_WEIGHT,
|
||||||
COLUMN_NAME_FAT,
|
COLUMN_NAME_FAT,
|
||||||
COLUMN_NAME_WATER,
|
COLUMN_NAME_WATER,
|
||||||
COLUMN_NAME_MUSCLE
|
COLUMN_NAME_MUSCLE,
|
||||||
|
COLUMN_NAME_COMMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
Cursor cursorScaleDB = db.query(
|
Cursor cursorScaleDB = db.query(
|
||||||
@@ -159,6 +165,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
|
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
|
||||||
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
||||||
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
|
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);
|
scaleData.date_time = formatDateTime.parse(date_time);
|
||||||
|
|
||||||
@@ -265,7 +272,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
COLUMN_NAME_WEIGHT,
|
COLUMN_NAME_WEIGHT,
|
||||||
COLUMN_NAME_FAT,
|
COLUMN_NAME_FAT,
|
||||||
COLUMN_NAME_WATER,
|
COLUMN_NAME_WATER,
|
||||||
COLUMN_NAME_MUSCLE
|
COLUMN_NAME_MUSCLE,
|
||||||
|
COLUMN_NAME_COMMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
|
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.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
|
||||||
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
||||||
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
|
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);
|
scaleData.date_time = formatDateTime.parse(date_time);
|
||||||
|
|
||||||
@@ -328,7 +337,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
COLUMN_NAME_WEIGHT,
|
COLUMN_NAME_WEIGHT,
|
||||||
COLUMN_NAME_FAT,
|
COLUMN_NAME_FAT,
|
||||||
COLUMN_NAME_WATER,
|
COLUMN_NAME_WATER,
|
||||||
COLUMN_NAME_MUSCLE
|
COLUMN_NAME_MUSCLE,
|
||||||
|
COLUMN_NAME_COMMENT
|
||||||
};
|
};
|
||||||
|
|
||||||
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
|
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
|
||||||
@@ -356,6 +366,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
|
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
|
||||||
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
|
||||||
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
|
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);
|
scaleData.date_time = formatDateTime.parse(date_time);
|
||||||
|
|
||||||
|
@@ -34,6 +34,7 @@ public class EditDataActivity extends Activity {
|
|||||||
private EditText txtFat;
|
private EditText txtFat;
|
||||||
private EditText txtWater;
|
private EditText txtWater;
|
||||||
private EditText txtMuscle;
|
private EditText txtMuscle;
|
||||||
|
private EditText txtComment;
|
||||||
|
|
||||||
private Button btnOk;
|
private Button btnOk;
|
||||||
private Button btnCancel;
|
private Button btnCancel;
|
||||||
@@ -53,6 +54,7 @@ public class EditDataActivity extends Activity {
|
|||||||
txtFat = (EditText) findViewById(R.id.txtFat);
|
txtFat = (EditText) findViewById(R.id.txtFat);
|
||||||
txtWater = (EditText) findViewById(R.id.txtWater);
|
txtWater = (EditText) findViewById(R.id.txtWater);
|
||||||
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
|
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
|
||||||
|
txtComment = (EditText) findViewById(R.id.txtComment);
|
||||||
|
|
||||||
btnOk = (Button)findViewById(R.id.btnOk);
|
btnOk = (Button)findViewById(R.id.btnOk);
|
||||||
btnCancel = (Button)findViewById(R.id.btnCancel);
|
btnCancel = (Button)findViewById(R.id.btnCancel);
|
||||||
@@ -70,27 +72,91 @@ public class EditDataActivity extends Activity {
|
|||||||
txtFat.setText(editScaleData.fat+"");
|
txtFat.setText(editScaleData.fat+"");
|
||||||
txtWater.setText(editScaleData.water+"");
|
txtWater.setText(editScaleData.water+"");
|
||||||
txtMuscle.setText(editScaleData.muscle+"");
|
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));
|
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 {
|
private class onClickListenerOk implements View.OnClickListener {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
if (validateInput()) {
|
||||||
float weight = Float.valueOf(txtWeight.getText().toString());
|
float weight = Float.valueOf(txtWeight.getText().toString());
|
||||||
float fat = Float.valueOf(txtFat.getText().toString());
|
float fat = Float.valueOf(txtFat.getText().toString());
|
||||||
float water = Float.valueOf(txtWater.getText().toString());
|
float water = Float.valueOf(txtWater.getText().toString());
|
||||||
float muscle = Float.valueOf(txtMuscle.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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class onClickListenerCancel implements View.OnClickListener {
|
private class onClickListenerCancel implements View.OnClickListener {
|
||||||
@Override
|
@Override
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
package com.health.openscale.gui;
|
package com.health.openscale.gui;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
@@ -27,12 +28,10 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
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.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -72,9 +71,6 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
|
|
||||||
private ArrayList<ScaleData> scaleDataList;
|
private ArrayList<ScaleData> scaleDataList;
|
||||||
|
|
||||||
private enum lines {WEIGHT, FAT, WATER, MUSCLE}
|
|
||||||
private ArrayList<lines> activeLines;
|
|
||||||
|
|
||||||
public GraphFragment() {
|
public GraphFragment() {
|
||||||
calYears = Calendar.getInstance();
|
calYears = Calendar.getInstance();
|
||||||
calLastSelected = Calendar.getInstance();
|
calLastSelected = Calendar.getInstance();
|
||||||
@@ -180,26 +176,21 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
setHasLabels(prefs.getBoolean("labelsEnable", true)).
|
setHasLabels(prefs.getBoolean("labelsEnable", true)).
|
||||||
setFormatter(new SimpleLineChartValueFormatter(1));
|
setFormatter(new SimpleLineChartValueFormatter(1));
|
||||||
|
|
||||||
activeLines = new ArrayList<lines>();
|
|
||||||
|
|
||||||
if(prefs.getBoolean("weightEnable", true)) {
|
if(prefs.getBoolean("weightEnable", true)) {
|
||||||
lines.add(lineWeight);
|
lines.add(lineWeight);
|
||||||
activeLines.add(GraphFragment.lines.WEIGHT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("fatEnable", true)) {
|
if(prefs.getBoolean("fatEnable", true)) {
|
||||||
lines.add(lineFat);
|
lines.add(lineFat);
|
||||||
activeLines.add(GraphFragment.lines.FAT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("waterEnable", true)) {
|
if(prefs.getBoolean("waterEnable", true)) {
|
||||||
lines.add(lineWater);
|
lines.add(lineWater);
|
||||||
activeLines.add(GraphFragment.lines.WATER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("muscleEnable", true)) {
|
if(prefs.getBoolean("muscleEnable", true)) {
|
||||||
lines.add(lineMuscle);
|
lines.add(lineMuscle);
|
||||||
activeLines.add(GraphFragment.lines.MUSCLE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LineChartData lineData = new LineChartData(lines);
|
LineChartData lineData = new LineChartData(lines);
|
||||||
@@ -291,24 +282,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
@Override
|
@Override
|
||||||
public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
|
public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
|
||||||
ScaleData scaleData = scaleDataList.get(pointIndex);
|
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) {
|
Intent intent = new Intent(graphView.getContext(), EditDataActivity.class);
|
||||||
case WEIGHT:
|
intent.putExtra("id", id);
|
||||||
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();
|
startActivityForResult(intent, 1);
|
||||||
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
|
@Override
|
||||||
|
@@ -46,6 +46,7 @@ public class NewEntryActivity extends Activity {
|
|||||||
private EditText txtMuscle;
|
private EditText txtMuscle;
|
||||||
private EditText txtDate;
|
private EditText txtDate;
|
||||||
private EditText txtTime;
|
private EditText txtTime;
|
||||||
|
private EditText txtComment;
|
||||||
|
|
||||||
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
|
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
|
||||||
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
|
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
|
||||||
@@ -65,6 +66,7 @@ public class NewEntryActivity extends Activity {
|
|||||||
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
|
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
|
||||||
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);
|
||||||
Button btnDateSet = (Button) findViewById(R.id.btnDateSet);
|
Button btnDateSet = (Button) findViewById(R.id.btnDateSet);
|
||||||
Button btnTimeSet = (Button) findViewById(R.id.btnTimeSet);
|
Button btnTimeSet = (Button) findViewById(R.id.btnTimeSet);
|
||||||
|
|
||||||
@@ -192,11 +194,12 @@ public class NewEntryActivity extends Activity {
|
|||||||
float fat = Float.valueOf(txtFat.getText().toString());
|
float fat = Float.valueOf(txtFat.getText().toString());
|
||||||
float water = Float.valueOf(txtWater.getText().toString());
|
float water = Float.valueOf(txtWater.getText().toString());
|
||||||
float muscle = Float.valueOf(txtMuscle.getText().toString());
|
float muscle = Float.valueOf(txtMuscle.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);
|
openScale.addScaleData(selectedUserId, date + " " + time, weight, fat, water, muscle, comment);
|
||||||
|
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
@@ -43,6 +43,7 @@ import java.util.List;
|
|||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter;
|
import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter;
|
||||||
|
import lecho.lib.hellocharts.listener.LineChartOnValueSelectListener;
|
||||||
import lecho.lib.hellocharts.listener.PieChartOnValueSelectListener;
|
import lecho.lib.hellocharts.listener.PieChartOnValueSelectListener;
|
||||||
import lecho.lib.hellocharts.model.Axis;
|
import lecho.lib.hellocharts.model.Axis;
|
||||||
import lecho.lib.hellocharts.model.AxisValue;
|
import lecho.lib.hellocharts.model.AxisValue;
|
||||||
@@ -92,11 +93,16 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
|
|||||||
private PieChartView pieChartLast;
|
private PieChartView pieChartLast;
|
||||||
private LineChartView lineChartLast;
|
private LineChartView lineChartLast;
|
||||||
|
|
||||||
|
private enum lines {WEIGHT, FAT, WATER, MUSCLE}
|
||||||
|
private ArrayList<lines> activeLines;
|
||||||
|
|
||||||
private SharedPreferences prefs;
|
private SharedPreferences prefs;
|
||||||
|
|
||||||
private ScaleData lastScaleData;
|
private ScaleData lastScaleData;
|
||||||
private ScaleUser currentScaleUser;
|
private ScaleUser currentScaleUser;
|
||||||
|
|
||||||
|
private List<ScaleData> scaleDataLastDays;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
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);
|
pieChartLast = (PieChartView) overviewView.findViewById(R.id.pieChartLast);
|
||||||
lineChartLast = (LineChartView) overviewView.findViewById(R.id.lineChartLast);
|
lineChartLast = (LineChartView) overviewView.findViewById(R.id.lineChartLast);
|
||||||
|
|
||||||
|
lineChartLast.setOnValueTouchListener(new LineChartTouchListener());
|
||||||
|
|
||||||
pieChartLast.setOnValueTouchListener(new PieChartLastTouchListener());
|
pieChartLast.setOnValueTouchListener(new PieChartLastTouchListener());
|
||||||
pieChartLast.setChartRotationEnabled(false);
|
pieChartLast.setChartRotationEnabled(false);
|
||||||
|
|
||||||
@@ -329,9 +337,13 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
|
|||||||
|
|
||||||
lastDate.setTime(scaleDataList.get(0).date_time);
|
lastDate.setTime(scaleDataList.get(0).date_time);
|
||||||
|
|
||||||
|
scaleDataLastDays = new ArrayList<ScaleData>();
|
||||||
|
|
||||||
for (int i=0; i<max_i; i++) {
|
for (int i=0; i<max_i; i++) {
|
||||||
ScaleData histData = scaleDataList.get(max_i - i - 1);
|
ScaleData histData = scaleDataList.get(max_i - i - 1);
|
||||||
|
|
||||||
|
scaleDataLastDays.add(histData);
|
||||||
|
|
||||||
valuesWeight.add(new PointValue(i, histData.weight));
|
valuesWeight.add(new PointValue(i, histData.weight));
|
||||||
valuesFat.add(new PointValue(i, histData.fat));
|
valuesFat.add(new PointValue(i, histData.fat));
|
||||||
valuesWater.add(new PointValue(i, histData.water));
|
valuesWater.add(new PointValue(i, histData.water));
|
||||||
@@ -365,20 +377,26 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
|
|||||||
setHasLabels(prefs.getBoolean("labelsEnable", true)).
|
setHasLabels(prefs.getBoolean("labelsEnable", true)).
|
||||||
setFormatter(new SimpleLineChartValueFormatter(1));
|
setFormatter(new SimpleLineChartValueFormatter(1));
|
||||||
|
|
||||||
|
activeLines = new ArrayList<lines>();
|
||||||
|
|
||||||
if(prefs.getBoolean("weightEnable", true)) {
|
if(prefs.getBoolean("weightEnable", true)) {
|
||||||
lines.add(lineWeight);
|
lines.add(lineWeight);
|
||||||
|
activeLines.add(OverviewFragment.lines.WEIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("fatEnable", true)) {
|
if(prefs.getBoolean("fatEnable", true)) {
|
||||||
lines.add(lineFat);
|
lines.add(lineFat);
|
||||||
|
activeLines.add(OverviewFragment.lines.FAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("waterEnable", true)) {
|
if(prefs.getBoolean("waterEnable", true)) {
|
||||||
lines.add(lineWater);
|
lines.add(lineWater);
|
||||||
|
activeLines.add(OverviewFragment.lines.WATER);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(prefs.getBoolean("muscleEnable", true)) {
|
if(prefs.getBoolean("muscleEnable", true)) {
|
||||||
lines.add(lineMuscle);
|
lines.add(lineMuscle);
|
||||||
|
activeLines.add(OverviewFragment.lines.MUSCLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
LineChartData lineData = new LineChartData(lines);
|
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() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -84,6 +84,8 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
txtWaterTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
txtWaterTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
||||||
TextView txtMuscleTableHeader = (TextView)tableView.findViewById(R.id.txtMuscleTableHeader);
|
TextView txtMuscleTableHeader = (TextView)tableView.findViewById(R.id.txtMuscleTableHeader);
|
||||||
txtMuscleTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
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);
|
Button btnDeleteAll = (Button)tableView.findViewById(R.id.btnDeleteAll);
|
||||||
btnDeleteAll.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
btnDeleteAll.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
||||||
}
|
}
|
||||||
@@ -143,6 +145,12 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
|
|||||||
muscleView.setPadding(0, 5, 5, 5);
|
muscleView.setPadding(0, 5, 5, 5);
|
||||||
dataRow.addView(muscleView);
|
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());
|
Button deleteButton = new Button(tableView.getContext());
|
||||||
deleteButton.setText("X");
|
deleteButton.setText("X");
|
||||||
deleteButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
|
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);
|
fatView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
||||||
waterView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
waterView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
|
||||||
muscleView.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));
|
tableDataView.addView(dataRow, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
|
||||||
|
BIN
android_app/app/src/main/res/drawable/comment.png
Normal file
BIN
android_app/app/src/main/res/drawable/comment.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 998 B |
@@ -9,25 +9,36 @@
|
|||||||
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="*" >
|
android:stretchColumns="2" >
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableRow1"
|
android:id="@+id/tableRow1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:id="@+id/imageView10"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:src="@drawable/weight"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginRight="2dp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView1"
|
android:id="@+id/textView1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_weight" />
|
android:text="@string/label_weight"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtWeight"
|
android:id="@+id/txtWeight"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:inputType="numberDecimal|numberSigned">
|
android:inputType="numberDecimal|numberSigned"
|
||||||
|
android:layout_column="2">
|
||||||
|
|
||||||
<requestFocus />
|
<requestFocus />
|
||||||
</EditText>
|
</EditText>
|
||||||
@@ -39,17 +50,28 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:id="@+id/imageView12"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:src="@drawable/fat"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginRight="2dp" />
|
||||||
|
|
||||||
<TextView
|
<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_fat" />
|
android:text="@string/label_fat"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtFat"
|
android:id="@+id/txtFat"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:inputType="numberDecimal|numberSigned" />
|
android:inputType="numberDecimal|numberSigned"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
@@ -58,11 +80,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:id="@+id/imageView13"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:src="@drawable/water"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginRight="2dp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView5"
|
android:id="@+id/textView5"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_water" />
|
android:text="@string/label_water"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtWater"
|
android:id="@+id/txtWater"
|
||||||
@@ -70,7 +102,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="5"
|
android:layout_weight="5"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:inputType="numberDecimal|numberSigned" />
|
android:inputType="numberDecimal|numberSigned"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
@@ -79,17 +112,58 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:id="@+id/imageView14"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:src="@drawable/muscle"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginRight="2dp" />
|
||||||
|
|
||||||
<TextView
|
<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_muscle" />
|
android:text="@string/label_muscle"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtMuscle"
|
android:id="@+id/txtMuscle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:inputType="numberDecimal|numberSigned" />
|
android:inputType="numberDecimal|numberSigned"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:id="@+id/tableRow12"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:id="@+id/imageView15"
|
||||||
|
android:layout_column="0"
|
||||||
|
android:src="@drawable/comment"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginRight="2dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
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" />
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
@@ -9,18 +9,28 @@
|
|||||||
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="*" >
|
android:stretchColumns="2" >
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableRow1"
|
android:id="@+id/tableRow1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/textView1"
|
android:id="@+id/textView1"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_weight" />
|
android:text="@string/label_weight"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtWeight"
|
android:id="@+id/txtWeight"
|
||||||
@@ -28,7 +38,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:hint="@string/info_enter_value_unit"
|
android:hint="@string/info_enter_value_unit"
|
||||||
android:inputType="numberDecimal" >
|
android:inputType="numberDecimal"
|
||||||
|
android:layout_column="2">
|
||||||
|
|
||||||
<requestFocus />
|
<requestFocus />
|
||||||
</EditText>
|
</EditText>
|
||||||
@@ -40,11 +51,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/txtAvgWeight"
|
android:id="@+id/txtAvgWeight"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_fat" />
|
android:text="@string/label_fat"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtFat"
|
android:id="@+id/txtFat"
|
||||||
@@ -52,7 +73,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:hint="@string/info_enter_value_percent"
|
android:hint="@string/info_enter_value_percent"
|
||||||
android:inputType="numberDecimal" />
|
android:inputType="numberDecimal"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
@@ -61,11 +83,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/textView3"
|
android:id="@+id/textView3"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_water" />
|
android:text="@string/label_water"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtWater"
|
android:id="@+id/txtWater"
|
||||||
@@ -73,7 +105,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:hint="@string/info_enter_value_percent"
|
android:hint="@string/info_enter_value_percent"
|
||||||
android:inputType="numberDecimal" />
|
android:inputType="numberDecimal"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
@@ -82,11 +115,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/txtAvgFat"
|
android:id="@+id/txtAvgFat"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_muscle" />
|
android:text="@string/label_muscle"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtMuscle"
|
android:id="@+id/txtMuscle"
|
||||||
@@ -94,20 +137,62 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:hint="@string/info_enter_value_percent"
|
android:hint="@string/info_enter_value_percent"
|
||||||
android:inputType="numberDecimal" />
|
android:inputType="numberDecimal"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
|
<TableRow
|
||||||
|
android:id="@+id/tableRow13"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="30dp"
|
||||||
|
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
|
<TableRow
|
||||||
android:id="@+id/tableRow5"
|
android:id="@+id/tableRow5"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
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
|
<TextView
|
||||||
android:id="@+id/textView5"
|
android:id="@+id/textView5"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_date" />
|
android:text="@string/label_date"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtDate"
|
android:id="@+id/txtDate"
|
||||||
@@ -116,14 +201,16 @@
|
|||||||
android:layout_weight="5"
|
android:layout_weight="5"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:inputType="date" />
|
android:inputType="date"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnDateSet"
|
android:id="@+id/btnDateSet"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_set"
|
android:text="@string/label_set"
|
||||||
android:textSize="15sp" />
|
android:textSize="15sp"
|
||||||
|
android:layout_column="3" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
@@ -132,11 +219,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/txtAvgWater"
|
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:text="@string/label_time" />
|
android:text="@string/label_time"
|
||||||
|
android:layout_column="1" />
|
||||||
|
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/txtTime"
|
android:id="@+id/txtTime"
|
||||||
@@ -145,14 +242,16 @@
|
|||||||
android:layout_weight="5"
|
android:layout_weight="5"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
android:inputType="time" />
|
android:inputType="time"
|
||||||
|
android:layout_column="2" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnTimeSet"
|
android:id="@+id/btnTimeSet"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/label_set"
|
android:text="@string/label_set"
|
||||||
android:textSize="15sp" />
|
android:textSize="15sp"
|
||||||
|
android:layout_column="3" />
|
||||||
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
|
@@ -17,9 +17,9 @@
|
|||||||
android:id="@+id/tableDataView"
|
android:id="@+id/tableDataView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:shrinkColumns="*"
|
|
||||||
android:measureWithLargestChild="false"
|
android:measureWithLargestChild="false"
|
||||||
android:stretchColumns="1,2,3,4,5,6">
|
android:stretchColumns="1,2,3,4,5,6,7"
|
||||||
|
android:shrinkColumns="*">
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/tableHeader"
|
android:id="@+id/tableHeader"
|
||||||
@@ -76,6 +76,13 @@
|
|||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:id="@+id/txtMuscleTableHeader" />
|
android:id="@+id/txtMuscleTableHeader" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/label_comment"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:id="@+id/txtCommentTableHeader" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/btnDeleteAll"
|
android:id="@+id/btnDeleteAll"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<string name="title_frag">Table</string>
|
<string name="title_frag">Table</string>
|
||||||
<string name="title_user">User</string>
|
<string name="title_user">User</string>
|
||||||
<string name="title_new_data_entry">Data entry</string>
|
<string name="title_new_data_entry">Data entry</string>
|
||||||
<string name="title_edit_data_entry">Edit data entry</string>
|
<string name="title_edit_data_entry">Edit</string>
|
||||||
|
|
||||||
<string name="action_settings">Settings</string>
|
<string name="action_settings">Settings</string>
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
<string name="label_fat">Fat</string>
|
<string name="label_fat">Fat</string>
|
||||||
<string name="label_water">Water</string>
|
<string name="label_water">Water</string>
|
||||||
<string name="label_muscle">Muscle</string>
|
<string name="label_muscle">Muscle</string>
|
||||||
|
<string name="label_comment">Comment</string>
|
||||||
|
|
||||||
<string name="label_days">days</string>
|
<string name="label_days">days</string>
|
||||||
<string name="label_measures">measures</string>
|
<string name="label_measures">measures</string>
|
||||||
@@ -75,6 +76,7 @@
|
|||||||
<string name="info_set_filename">Set filename to</string>
|
<string name="info_set_filename">Set filename to</string>
|
||||||
<string name="info_enter_value_percent">Enter value in %</string>
|
<string name="info_enter_value_percent">Enter value in %</string>
|
||||||
<string name="info_enter_value_unit">Enter value in</string>
|
<string name="info_enter_value_unit">Enter value in</string>
|
||||||
|
<string name="info_enter_comment">Enter an optional comment</string>
|
||||||
<string name="info_enter_goal_weight">Enter your goal weight in your scale unit</string>
|
<string name="info_enter_goal_weight">Enter your goal weight in your scale unit</string>
|
||||||
<string name="info_is_visible">Is visible</string>
|
<string name="info_is_visible">Is visible</string>
|
||||||
<string name="info_is_not_visible">Is not visible</string>
|
<string name="info_is_not_visible">Is not visible</string>
|
||||||
|
Reference in New Issue
Block a user