From 0596c8038161fe5ce17ba7bf5392a4729be54f9b Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Sun, 19 Jun 2016 00:39:58 +0200 Subject: [PATCH] Some migration fixes especially: add unique index on samples using timestamp and device id (since composite primary keys are not fully supported yet) --- .../gadgetbridge/daogen/GBDaoGenerator.java | 11 +++++++++-- .../freeyourgadget/gadgetbridge/GBApplication.java | 2 +- .../gadgetbridge/activities/ControlCenter.java | 2 -- .../gadgetbridge/database/DBHelper.java | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java index 3f5f8850..63c8c9f1 100644 --- a/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java +++ b/GBDaoGenerator/src/nodomain/freeyourgadget/gadgetbridge/daogen/GBDaoGenerator.java @@ -17,6 +17,7 @@ package nodomain.freeyourgadget.gadgetbridge.daogen; import de.greenrobot.daogenerator.DaoGenerator; import de.greenrobot.daogenerator.Entity; +import de.greenrobot.daogenerator.Index; import de.greenrobot.daogenerator.Property; import de.greenrobot.daogenerator.Schema; @@ -33,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(10, MAIN_PACKAGE + ".entities"); + Schema schema = new Schema(7, MAIN_PACKAGE + ".entities"); addActivityDescription(schema); @@ -157,7 +158,7 @@ public class GBDaoGenerator { "intensity, are device specific. Normalized values can be retrieved through the\n" + "corresponding {@link SampleProvider}."); activitySample.addIdProperty(); - activitySample.addIntProperty("timestamp").notNull(); + Property timestamp = activitySample.addIntProperty("timestamp").notNull().getProperty(); activitySample.addIntProperty("rawIntensity").notNull(); activitySample.addIntProperty("steps").notNull(); activitySample.addIntProperty("rawKind").notNull(); @@ -165,6 +166,12 @@ public class GBDaoGenerator { activitySample.addToOne(user, userId); Property deviceId = activitySample.addLongProperty("deviceId").getProperty(); activitySample.addToOne(device, deviceId); + + Index indexUnique = new Index(); + indexUnique.addProperty(timestamp); + indexUnique.addProperty(deviceId); + indexUnique.makeUnique(); + activitySample.addIndex(indexUnique); } private static Entity addEntity(Schema schema, String className) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java index 34f6365c..cefb79b0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java @@ -157,7 +157,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-db2", null); + DBOpenHelper helper = new DBOpenHelper(context, "test-db4", null); SQLiteDatabase db = helper.getWritableDatabase(); DaoMaster daoMaster = new DaoMaster(db); if (lockHandler == null) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java index 8b1acb66..e63e00eb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ControlCenter.java @@ -4,7 +4,6 @@ import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; import android.app.ProgressDialog; -import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; @@ -327,7 +326,6 @@ public class ControlCenter extends GBActivity { @Override protected void onDestroy() { LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver); - unregisterReceiver(mReceiver); super.onDestroy(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java index 7b80a6d7..f33ca1ce 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DBHelper.java @@ -383,7 +383,7 @@ public class DBHelper { } newSamples.add(newSample); } - sampleProvider.getSampleDao().insertInTx(newSamples, true); + sampleProvider.getSampleDao().insertOrReplaceInTx(newSamples, true); } } }