"Ported" to AbstractSampleProvider

This commit is contained in:
cpfeiffer 2016-05-08 23:14:58 +02:00
parent 21cafa83d8
commit 9532fc879f
8 changed files with 78 additions and 11 deletions

View File

@ -5,12 +5,22 @@ import java.util.List;
import de.greenrobot.dao.AbstractDao; import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.query.QueryBuilder; import de.greenrobot.dao.query.QueryBuilder;
import de.greenrobot.dao.query.WhereCondition; import de.greenrobot.dao.query.WhereCondition;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.MiBandActivitySampleDao;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
public abstract class AbstractSampleProvider<T extends ActivitySample> implements SampleProvider { public abstract class AbstractSampleProvider<T extends ActivitySample> implements SampleProvider {
private static final WhereCondition[] NO_CONDITIONS = new WhereCondition[0]; private static final WhereCondition[] NO_CONDITIONS = new WhereCondition[0];
private final DaoSession mSession;
protected AbstractSampleProvider(DaoSession session) {
mSession = session;
}
public DaoSession getmSession() {
return mSession;
}
public List<T> getAllActivitySamples(int timestamp_from, int timestamp_to) { public List<T> getAllActivitySamples(int timestamp_from, int timestamp_to) {
return getGBActivitySamples(timestamp_from, timestamp_to, ActivityKind.TYPE_ALL); return getGBActivitySamples(timestamp_from, timestamp_to, ActivityKind.TYPE_ALL);

View File

@ -24,7 +24,7 @@ public class MiBandCoordinator extends AbstractDeviceCoordinator {
private final MiBandSampleProvider sampleProvider; private final MiBandSampleProvider sampleProvider;
public MiBandCoordinator() { public MiBandCoordinator() {
sampleProvider = new MiBandSampleProvider(); sampleProvider = new MiBandSampleProvider(GBApplication.getDaoSession());
} }
@Override @Override

View File

@ -1,9 +1,14 @@
package nodomain.freeyourgadget.gadgetbridge.devices.miband; package nodomain.freeyourgadget.gadgetbridge.devices.miband;
import de.greenrobot.dao.AbstractDao;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; 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; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
public class MiBandSampleProvider implements SampleProvider { public class MiBandSampleProvider extends AbstractSampleProvider<MiBandActivitySample> {
public static final int TYPE_DEEP_SLEEP = 5; public static final int TYPE_DEEP_SLEEP = 5;
public static final int TYPE_LIGHT_SLEEP = 4; public static final int TYPE_LIGHT_SLEEP = 4;
public static final int TYPE_ACTIVITY = -1; public static final int TYPE_ACTIVITY = -1;
@ -22,6 +27,10 @@ public class MiBandSampleProvider implements SampleProvider {
// maybe this should be configurable 256 seems way off, though. // maybe this should be configurable 256 seems way off, though.
private final float movementDivisor = 180.0f; //256.0f; private final float movementDivisor = 180.0f; //256.0f;
protected MiBandSampleProvider(DaoSession session) {
super(session);
}
@Override @Override
public int normalizeType(int rawType) { public int normalizeType(int rawType) {
switch (rawType) { switch (rawType) {
@ -67,4 +76,9 @@ public class MiBandSampleProvider implements SampleProvider {
public int getID() { public int getID() {
return SampleProvider.PROVIDER_MIBAND; return SampleProvider.PROVIDER_MIBAND;
} }
@Override
protected AbstractDao<MiBandActivitySample, ?> getSampleDao() {
return getmSession().getMiBandActivitySampleDao();
}
} }

View File

@ -1,15 +1,23 @@
package nodomain.freeyourgadget.gadgetbridge.devices.pebble; package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import de.greenrobot.dao.AbstractDao;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.PebbleActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
public class HealthSampleProvider implements SampleProvider { public class HealthSampleProvider extends AbstractSampleProvider<PebbleActivitySample> {
public static final int TYPE_DEEP_SLEEP = 5; public static final int TYPE_DEEP_SLEEP = 5;
public static final int TYPE_LIGHT_SLEEP = 4; public static final int TYPE_LIGHT_SLEEP = 4;
public static final int TYPE_ACTIVITY = -1; public static final int TYPE_ACTIVITY = -1;
protected final float movementDivisor = 8000f; protected final float movementDivisor = 8000f;
protected HealthSampleProvider(DaoSession session) {
super(session);
}
@Override @Override
public int normalizeType(int rawType) { public int normalizeType(int rawType) {
switch (rawType) { switch (rawType) {
@ -49,4 +57,9 @@ public class HealthSampleProvider implements SampleProvider {
public int getID() { public int getID() {
return SampleProvider.PROVIDER_PEBBLE_HEALTH; return SampleProvider.PROVIDER_PEBBLE_HEALTH;
} }
@Override
protected AbstractDao<PebbleActivitySample, ?> getSampleDao() {
return getmSession().getPebbleActivitySampleDao();
}
} }

View File

@ -1,11 +1,19 @@
package nodomain.freeyourgadget.gadgetbridge.devices.pebble; package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import de.greenrobot.dao.AbstractDao;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.PebbleActivitySample;
public class MisfitSampleProvider implements SampleProvider { public class MisfitSampleProvider extends AbstractSampleProvider<PebbleActivitySample> {
protected final float movementDivisor = 300f; protected final float movementDivisor = 300f;
protected MisfitSampleProvider(DaoSession session) {
super(session);
}
@Override @Override
public int normalizeType(int rawType) { public int normalizeType(int rawType) {
return (int) rawType; return (int) rawType;
@ -27,4 +35,9 @@ public class MisfitSampleProvider implements SampleProvider {
public int getID() { public int getID() {
return SampleProvider.PROVIDER_PEBBLE_MISFIT; return SampleProvider.PROVIDER_PEBBLE_MISFIT;
} }
@Override
protected AbstractDao<PebbleActivitySample, ?> getSampleDao() {
return getmSession().getPebbleActivitySampleDao();
}
} }

View File

@ -1,9 +1,13 @@
package nodomain.freeyourgadget.gadgetbridge.devices.pebble; package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import de.greenrobot.dao.AbstractDao;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.PebbleActivitySample;
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind; import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
public class MorpheuzSampleProvider implements SampleProvider { public class MorpheuzSampleProvider extends AbstractSampleProvider<PebbleActivitySample> {
// raw types // raw types
public static final int TYPE_DEEP_SLEEP = 5; public static final int TYPE_DEEP_SLEEP = 5;
public static final int TYPE_LIGHT_SLEEP = 4; public static final int TYPE_LIGHT_SLEEP = 4;
@ -12,6 +16,10 @@ public class MorpheuzSampleProvider implements SampleProvider {
protected float movementDivisor = 5000f; protected float movementDivisor = 5000f;
protected MorpheuzSampleProvider(DaoSession session) {
super(session);
}
@Override @Override
public int normalizeType(int rawType) { public int normalizeType(int rawType) {
switch (rawType) { switch (rawType) {
@ -51,4 +59,9 @@ public class MorpheuzSampleProvider implements SampleProvider {
public int getID() { public int getID() {
return SampleProvider.PROVIDER_PEBBLE_MORPHEUZ; return SampleProvider.PROVIDER_PEBBLE_MORPHEUZ;
} }
@Override
protected AbstractDao<PebbleActivitySample, ?> getSampleDao() {
return getmSession().getPebbleActivitySampleDao();
}
} }

View File

@ -10,6 +10,7 @@ import nodomain.freeyourgadget.gadgetbridge.activities.AppManagerActivity;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractDeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate;
import nodomain.freeyourgadget.gadgetbridge.model.DeviceType; import nodomain.freeyourgadget.gadgetbridge.model.DeviceType;
@ -46,18 +47,19 @@ public class PebbleCoordinator extends AbstractDeviceCoordinator {
@Override @Override
public SampleProvider getSampleProvider() { public SampleProvider getSampleProvider() {
Prefs prefs = GBApplication.getPrefs(); Prefs prefs = GBApplication.getPrefs();
DaoSession session = GBApplication.getDaoSession();
int activityTracker = prefs.getInt("pebble_activitytracker", SampleProvider.PROVIDER_PEBBLE_HEALTH); int activityTracker = prefs.getInt("pebble_activitytracker", SampleProvider.PROVIDER_PEBBLE_HEALTH);
switch (activityTracker) { switch (activityTracker) {
case SampleProvider.PROVIDER_PEBBLE_HEALTH: case SampleProvider.PROVIDER_PEBBLE_HEALTH:
return new HealthSampleProvider(); return new HealthSampleProvider(session);
case SampleProvider.PROVIDER_PEBBLE_MISFIT: case SampleProvider.PROVIDER_PEBBLE_MISFIT:
return new MisfitSampleProvider(); return new MisfitSampleProvider(session);
case SampleProvider.PROVIDER_PEBBLE_MORPHEUZ: case SampleProvider.PROVIDER_PEBBLE_MORPHEUZ:
return new MorpheuzSampleProvider(); return new MorpheuzSampleProvider(session);
case SampleProvider.PROVIDER_PEBBLE_GADGETBRIDGE: case SampleProvider.PROVIDER_PEBBLE_GADGETBRIDGE:
return new PebbleGadgetBridgeSampleProvider(); return new PebbleGadgetBridgeSampleProvider(session);
default: default:
return new HealthSampleProvider(); return new HealthSampleProvider(session);
} }
} }

View File

@ -1,9 +1,11 @@
package nodomain.freeyourgadget.gadgetbridge.devices.pebble; package nodomain.freeyourgadget.gadgetbridge.devices.pebble;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
public class PebbleGadgetBridgeSampleProvider extends MorpheuzSampleProvider { public class PebbleGadgetBridgeSampleProvider extends MorpheuzSampleProvider {
public PebbleGadgetBridgeSampleProvider() { public PebbleGadgetBridgeSampleProvider(DaoSession session) {
super(session);
movementDivisor = 63.0f; movementDivisor = 63.0f;
} }