From 69933c5e92f876ea0c378f0365c5c795e1c43231 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 14 Aug 2016 22:33:41 +0200 Subject: [PATCH] db refactoring: depend on latest -fyg patched greendao, change column order again (primary keys first), remove index from pebble health overlay also --- GBDaoGenerator/build.gradle | 3 +- .../gadgetbridge/daogen/GBDaoGenerator.java | 30 +++++-------------- app/build.gradle | 4 ++- .../operations/FetchActivityOperation.java | 4 +-- .../DatalogSessionHealthOverlayData.java | 2 +- .../pebble/DatalogSessionHealthSleep.java | 2 +- 6 files changed, 17 insertions(+), 28 deletions(-) diff --git a/GBDaoGenerator/build.gradle b/GBDaoGenerator/build.gradle index e95e421a86..756314f813 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 05f6f387dc..313d9a47d1 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); @@ -136,7 +136,6 @@ public class GBDaoGenerator { activitySample.addIntProperty("rawIntensity").notNull(); activitySample.addIntProperty("steps").notNull(); activitySample.addIntProperty("rawKind").notNull(); - addCommonActivitySampleProperties2(activitySample, user, device); addHeartRateProperties(activitySample); return activitySample; } @@ -148,7 +147,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,29 +156,21 @@ public class GBDaoGenerator { private static Entity addPebbleHealthActivityKindOverlay(Schema schema, Entity user, Entity device) { Entity activityOverlay = addEntity(schema, "PebbleHealthActivityOverlay"); - Property userId = activityOverlay.addLongProperty("userId").getProperty(); - activityOverlay.addToOne(user, userId); - Property deviceId = activityOverlay.addLongProperty("deviceId").getProperty(); + activityOverlay.addIntProperty("timestampFrom").notNull().primaryKey(); + activityOverlay.addIntProperty("timestampTo").notNull().primaryKey(); + Property deviceId = activityOverlay.addLongProperty("deviceId").primaryKey().getProperty(); activityOverlay.addToOne(device, deviceId); - Property timestampFrom = activityOverlay.addIntProperty("timestampFrom").notNull().getProperty(); - Property timestampTo = activityOverlay.addIntProperty("timestampTo").notNull().getProperty(); + Property userId = activityOverlay.addLongProperty("userId").getProperty(); + activityOverlay.addToOne(user, userId); 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; } @@ -188,7 +178,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; } @@ -201,13 +190,10 @@ public class GBDaoGenerator { "intensity, are device specific. Normalized values can be retrieved through the\n" + "corresponding {@link SampleProvider}."); activitySample.addIntProperty("timestamp").notNull().primaryKey(); - } - - private static void addCommonActivitySampleProperties2(Entity activitySample, Entity user, Entity device) { - Property userId = activitySample.addLongProperty("userId").getProperty(); - activitySample.addToOne(user, userId); Property deviceId = activitySample.addLongProperty("deviceId").primaryKey().getProperty(); activitySample.addToOne(device, deviceId); + Property userId = activitySample.addLongProperty("userId").getProperty(); + activitySample.addToOne(user, userId); } private static Property findProperty(Entity entity, String propertyName) { diff --git a/app/build.gradle b/app/build.gradle index b9e2ea4ad2..65373c9496 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/service/devices/miband/operations/FetchActivityOperation.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/miband/operations/FetchActivityOperation.java index d058ae8960..9fba71ff32 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 @@ -329,11 +329,11 @@ public class FetchActivityOperation extends AbstractMiBandOperation { samples[minutes] = new MiBandActivitySample( 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/DatalogSessionHealthOverlayData.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/DatalogSessionHealthOverlayData.java index 31f032c2ac..e693895b76 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(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 8c8e475a7b..e57795b0ff 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(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) {