1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-13 04:04:25 +02:00

don't really delete a scale entry just disable it. This avoids a reimport of already received Mi Scale history weight measurement.

This commit is contained in:
OliE
2016-12-21 12:55:10 +01:00
parent 68bbbb4098
commit e5bc4b17d7

View File

@@ -31,7 +31,7 @@ import java.util.Calendar;
import java.util.Locale;
public class ScaleDatabase extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 3;
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "openScaleDatabase.db";
private static final String TABLE_NAME = "scaledata";
@@ -45,6 +45,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
private static final String COLUMN_NAME_WAIST = "waist";
private static final String COLUMN_NAME_HIP = "hip";
private static final String COLUMN_NAME_COMMENT = "comment";
private static final String COLUMN_NAME_ENABLE = "enable";
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + TABLE_NAME + " (" +
@@ -57,7 +58,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_MUSCLE + " REAL," +
COLUMN_NAME_WAIST + " REAL," +
COLUMN_NAME_HIP + " REAL," +
COLUMN_NAME_COMMENT + " TEXT" +
COLUMN_NAME_COMMENT + " TEXT," +
COLUMN_NAME_ENABLE + " INTEGER" +
")";
private static final String SQL_DELETE_ENTRIES =
@@ -74,7 +76,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_MUSCLE,
COLUMN_NAME_WAIST,
COLUMN_NAME_HIP,
COLUMN_NAME_COMMENT
COLUMN_NAME_COMMENT,
COLUMN_NAME_ENABLE
};
private final SQLiteDatabase dbWrite = getWritableDatabase();
@@ -101,6 +104,10 @@ public class ScaleDatabase extends SQLiteOpenHelper {
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_WAIST + " REAL DEFAULT 0");
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_HIP + " REAL DEFAULT 0");
}
if (oldVersion == 3 && newVersion == 4) {
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_ENABLE + " INTEGER DEFAULT 1");
}
}
public void clearScaleData(int userId) {
@@ -182,7 +189,12 @@ public class ScaleDatabase extends SQLiteOpenHelper {
}
public void deleteEntry(long id) {
dbWrite.delete(TABLE_NAME, COLUMN_NAME_ID + "= ?", new String[] {String.valueOf(id)});
//dbWrite.delete(TABLE_NAME, COLUMN_NAME_ID + "= ?", new String[] {String.valueOf(id)});
ContentValues values = new ContentValues();
values.put(COLUMN_NAME_ENABLE, 0);
dbWrite.update(TABLE_NAME, values, COLUMN_NAME_ID + "=" + id, null);
}
public int[] getCountsOfAllMonth(int userId, int year) {
@@ -199,7 +211,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
Cursor cursorScaleDB = dbRead.query(
TABLE_NAME, // The table to query
new String[]{"count(*)"}, // The columns to return
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? AND " + COLUMN_NAME_USER_ID + "=?", // The columns for the WHERE clause
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? AND " + COLUMN_NAME_USER_ID + "=? AND "+ COLUMN_NAME_ENABLE + "=1", // The columns for the WHERE clause
new String[]{formatDateTime.format(start_cal.getTime()), formatDateTime.format(end_cal.getTime()), Integer.toString(userId)}, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
@@ -231,7 +243,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
Cursor cursorScaleDB = dbRead.query(
TABLE_NAME, // The table to query
projection, // The columns to return
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? AND " + COLUMN_NAME_USER_ID + "=?", // The columns for the WHERE clause
COLUMN_NAME_DATE_TIME + " >= ? AND " + COLUMN_NAME_DATE_TIME + " < ? AND " + COLUMN_NAME_USER_ID + "=? AND " + COLUMN_NAME_ENABLE + "=1", // The columns for the WHERE clause
new String[]{formatDateTime.format(start_cal.getTime()), formatDateTime.format(end_cal.getTime()), Integer.toString(userId)}, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups
@@ -259,7 +271,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
Cursor cursorScaleDB = dbRead.query(
TABLE_NAME, // The table to query
projection, // The columns to return
COLUMN_NAME_USER_ID + "=?", // The columns for the WHERE clause
COLUMN_NAME_USER_ID + "=? AND " + COLUMN_NAME_ENABLE + "=1", // The columns for the WHERE clause
new String[]{Integer.toString(userId)}, // The values for the WHERE clause
null, // don't group the rows
null, // don't filter by row groups