diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/AbstractMoyoungDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/AbstractMoyoungDeviceCoordinator.java index 40aac713dd..b9b5fae28f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/AbstractMoyoungDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/moyoung/AbstractMoyoungDeviceCoordinator.java @@ -32,7 +32,6 @@ import java.util.Map; import de.greenrobot.dao.AbstractDao; import de.greenrobot.dao.Property; -import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen; @@ -56,7 +55,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSett import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingTimeRange; import nodomain.freeyourgadget.gadgetbridge.devices.moyoung.settings.MoyoungSettingUserInfo; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; -import nodomain.freeyourgadget.gadgetbridge.entities.Device; import nodomain.freeyourgadget.gadgetbridge.entities.MoyoungActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.MoyoungBloodPressureSampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.MoyoungHeartRateSampleDao; @@ -72,6 +70,17 @@ import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.moyoung.MoyoungDeviceSupport; public abstract class AbstractMoyoungDeviceCoordinator extends AbstractBLEDeviceCoordinator { + @Override + public Map, Property> getAllDeviceDao( @NonNull final DaoSession session) { + return new HashMap<>() {{ + put(session.getMoyoungActivitySampleDao(), MoyoungActivitySampleDao.Properties.DeviceId); + put(session.getMoyoungHeartRateSampleDao(), MoyoungHeartRateSampleDao.Properties.DeviceId); + put(session.getMoyoungSpo2SampleDao(), MoyoungSpo2SampleDao.Properties.DeviceId); + put(session.getMoyoungBloodPressureSampleDao(), MoyoungBloodPressureSampleDao.Properties.DeviceId); + put(session.getMoyoungSleepStageSampleDao(), MoyoungSleepStageSampleDao.Properties.DeviceId); + put(session.getMoyoungStressSampleDao(), MoyoungStressSampleDao.Properties.DeviceId); + }}; + } @NonNull @Override @@ -92,26 +101,6 @@ public abstract class AbstractMoyoungDeviceCoordinator extends AbstractBLEDevice return BONDING_STYLE_LAZY; } - @Override - protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - final Long deviceId = device.getId(); - - final Map, Property> daoMap = new HashMap<>() {{ - put(session.getMoyoungActivitySampleDao(), MoyoungActivitySampleDao.Properties.DeviceId); - put(session.getMoyoungHeartRateSampleDao(), MoyoungHeartRateSampleDao.Properties.DeviceId); - put(session.getMoyoungSpo2SampleDao(), MoyoungSpo2SampleDao.Properties.DeviceId); - put(session.getMoyoungBloodPressureSampleDao(), MoyoungBloodPressureSampleDao.Properties.DeviceId); - put(session.getMoyoungSleepStageSampleDao(), MoyoungSleepStageSampleDao.Properties.DeviceId); - put(session.getMoyoungStressSampleDao(), MoyoungStressSampleDao.Properties.DeviceId); - }}; - - for (final Map.Entry, Property> e : daoMap.entrySet()) { - e.getKey().queryBuilder() - .where(e.getValue().eq(deviceId)) - .buildDelete().executeDeleteWithoutDetachingEntities(); - } - } - @Override public boolean supportsActivityDataFetching() { return true; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java index cebc3b3329..c00f1cef33 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/qhybrid/QHybridCoordinator.java @@ -34,8 +34,12 @@ import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.appmanager.AppManagerActivity; @@ -47,6 +51,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.HybridHRActivitySampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.HybridHRSpo2SampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; @@ -63,6 +69,14 @@ import nodomain.freeyourgadget.gadgetbridge.util.Version; public class QHybridCoordinator extends AbstractBLEDeviceCoordinator { private static final Logger LOG = LoggerFactory.getLogger(QHybridCoordinator.class); + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + return new HashMap<>() {{ + put(session.getHybridHRActivitySampleDao(), HybridHRActivitySampleDao.Properties.DeviceId); + put(session.getHybridHRSpo2SampleDao(), HybridHRSpo2SampleDao.Properties.DeviceId); + }}; + } + @Override public boolean supports(GBDeviceCandidate candidate) { for(ParcelUuid uuid : candidate.getServiceUuids()){ diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/yawell/ring/AbstractYawellRingCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/yawell/ring/AbstractYawellRingCoordinator.java index 71538eadd1..651c8443b7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/yawell/ring/AbstractYawellRingCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/yawell/ring/AbstractYawellRingCoordinator.java @@ -18,9 +18,6 @@ package nodomain.freeyourgadget.gadgetbridge.devices.yawell.ring; import androidx.annotation.NonNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -28,7 +25,6 @@ import java.util.Map; import de.greenrobot.dao.AbstractDao; import de.greenrobot.dao.Property; -import nodomain.freeyourgadget.gadgetbridge.GBException; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsScreen; @@ -51,7 +47,6 @@ import nodomain.freeyourgadget.gadgetbridge.entities.ColmiSleepStageSampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.ColmiSpo2SampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.ColmiStressSampleDao; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; -import nodomain.freeyourgadget.gadgetbridge.entities.Device; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.model.HrvSummarySample; @@ -63,13 +58,9 @@ import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; import nodomain.freeyourgadget.gadgetbridge.service.devices.yawell.ring.YawellRingDeviceSupport; public abstract class AbstractYawellRingCoordinator extends AbstractBLEDeviceCoordinator { - private static final Logger LOG = LoggerFactory.getLogger(AbstractYawellRingCoordinator.class); - @Override - protected void deleteDevice(@NonNull GBDevice gbDevice, @NonNull Device device, @NonNull DaoSession session) throws GBException { - final Long deviceId = device.getId(); - - final Map, Property> daoMap = new HashMap, Property>() {{ + public Map, Property> getAllDeviceDao( @NonNull final DaoSession session) { + return new HashMap<>() {{ put(session.getColmiActivitySampleDao(), ColmiActivitySampleDao.Properties.DeviceId); put(session.getColmiHeartRateSampleDao(), ColmiHeartRateSampleDao.Properties.DeviceId); put(session.getColmiSpo2SampleDao(), ColmiSpo2SampleDao.Properties.DeviceId); @@ -79,12 +70,6 @@ public abstract class AbstractYawellRingCoordinator extends AbstractBLEDeviceCoo put(session.getColmiHrvSummarySampleDao(), ColmiHrvSummarySampleDao.Properties.DeviceId); put(session.getColmiHrvValueSampleDao(), ColmiHrvValueSampleDao.Properties.DeviceId); }}; - - for (final Map.Entry, Property> e : daoMap.entrySet()) { - e.getKey().queryBuilder() - .where(e.getValue().eq(deviceId)) - .buildDelete().executeDeleteWithoutDetachingEntities(); - } } @Override