diff --git a/GBDaoGenerator/build.gradle b/GBDaoGenerator/build.gradle index e95e421a..756314f8 100644 --- a/GBDaoGenerator/build.gradle +++ b/GBDaoGenerator/build.gradle @@ -7,7 +7,8 @@ archivesBaseName = 'gadgetbridge-daogenerator' dependencies { // compile 'org.greenrobot:greendao-generator:2.2.0' - compile 'com.github.freeyourgadget:greendao:c3830951e5dd3d1e63d7bac600d5f773b81df363' +// compile project(":DaoGenerator") + compile 'com.github.freeyourgadget:greendao:1998d7cd2d21f662c6044f6ccf3b3a251bbad341' } sourceSets { diff --git a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java index 884aa3d3..24e2f53b 100644 --- a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java +++ b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java @@ -34,7 +34,7 @@ public class GBDaoGenerator { private static final String VALID_BY_DATE = MODEL_PACKAGE + ".ValidByDate"; public static void main(String[] args) throws Exception { - Schema schema = new Schema(12, MAIN_PACKAGE + ".entities"); + Schema schema = new Schema(13, MAIN_PACKAGE + ".entities"); addActivityDescription(schema); @@ -137,7 +137,6 @@ public class GBDaoGenerator { activitySample.addIntProperty("rawIntensity").notNull(); activitySample.addIntProperty("steps").notNull(); activitySample.addIntProperty("rawKind").notNull(); - addCommonActivitySampleProperties2(activitySample, user, device); addHeartRateProperties(activitySample); return activitySample; } @@ -149,7 +148,6 @@ public class GBDaoGenerator { private static Entity addPebbleHealthActivitySample(Schema schema, Entity user, Entity device) { Entity activitySample = addEntity(schema, "PebbleHealthActivitySample"); addCommonActivitySampleProperties("AbstractPebbleHealthActivitySample", activitySample, user, device); - addCommonActivitySampleProperties2(activitySample, user, device); activitySample.addByteArrayProperty("rawPebbleHealthData"); activitySample.addIntProperty("rawIntensity").notNull(); activitySample.addIntProperty("steps").notNull(); @@ -158,31 +156,22 @@ public class GBDaoGenerator { private static Entity addPebbleHealthActivityKindOverlay(Schema schema, Entity user, Entity device) { Entity activityOverlay = addEntity(schema, "PebbleHealthActivityOverlay"); - activityOverlay.addIdProperty(); + + activityOverlay.addIntProperty("timestampFrom").notNull().primaryKey(); + activityOverlay.addIntProperty("timestampTo").notNull().primaryKey(); + Property deviceId = activityOverlay.addLongProperty("deviceId").primaryKey().getProperty(); + activityOverlay.addToOne(device, deviceId); Property userId = activityOverlay.addLongProperty("userId").getProperty(); activityOverlay.addToOne(user, userId); - Property deviceId = activityOverlay.addLongProperty("deviceId").getProperty(); - activityOverlay.addToOne(device, deviceId); - - Property timestampFrom = activityOverlay.addIntProperty("timestampFrom").notNull().getProperty(); - Property timestampTo = activityOverlay.addIntProperty("timestampTo").notNull().getProperty(); activityOverlay.addIntProperty("rawKind").notNull(); - Index indexUnique = new Index(); - indexUnique.addProperty(deviceId); - indexUnique.addProperty(timestampFrom); - indexUnique.addProperty(timestampTo); - indexUnique.makeUnique(); - activityOverlay.addIndex(indexUnique); - return activityOverlay; } private static Entity addPebbleMisfitActivitySample(Schema schema, Entity user, Entity device) { Entity activitySample = addEntity(schema, "PebbleMisfitSample"); addCommonActivitySampleProperties("AbstractPebbleMisfitActivitySample", activitySample, user, device); - addCommonActivitySampleProperties2(activitySample, user, device); activitySample.addIntProperty("rawPebbleMisfitSample").notNull(); return activitySample; } @@ -190,7 +179,6 @@ public class GBDaoGenerator { private static Entity addPebbleMorpheuzActivitySample(Schema schema, Entity user, Entity device) { Entity activitySample = addEntity(schema, "PebbleMorpheuzSample"); addCommonActivitySampleProperties("AbstractPebbleMorpheuzActivitySample", activitySample, user, device); - addCommonActivitySampleProperties2(activitySample, user, device); activitySample.addIntProperty("rawIntensity").notNull(); return activitySample; } @@ -202,21 +190,11 @@ public class GBDaoGenerator { "This class represents a sample specific to the device. Values like activity kind or\n" + "intensity, are device specific. Normalized values can be retrieved through the\n" + "corresponding {@link SampleProvider}."); - activitySample.addIdProperty(); - activitySample.addIntProperty("timestamp").notNull(); - } - - private static void addCommonActivitySampleProperties2(Entity activitySample, Entity user, Entity device) { + activitySample.addIntProperty("timestamp").notNull().primaryKey(); + Property deviceId = activitySample.addLongProperty("deviceId").primaryKey().getProperty(); + activitySample.addToOne(device, deviceId); Property userId = activitySample.addLongProperty("userId").getProperty(); activitySample.addToOne(user, userId); - Property deviceId = activitySample.addLongProperty("deviceId").getProperty(); - activitySample.addToOne(device, deviceId); - - Index indexUnique = new Index(); - indexUnique.addProperty(findProperty(activitySample, "timestamp")); - indexUnique.addProperty(deviceId); - indexUnique.makeUnique(); - activitySample.addIndex(indexUnique); } private static Property findProperty(Entity entity, String propertyName) { diff --git a/app/build.gradle b/app/build.gradle index b9e2ea4a..65373c94 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,8 +59,10 @@ dependencies { compile 'com.github.pfichtner:durationformatter:0.1.1' compile 'de.cketti.library.changelog:ckchangelog:1.2.2' compile 'net.e175.klaus:solarpositioning:0.0.9' - compile 'com.github.freeyourgadget:greendao:c3830951e5dd3d1e63d7bac600d5f773b81df363' + compile 'com.github.freeyourgadget:greendao:1998d7cd2d21f662c6044f6ccf3b3a251bbad341' compile 'com.github.woxthebox:draglistview:1.2.6' + +// compile project(":DaoCore") } preBuild.dependsOn(":GBDaoGenerator:genSources") diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java index 8f756b4b..6ecca503 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java @@ -146,8 +146,7 @@ public class GBApplication extends Application { } static void setupDatabase(Context context) { -// DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "test-db", null); - DBOpenHelper helper = new DBOpenHelper(context, "test-db4", null); + DBOpenHelper helper = new DBOpenHelper(context, "test-db5", null); SQLiteDatabase db = helper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); if (lockHandler == null) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/operations/FetchActivityOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/operations/FetchActivityOperation.java index 4814f97f..9fba71ff 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/operations/FetchActivityOperation.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/operations/FetchActivityOperation.java @@ -328,13 +328,12 @@ public class FetchActivityOperation extends AbstractMiBandOperation { } samples[minutes] = new MiBandActivitySample( - null, timestampInSeconds, + deviceId, + userId, intensity & 0xff, steps & 0xff, category & 0xff, - userId, - deviceId, heartrate & 0xff); samples[minutes].setProvider(provider); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java index 42acbcaf..02183fb8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java @@ -83,7 +83,7 @@ public class AppMessageHandlerMisfit extends AppMessageHandler { Long deviceId = DBHelper.getDevice(getDevice(), db.getDaoSession()).getId(); for (int i = 0; i < samples; i++) { short sample = buf.getShort(); - misfitSamples[i] = new PebbleMisfitSample(null, timestamp + i * 60, userId, deviceId, sample & 0xffff); + misfitSamples[i] = new PebbleMisfitSample(timestamp + i * 60, userId, deviceId, sample & 0xffff); misfitSamples[i].setProvider(sampleProvider); int steps = misfitSamples[i].getSteps(); totalSteps += steps; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java index 9b16cde9..d6e01890 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java @@ -114,7 +114,7 @@ public class AppMessageHandlerMorpheuz extends AppMessageHandler { Long userId = DBHelper.getUser(db.getDaoSession()).getId(); Long deviceId = DBHelper.getDevice(getDevice(), db.getDaoSession()).getId(); PebbleMorpheuzSampleProvider sampleProvider = new PebbleMorpheuzSampleProvider(getDevice(), db.getDaoSession()); - PebbleMorpheuzSample sample = new PebbleMorpheuzSample(null, recording_base_timestamp + index * 600, userId, deviceId, intensity); + PebbleMorpheuzSample sample = new PebbleMorpheuzSample(recording_base_timestamp + index * 600, userId, deviceId, intensity); sample.setProvider(sampleProvider); sampleProvider.addGBActivitySample(sample); } catch (Exception e) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthOverlayData.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthOverlayData.java index 83b8c916..e693895b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthOverlayData.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthOverlayData.java @@ -72,7 +72,7 @@ class DatalogSessionHealthOverlayData extends DatalogSessionPebbleHealth { List overlayList = new ArrayList<>(); for (OverlayRecord overlayRecord : overlayRecords) { - overlayList.add(new PebbleHealthActivityOverlay(null, userId, deviceId, overlayRecord.timestampStart, overlayRecord.timestampStart + overlayRecord.durationSeconds - 1, overlayRecord.type)); //TODO: consider if "-1" is what we really want + overlayList.add(new PebbleHealthActivityOverlay(overlayRecord.timestampStart, overlayRecord.timestampStart + overlayRecord.durationSeconds - 1, deviceId, userId, overlayRecord.type)); //TODO: consider if "-1" is what we really want } overlayDao.insertOrReplaceInTx(overlayList); } catch (Exception ex) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSleep.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSleep.java index bd1c15af..e57795b0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSleep.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSleep.java @@ -71,7 +71,7 @@ class DatalogSessionHealthSleep extends DatalogSessionPebbleHealth { List overlayList = new ArrayList<>(); for (SleepRecord sleepRecord : sleepRecords) { - overlayList.add(new PebbleHealthActivityOverlay(null, userId, deviceId, sleepRecord.bedTimeStart, sleepRecord.bedTimeEnd - 1, sleepRecord.type)); //TODO: consider if "-1" is what we really want + overlayList.add(new PebbleHealthActivityOverlay(sleepRecord.bedTimeStart, sleepRecord.bedTimeEnd - 1, deviceId, userId, sleepRecord.type)); //TODO: consider if "-1" is what we really want } overlayDao.insertOrReplaceInTx(overlayList); } catch (Exception ex) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java index 0ed128b8..f6b661c3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthSteps.java @@ -82,7 +82,6 @@ public class DatalogSessionHealthSteps extends DatalogSessionPebbleHealth { for (int j = 0; j < stepsRecords.length; j++) { StepsRecord stepsRecord = stepsRecords[j]; samples[j] = new PebbleHealthActivitySample( - null, stepsRecord.timestamp, userId, deviceId, null, // raw data here