mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Make temperature location and types non-null
This commit is contained in:
+25
-7
@@ -12,24 +12,42 @@ import nodomain.freeyourgadget.gadgetbridge.entities.MijiaLywsdRealtimeSampleDao
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.TemperatureSample;
|
||||
|
||||
public class GadgetbridgeUpdate_118 implements DBUpdateScript {
|
||||
private void addColumnIfNotExists(final SQLiteDatabase database,
|
||||
final String tableName,
|
||||
final String columnName,
|
||||
final int defaultValue) {
|
||||
if (!DBHelper.existsColumn(tableName, columnName, database)) {
|
||||
database.execSQL("ALTER TABLE " + tableName + " ADD COLUMN " + columnName + " INTEGER NOT NULL DEFAULT " + defaultValue + ";");
|
||||
}
|
||||
}
|
||||
|
||||
private void addTemperatureColumnsIfNotExists(SQLiteDatabase database, String tableName, int defaultTemperatureType, int defaultTemperatureLocation) {
|
||||
// Add TemperatureType column if it doesn't exist
|
||||
if (!DBHelper.existsColumn(tableName, GenericTemperatureSampleDao.Properties.TemperatureType.columnName, database)) {
|
||||
database.execSQL("ALTER TABLE " + tableName + " ADD COLUMN " + GenericTemperatureSampleDao.Properties.TemperatureType.columnName + " INTEGER DEFAULT " + defaultTemperatureType);
|
||||
database.execSQL("ALTER TABLE " + tableName + " ADD COLUMN " + GenericTemperatureSampleDao.Properties.TemperatureType.columnName + " INTEGER NOT NULL DEFAULT " + defaultTemperatureType);
|
||||
}
|
||||
// Add TemperatureLocation column if it doesn't exist
|
||||
if (!DBHelper.existsColumn(tableName, GenericTemperatureSampleDao.Properties.TemperatureLocation.columnName, database)) {
|
||||
database.execSQL("ALTER TABLE " + tableName + " ADD COLUMN " + GenericTemperatureSampleDao.Properties.TemperatureLocation.columnName + " INTEGER DEFAULT " + defaultTemperatureLocation);
|
||||
database.execSQL("ALTER TABLE " + tableName + " ADD COLUMN " + GenericTemperatureSampleDao.Properties.TemperatureLocation.columnName + " INTEGER NOT NULL DEFAULT " + defaultTemperatureLocation);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upgradeSchema(SQLiteDatabase database) {
|
||||
addTemperatureColumnsIfNotExists(database, HuaweiTemperatureSampleDao.TABLENAME, TemperatureSample.TYPE_SKIN, TemperatureSample.LOCATION_WRIST);
|
||||
addTemperatureColumnsIfNotExists(database, ColmiTemperatureSampleDao.TABLENAME, TemperatureSample.TYPE_SKIN, TemperatureSample.LOCATION_WRIST);
|
||||
addTemperatureColumnsIfNotExists(database, FemometerVinca2TemperatureSampleDao.TABLENAME, TemperatureSample.TYPE_BODY, TemperatureSample.LOCATION_MOUTH);
|
||||
addTemperatureColumnsIfNotExists(database, MijiaLywsdRealtimeSampleDao.TABLENAME, TemperatureSample.TYPE_AMBIENT, TemperatureSample.LOCATION_UNKNOWN);
|
||||
addTemperatureColumnsIfNotExists(database, GenericTemperatureSampleDao.TABLENAME, TemperatureSample.TYPE_UNKNOWN, TemperatureSample.LOCATION_UNKNOWN);
|
||||
addColumnIfNotExists(database, HuaweiTemperatureSampleDao.TABLENAME, HuaweiTemperatureSampleDao.Properties.TemperatureType.columnName, TemperatureSample.TYPE_SKIN);
|
||||
addColumnIfNotExists(database, HuaweiTemperatureSampleDao.TABLENAME, HuaweiTemperatureSampleDao.Properties.TemperatureLocation.columnName, TemperatureSample.LOCATION_WRIST);
|
||||
|
||||
addColumnIfNotExists(database, ColmiTemperatureSampleDao.TABLENAME, ColmiTemperatureSampleDao.Properties.TemperatureType.columnName, TemperatureSample.TYPE_SKIN);
|
||||
addColumnIfNotExists(database, ColmiTemperatureSampleDao.TABLENAME, ColmiTemperatureSampleDao.Properties.TemperatureLocation.columnName, TemperatureSample.LOCATION_WRIST);
|
||||
|
||||
addColumnIfNotExists(database, FemometerVinca2TemperatureSampleDao.TABLENAME, FemometerVinca2TemperatureSampleDao.Properties.TemperatureType.columnName, TemperatureSample.TYPE_BODY);
|
||||
addColumnIfNotExists(database, FemometerVinca2TemperatureSampleDao.TABLENAME, FemometerVinca2TemperatureSampleDao.Properties.TemperatureLocation.columnName, TemperatureSample.LOCATION_MOUTH);
|
||||
|
||||
addColumnIfNotExists(database, MijiaLywsdRealtimeSampleDao.TABLENAME, MijiaLywsdRealtimeSampleDao.Properties.TemperatureType.columnName, TemperatureSample.TYPE_AMBIENT);
|
||||
addColumnIfNotExists(database, MijiaLywsdRealtimeSampleDao.TABLENAME, MijiaLywsdRealtimeSampleDao.Properties.TemperatureLocation.columnName, TemperatureSample.LOCATION_UNKNOWN);
|
||||
|
||||
addColumnIfNotExists(database, GenericTemperatureSampleDao.TABLENAME, GenericTemperatureSampleDao.Properties.TemperatureType.columnName, TemperatureSample.TYPE_UNKNOWN);
|
||||
addColumnIfNotExists(database, GenericTemperatureSampleDao.TABLENAME, GenericTemperatureSampleDao.Properties.TemperatureLocation.columnName, TemperatureSample.LOCATION_UNKNOWN);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
-6
@@ -36,16 +36,16 @@ public class SchemaMigration {
|
||||
}
|
||||
|
||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
LOG.info("ActivityDatabase: schema upgrade requested from " + oldVersion + " to " + newVersion);
|
||||
LOG.info("ActivityDatabase: schema upgrade requested from {} to {}", oldVersion, newVersion);
|
||||
try {
|
||||
for (int i = oldVersion + 1; i <= newVersion; i++) {
|
||||
DBUpdateScript updater = getUpdateScript(db, i);
|
||||
if (updater != null) {
|
||||
LOG.info("upgrading activity database to version " + i);
|
||||
LOG.info("upgrading activity database to version {}", i);
|
||||
updater.upgradeSchema(db);
|
||||
}
|
||||
}
|
||||
LOG.info("activity database is now at version " + newVersion);
|
||||
LOG.info("activity database is now at version {}", newVersion);
|
||||
} catch (RuntimeException ex) {
|
||||
GB.toast("Error upgrading database.", Toast.LENGTH_SHORT, GB.ERROR, ex);
|
||||
throw ex; // reject upgrade
|
||||
@@ -53,16 +53,16 @@ public class SchemaMigration {
|
||||
}
|
||||
|
||||
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
LOG.info("ActivityDatabase: schema downgrade requested from " + oldVersion + " to " + newVersion);
|
||||
LOG.info("ActivityDatabase: schema downgrade requested from {} to {}", oldVersion, newVersion);
|
||||
try {
|
||||
for (int i = oldVersion; i >= newVersion; i--) {
|
||||
DBUpdateScript updater = getUpdateScript(db, i);
|
||||
if (updater != null) {
|
||||
LOG.info("downgrading activity database to version " + (i - 1));
|
||||
LOG.info("downgrading activity database to version {}", i - 1);
|
||||
updater.downgradeSchema(db);
|
||||
}
|
||||
}
|
||||
LOG.info("activity database is now at version " + newVersion);
|
||||
LOG.info("activity database is now at version {}", newVersion);
|
||||
} catch (RuntimeException ex) {
|
||||
GB.toast("Error downgrading database.", Toast.LENGTH_SHORT, GB.ERROR, ex);
|
||||
throw ex; // reject downgrade
|
||||
|
||||
+10
-7
@@ -33,8 +33,8 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.TemperatureSample;
|
||||
|
||||
public class GenericTemperatureSampleProvider extends AbstractTimeSampleProvider<GenericTemperatureSample> {
|
||||
private final Integer defaultType;
|
||||
private final Integer defaultLocation;
|
||||
private final int defaultType;
|
||||
private final int defaultLocation;
|
||||
|
||||
public GenericTemperatureSampleProvider(final GBDevice device, final DaoSession session) {
|
||||
this(device, session, TemperatureSample.TYPE_UNKNOWN, TemperatureSample.LOCATION_UNKNOWN);
|
||||
@@ -42,8 +42,8 @@ public class GenericTemperatureSampleProvider extends AbstractTimeSampleProvider
|
||||
|
||||
public GenericTemperatureSampleProvider(final GBDevice device,
|
||||
final DaoSession session,
|
||||
final Integer defaultType,
|
||||
final Integer defaultLocation) {
|
||||
final int defaultType,
|
||||
final int defaultLocation) {
|
||||
super(device, session);
|
||||
this.defaultType = defaultType;
|
||||
this.defaultLocation = defaultLocation;
|
||||
@@ -51,10 +51,10 @@ public class GenericTemperatureSampleProvider extends AbstractTimeSampleProvider
|
||||
|
||||
private GenericTemperatureSample applyDefaults(final GenericTemperatureSample sample) {
|
||||
if (sample != null) {
|
||||
if (defaultType != -1 && (sample.getTemperatureType() == null || sample.getTemperatureType() == 0)) {
|
||||
if (defaultType != TemperatureSample.TYPE_UNKNOWN && sample.getTemperatureType() == TemperatureSample.TYPE_UNKNOWN) {
|
||||
sample.setTemperatureType(defaultType);
|
||||
}
|
||||
if (defaultLocation != -1 && (sample.getTemperatureLocation() == null || sample.getTemperatureLocation() == 0)) {
|
||||
if (defaultLocation != TemperatureSample.LOCATION_UNKNOWN && sample.getTemperatureLocation() == TemperatureSample.LOCATION_UNKNOWN) {
|
||||
sample.setTemperatureLocation(defaultLocation);
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,10 @@ public class GenericTemperatureSampleProvider extends AbstractTimeSampleProvider
|
||||
|
||||
@Override
|
||||
public GenericTemperatureSample createSample() {
|
||||
return new GenericTemperatureSample();
|
||||
final GenericTemperatureSample sample = new GenericTemperatureSample();
|
||||
sample.setTemperatureType(defaultType);
|
||||
sample.setTemperatureLocation(defaultLocation);
|
||||
return sample;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ public class FemometerVinca2SampleProvider extends AbstractTimeSampleProvider<Fe
|
||||
|
||||
@Override
|
||||
public FemometerVinca2TemperatureSample createSample() {
|
||||
FemometerVinca2TemperatureSample sample=new FemometerVinca2TemperatureSample();
|
||||
FemometerVinca2TemperatureSample sample = new FemometerVinca2TemperatureSample();
|
||||
sample.setTemperatureType(TemperatureSample.TYPE_BODY);
|
||||
sample.setTemperatureLocation(TemperatureSample.LOCATION_MOUTH);
|
||||
return sample;
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ public class MijiaLywsdRealtimeSampleProvider extends AbstractTimeSampleProvider
|
||||
|
||||
@Override
|
||||
public MijiaLywsdRealtimeSample createSample() {
|
||||
MijiaLywsdRealtimeSample sample=new MijiaLywsdRealtimeSample();
|
||||
MijiaLywsdRealtimeSample sample = new MijiaLywsdRealtimeSample();
|
||||
sample.setTemperatureType(TemperatureSample.TYPE_AMBIENT);
|
||||
sample.setTemperatureLocation(TemperatureSample.LOCATION_UNKNOWN);
|
||||
return sample;
|
||||
|
||||
+2
-2
@@ -119,12 +119,12 @@ public class XiaomiTemperatureSampleProvider implements TimeSampleProvider<Tempe
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getTemperatureType() {
|
||||
public int getTemperatureType() {
|
||||
return TemperatureSample.TYPE_SKIN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getTemperatureLocation() {
|
||||
public int getTemperatureLocation() {
|
||||
return TemperatureSample.LOCATION_WRIST;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,17 +37,18 @@ public interface TemperatureSample extends TimeSample {
|
||||
* Returns the temperature value.
|
||||
*/
|
||||
float getTemperature();
|
||||
|
||||
/**
|
||||
* Returns the temperature type (the position on the body where the measurement was taken).
|
||||
*/
|
||||
default Integer getTemperatureType() {
|
||||
default int getTemperatureType() {
|
||||
return TYPE_UNKNOWN;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the temperature measurement location (the position on the body where the measurement was taken).
|
||||
*/
|
||||
default Integer getTemperatureLocation() {
|
||||
default int getTemperatureLocation() {
|
||||
return LOCATION_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -83,7 +83,8 @@ public class FetchTemperatureOperation extends AbstractRepeatingFetchOperation {
|
||||
final GenericTemperatureSample sample = new GenericTemperatureSample();
|
||||
sample.setTimestamp(timestamp.getTimeInMillis());
|
||||
sample.setTemperature(temperature / 100f);
|
||||
sample.setTemperatureType(0);
|
||||
sample.setTemperatureLocation(GenericTemperatureSample.LOCATION_WRIST);
|
||||
sample.setTemperatureType(GenericTemperatureSample.TYPE_SKIN);
|
||||
samples.add(sample);
|
||||
|
||||
timestamp.add(Calendar.MINUTE, 1);
|
||||
|
||||
Reference in New Issue
Block a user