diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DaoHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DaoHandler.java index 6887ac12..efb427e8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DaoHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/database/DaoHandler.java @@ -5,6 +5,7 @@ import android.database.sqlite.SQLiteOpenHelper; import java.util.List; +import de.greenrobot.dao.AbstractDao; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoMaster; @@ -56,8 +57,10 @@ public class DaoHandler implements DBHandler { } @Override - public void addGBActivitySamples(ActivitySample[] activitySamples) { - + public void addGBActivitySamples(ActivitySample[] activitySamples, AbstractDao dao) { + for (ActivitySample sample : activitySamples) { + dao.insert(sample); + } } @Override diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractSampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractSampleProvider.java index dc384d99..e13e21d5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractSampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractSampleProvider.java @@ -18,7 +18,7 @@ public abstract class AbstractSampleProvider implement mSession = session; } - public DaoSession getmSession() { + public DaoSession getSession() { return mSession; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandSampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandSampleProvider.java index 360f7729..c77e9bdb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandSampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/miband/MiBandSampleProvider.java @@ -5,7 +5,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySample; -import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; public class MiBandSampleProvider extends AbstractSampleProvider { @@ -27,7 +26,7 @@ public class MiBandSampleProvider extends AbstractSampleProvider getSampleDao() { - return getmSession().getMiBandActivitySampleDao(); + return getSession().getMiBandActivitySampleDao(); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/HealthSampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/HealthSampleProvider.java index 7fcfd167..d46ad72b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/HealthSampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/HealthSampleProvider.java @@ -14,7 +14,7 @@ public class HealthSampleProvider extends AbstractSampleProvider getSampleDao() { - return getmSession().getPebbleActivitySampleDao(); + return getSession().getPebbleActivitySampleDao(); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MisfitSampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MisfitSampleProvider.java index e5d1bea6..4f0fdbcb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MisfitSampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MisfitSampleProvider.java @@ -10,7 +10,7 @@ public class MisfitSampleProvider extends AbstractSampleProvider getSampleDao() { - return getmSession().getPebbleActivitySampleDao(); + return getSession().getPebbleActivitySampleDao(); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MorpheuzSampleProvider.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MorpheuzSampleProvider.java index 8c65291d..4aae5c4a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MorpheuzSampleProvider.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pebble/MorpheuzSampleProvider.java @@ -62,6 +62,6 @@ public class MorpheuzSampleProvider extends AbstractSampleProvider getSampleDao() { - return getmSession().getPebbleActivitySampleDao(); + return getSession().getPebbleActivitySampleDao(); } } 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 183999f3..08185780 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 @@ -23,6 +23,10 @@ import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandDateConverter; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandSampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandService; +import nodomain.freeyourgadget.gadgetbridge.entities.AbstractActivitySample; +import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySample; +import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.btle.TransactionBuilder; @@ -316,8 +320,10 @@ public class FetchActivityOperation extends AbstractMiBandOperation { throw new IllegalStateException("Unexpected data, progress should be mutiple of " + bpm + ": " + activityStruct.activityDataHolderProgress); } int numSamples = activityStruct.activityDataHolderProgress / bpm; - ActivitySample[] samples = new ActivitySample[numSamples]; - SampleProvider sampleProvider = new MiBandSampleProvider(); + AbstractActivitySample[] samples = new AbstractActivitySample[numSamples]; + DaoSession daoSession = GBApplication.getDaoSession(); + SampleProvider sampleProvider = new MiBandSampleProvider(daoSession); + MiBandActivitySampleDao dao = daoSession.getMiBandActivitySampleDao(); for (int i = 0; i < activityStruct.activityDataHolderProgress; i += bpm) { category = activityStruct.activityDataHolder[i]; @@ -328,19 +334,25 @@ public class FetchActivityOperation extends AbstractMiBandOperation { LOG.debug("heartrate received: " + (heartrate & 0xff)); } - samples[minutes] = new GBActivitySample( - sampleProvider, + Long userId = null; + Long deviceId = null; + + samples[minutes] = new MiBandActivitySample( + null, timestampInSeconds, intensity & 0xff, steps & 0xff, category & 0xff, + userId, + deviceId, heartrate & 0xff); + samples[minutes].setProvider(sampleProvider); // next minute minutes++; timestampInSeconds += 60; } - dbHandler.addGBActivitySamples(samples); + dbHandler.addGBActivitySamples(samples, dao); } finally { activityStruct.bufferFlushed(minutes); } 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 daa0b020..c285060c 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 @@ -39,7 +39,7 @@ public class AppMessageHandlerMisfit extends AppMessageHandler { super(uuid, pebbleProtocol); } - private final MisfitSampleProvider sampleProvider = new MisfitSampleProvider(); + private final MisfitSampleProvider sampleProvider = new MisfitSampleProvider(GBApplication.getDaoSession()); @Override public GBDeviceEvent[] handleMessage(ArrayList> pairs) { 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 7d06876f..21468a43 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 @@ -67,7 +67,7 @@ class DatalogSessionHealthSleep extends DatalogSession { private boolean store84(SleepRecord84[] sleepRecords) { DBHandler dbHandler = null; - SampleProvider sampleProvider = new HealthSampleProvider(); + SampleProvider sampleProvider = new HealthSampleProvider(GBApplication.getDaoSession()); try { dbHandler = GBApplication.acquireDB(); int latestTimestamp = dbHandler.fetchLatestTimestamp(sampleProvider); @@ -120,7 +120,7 @@ class DatalogSessionHealthSleep extends DatalogSession { private boolean store83(SleepRecord83[] sleepRecords) { DBHandler dbHandler = null; - SampleProvider sampleProvider = new HealthSampleProvider(); + SampleProvider sampleProvider = new HealthSampleProvider(GBApplication.getDaoSession()); GB.toast("Deep sleep is supported only from firmware 3.11 onwards.", Toast.LENGTH_LONG, GB.INFO); try { dbHandler = GBApplication.acquireDB(); 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 f89f0363..9c604e07 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 @@ -71,7 +71,7 @@ public class DatalogSessionHealthSteps extends DatalogSession { private void store(StepsRecord[] stepsRecords) { DBHandler dbHandler = null; - SampleProvider sampleProvider = new HealthSampleProvider(); + SampleProvider sampleProvider = new HealthSampleProvider(GBApplication.getDaoSession()); ActivitySample[] samples = new ActivitySample[stepsRecords.length]; for (int j = 0; j < stepsRecords.length; j++) {