1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-28 10:40:47 +02:00

add internal basic support for multiple users.

This commit is contained in:
OliE
2015-01-02 18:15:50 +01:00
parent c0701e99b7
commit a3aa38bf66
5 changed files with 38 additions and 16 deletions

View File

@@ -61,11 +61,12 @@ public class OpenScale {
return scaleDBEntries;
}
public void addScaleData(String date_time, float weight, float fat,
public void addScaleData(int user_id, String date_time, float weight, float fat,
float water, float muscle) {
ScaleData scaleData = new ScaleData();
try {
scaleData.user_id = user_id;
scaleData.date_time = dateTimeFormat.parse(date_time);
scaleData.weight = weight;
scaleData.fat = fat;
@@ -103,11 +104,12 @@ public class OpenScale {
ScaleData newScaleData = new ScaleData();
newScaleData.date_time = dateTimeFormat.parse(csvField[0]);
newScaleData.weight = Float.parseFloat(csvField[1]);
newScaleData.fat = Float.parseFloat(csvField[2]);
newScaleData.water = Float.parseFloat(csvField[3]);
newScaleData.muscle = Float.parseFloat(csvField[4]);
newScaleData.user_id = Integer.parseInt(csvField[0]);
newScaleData.date_time = dateTimeFormat.parse(csvField[1]);
newScaleData.weight = Float.parseFloat(csvField[2]);
newScaleData.fat = Float.parseFloat(csvField[3]);
newScaleData.water = Float.parseFloat(csvField[4]);
newScaleData.muscle = Float.parseFloat(csvField[5]);
scaleDB.insertEntry(newScaleData);
@@ -133,6 +135,7 @@ public class OpenScale {
OutputStreamWriter csvWriter = new OutputStreamWriter(outputStream);
for (ScaleData scaleData : scaleDBEntries) {
csvWriter.append(Integer.toString(scaleData.user_id) + ",");
csvWriter.append(dateTimeFormat.format(scaleData.date_time) + ",");
csvWriter.append(Float.toString(scaleData.weight) + ",");
csvWriter.append(Float.toString(scaleData.fat) + ",");
@@ -237,6 +240,7 @@ public class OpenScale {
try {
int checksum = 0;
checksum ^= Integer.parseInt(csvField[0]);
checksum ^= Integer.parseInt(csvField[1]);
checksum ^= Integer.parseInt(csvField[2]);
checksum ^= Integer.parseInt(csvField[3]);
@@ -250,7 +254,8 @@ public class OpenScale {
int btChecksum = Integer.parseInt(csvField[10]);
if (checksum == btChecksum) {
scaleBtData.id = Long.parseLong(csvField[0]);
scaleBtData.id = -1;
scaleBtData.user_id = Integer.parseInt(csvField[0]);
String date_string = csvField[1] + "/" + csvField[2] + "/" + csvField[3] + "/" + csvField[4] + "/" + csvField[5];
scaleBtData.date_time = new SimpleDateFormat("yyyy/MM/dd/HH/mm").parse(date_string);

View File

@@ -20,6 +20,7 @@ import java.util.Date;
public class ScaleData {
public long id;
public int user_id;
public Date date_time;
public float weight;
public float fat;
@@ -29,6 +30,6 @@ public class ScaleData {
@Override
public String toString()
{
return "ID : " + 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;
}
}

View File

@@ -36,6 +36,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
private static final String TABLE_NAME = "scaledata";
private static final String COLUMN_NAME_ID = "id";
private static final String COLUMN_NAME_USER_ID = "user_id";
private static final String COLUMN_NAME_DATE_TIME = "date_time";
private static final String COLUMN_NAME_WEIGHT = "weight";
private static final String COLUMN_NAME_FAT = "fat";
@@ -45,6 +46,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_NAME_ID + " INTEGER PRIMARY KEY," +
COLUMN_NAME_USER_ID + " INTEGER," +
COLUMN_NAME_DATE_TIME + " TEXT UNIQUE," +
COLUMN_NAME_WEIGHT + " REAL," +
COLUMN_NAME_FAT + " REAL," +
@@ -89,6 +91,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
return false;
} else {
ContentValues values = new ContentValues();
values.put(COLUMN_NAME_USER_ID, scaleData.user_id);
values.put(COLUMN_NAME_DATE_TIME, formatDateTime.format(scaleData.date_time));
values.put(COLUMN_NAME_WEIGHT, scaleData.weight);
values.put(COLUMN_NAME_FAT, scaleData.fat);
@@ -195,6 +198,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
String[] projection = {
COLUMN_NAME_ID,
COLUMN_NAME_USER_ID,
COLUMN_NAME_DATE_TIME,
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
@@ -228,6 +232,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
ScaleData dataEntry = new ScaleData();
dataEntry.id = cursorScaleDB.getLong(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_ID));
dataEntry.user_id = cursorScaleDB.getInt(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_USER_ID));
String date_time = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_DATE_TIME));
dataEntry.weight = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WEIGHT));
dataEntry.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
@@ -256,6 +261,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
String[] projection = {
COLUMN_NAME_ID,
COLUMN_NAME_USER_ID,
COLUMN_NAME_DATE_TIME,
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
@@ -282,6 +288,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
ScaleData dataEntry = new ScaleData();
dataEntry.id = cursorScaleDB.getLong(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_ID));
dataEntry.user_id = cursorScaleDB.getInt(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_USER_ID));
String date_time = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_DATE_TIME));
dataEntry.weight = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WEIGHT));
dataEntry.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
@@ -291,7 +298,6 @@ public class ScaleDatabase extends SQLiteOpenHelper {
dataEntry.date_time = formatDateTime.parse(date_time);
scaleDBEntries.add(dataEntry);
//Log.d("ScaleDatabase", dataEntry.toString());
cursorScaleDB.moveToNext();
}

View File

@@ -160,7 +160,8 @@ public class NewEntryActivity extends Activity {
if (validateInput())
{
OpenScale openScale = OpenScale.getInstance(context);
int user_id = 0;
float weight = Float.valueOf(txtWeight.getText().toString());
float fat = Float.valueOf(txtFat.getText().toString());
float water = Float.valueOf(txtWater.getText().toString());
@@ -169,7 +170,7 @@ public class NewEntryActivity extends Activity {
String date = txtDate.getText().toString();
String time = txtTime.getText().toString();
openScale.addScaleData(date + " " + time, weight, fat, water, muscle);
openScale.addScaleData(user_id, date + " " + time, weight, fat, water, muscle);
finish();
}