From 6634302353c60d06d9f27a338c7c7e8b86bcf88b Mon Sep 17 00:00:00 2001 From: Thomas Kuehne Date: Mon, 4 Aug 2025 00:00:00 +0200 Subject: [PATCH] implement getAllDeviceDao to delete device specific data when deleting the device --- .../devices/banglejs/BangleJSCoordinator.java | 18 ++++++++++++++-- .../devices/id115/ID115Coordinator.java | 16 ++++++++++++-- .../devices/lefun/LefunDeviceCoordinator.java | 21 +++++++++++++++++-- .../WatchXPlusDeviceCoordinator.java | 18 ++++++++++++++-- .../AbstractMijiaLywsdCoordinator.java | 17 ++++++++++++++- .../pinetime/PineTimeJFCoordinator.java | 16 ++++++++++++-- .../sonyswr12/SonySWR12DeviceCoordinator.java | 16 ++++++++++++-- .../devices/tlw64/TLW64Coordinator.java | 16 ++++++++++++-- .../devices/xwatch/XWatchCoordinator.java | 16 ++++++++++++-- .../devices/zetime/ZeTimeCoordinator.java | 16 ++++++++++++-- 10 files changed, 151 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java index 4401815d7c..f86cafe0aa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/banglejs/BangleJSCoordinator.java @@ -1,6 +1,6 @@ -/* Copyright (C) 2019-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, +/* Copyright (C) 2019-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, Gabriele Monaco, Ganblejs, glemco, Gordon Williams, José Rebelo, LukasEdl, - Petr Vaněk + Petr Vaněk, Thomas Kuehne This file is part of Gadgetbridge. @@ -32,16 +32,22 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.BuildConfig; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.SleepAsAndroidFeature; +import nodomain.freeyourgadget.gadgetbridge.entities.BangleJSActivitySampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummaryDao; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; @@ -271,4 +277,12 @@ public class BangleJSCoordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_banglejs; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(2); + map.put(session.getBangleJSActivitySampleDao(), BangleJSActivitySampleDao.Properties.DeviceId); + map.put(session.getBaseActivitySummaryDao(), BaseActivitySummaryDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java index 38115d195a..4eccca5632 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/id115/ID115Coordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2018-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, - Daniele Gobbetti, José Rebelo, Petr Vaněk, Vadim Kaushan +/* Copyright (C) 2018-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, + Daniele Gobbetti, José Rebelo, Petr Vaněk, Vadim Kaushan, Thomas Kuehne This file is part of Gadgetbridge. @@ -22,13 +22,18 @@ import android.os.ParcelUuid; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import androidx.annotation.NonNull; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.ID115ActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; @@ -100,4 +105,11 @@ public class ID115Coordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_h30_h10; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getID115ActivitySampleDao(), ID115ActivitySampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java index 8256f00595..a07f5d35ca 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lefun/LefunDeviceCoordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2020-2024 Damien Gaignon, Daniel Dakhno, José Rebelo, - Petr Vaněk, Yukai Li +/* Copyright (C) 2020-2025 Damien Gaignon, Daniel Dakhno, José Rebelo, + Petr Vaněk, Yukai Li, Thomas Kuehne This file is part of Gadgetbridge. @@ -19,10 +19,15 @@ package nodomain.freeyourgadget.gadgetbridge.devices.lefun; import androidx.annotation.NonNull; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.LefunActivitySampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.LefunBiometricSampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.LefunSleepSampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; @@ -34,6 +39,9 @@ import static nodomain.freeyourgadget.gadgetbridge.devices.lefun.LefunConstants. import static nodomain.freeyourgadget.gadgetbridge.devices.lefun.LefunConstants.MANUFACTURER_NAME; import static nodomain.freeyourgadget.gadgetbridge.devices.lefun.LefunConstants.NUM_ALARM_SLOTS; +import java.util.HashMap; +import java.util.Map; + /** * Device coordinator for Lefun band */ @@ -141,4 +149,13 @@ public class LefunDeviceCoordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_h30_h10; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(3); + map.put(session.getLefunActivitySampleDao(), LefunActivitySampleDao.Properties.DeviceId); + map.put(session.getLefunBiometricSampleDao(), LefunBiometricSampleDao.Properties.DeviceId); + map.put(session.getLefunSleepSampleDao(), LefunSleepSampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java index e73c722111..cf7e7a1cad 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/lenovo/watchxplus/WatchXPlusDeviceCoordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2019-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, - José Rebelo, mamucho, mkusnierz, Petr Vaněk +/* Copyright (C) 2019-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, + José Rebelo, mamucho, mkusnierz, Petr Vaněk, Thomas Kuehne This file is part of Gadgetbridge. @@ -37,7 +37,11 @@ import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.EnumSet; +import java.util.HashMap; +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.devicesettings.DeviceSettingsPreferenceConst; @@ -46,6 +50,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.lenovo.LenovoWatchCalibrationActivity; import nodomain.freeyourgadget.gadgetbridge.devices.lenovo.LenovoWatchPairingActivity; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.WatchXPlusActivitySampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.WatchXPlusHealthActivityOverlayDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.impl.GBDeviceCandidate; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; @@ -277,4 +283,12 @@ public class WatchXPlusDeviceCoordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_watchxplus; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(2); + map.put(session.getWatchXPlusActivitySampleDao(), WatchXPlusActivitySampleDao.Properties.DeviceId); + map.put(session.getWatchXPlusHealthActivityOverlayDao(), WatchXPlusHealthActivityOverlayDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd/AbstractMijiaLywsdCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd/AbstractMijiaLywsdCoordinator.java index a15f957899..f3296c452b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd/AbstractMijiaLywsdCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/mijia_lywsd/AbstractMijiaLywsdCoordinator.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2023-2024 José Rebelo +/* Copyright (C) 2023-2025 José Rebelo, Thomas Kuehne This file is part of Gadgetbridge. @@ -18,11 +18,18 @@ package nodomain.freeyourgadget.gadgetbridge.devices.mijia_lywsd; import androidx.annotation.NonNull; +import java.util.HashMap; +import java.util.Map; + +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.MijiaLywsdHistoricSampleDao; +import nodomain.freeyourgadget.gadgetbridge.entities.MijiaLywsdRealtimeSampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.TemperatureSample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -104,4 +111,12 @@ public abstract class AbstractMijiaLywsdCoordinator extends AbstractBLEDeviceCoo } public abstract boolean supportsSetTime(); + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(2); + map.put(session.getMijiaLywsdHistoricSampleDao(), MijiaLywsdHistoricSampleDao.Properties.DeviceId); + map.put(session.getMijiaLywsdRealtimeSampleDao(), MijiaLywsdRealtimeSampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java index ec5058a7ee..f3b0ca399d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/pinetime/PineTimeJFCoordinator.java @@ -1,6 +1,6 @@ -/* Copyright (C) 2020-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, +/* Copyright (C) 2020-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, Davis Mosenkovs, ITCactus, José Rebelo, Patric Gruber, Petr Vaněk, Taavi - Eomäe, uli + Eomäe, uli, Thomas Kuehne This file is part of Gadgetbridge. @@ -23,13 +23,18 @@ import android.net.Uri; import androidx.annotation.NonNull; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.InstallHandler; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.PineTimeActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -130,4 +135,11 @@ public class PineTimeJFCoordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_pinetime; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getPineTimeActivitySampleDao(), PineTimeActivitySampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java index f00fad1225..7cf9441efa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/sonyswr12/SonySWR12DeviceCoordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2020-2024 Damien Gaignon, Daniel Dakhno, José Rebelo, - opavlov, Petr Vaněk +/* Copyright (C) 2020-2025 Damien Gaignon, Daniel Dakhno, José Rebelo, + opavlov, Petr Vaněk, Thomas Kuehne This file is part of Gadgetbridge. @@ -19,12 +19,17 @@ package nodomain.freeyourgadget.gadgetbridge.devices.sonyswr12; import androidx.annotation.NonNull; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.SonySWR12SampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -91,4 +96,11 @@ public class SonySWR12DeviceCoordinator extends AbstractBLEDeviceCoordinator { public int getDeviceNameResource() { return R.string.devicetype_sonyswr12; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getSonySWR12SampleDao(), SonySWR12SampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java index 597ac26282..4a6f4cd050 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/tlw64/TLW64Coordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2020-2024 115ek, Damien Gaignon, Daniel Dakhno, José - Rebelo, Petr Vaněk +/* Copyright (C) 2020-2025 115ek, Damien Gaignon, Daniel Dakhno, José + Rebelo, Petr Vaněk, Thomas Kuehne This file is part of Gadgetbridge. @@ -20,12 +20,17 @@ package nodomain.freeyourgadget.gadgetbridge.devices.tlw64; import androidx.annotation.NonNull; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.TLW64ActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -87,4 +92,11 @@ public class TLW64Coordinator extends AbstractBLEDeviceCoordinator { public int getDeviceNameResource() { return R.string.devicetype_tlw64; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getTLW64ActivitySampleDao(), TLW64ActivitySampleDao.Properties.DeviceId); + return map; + } } \ No newline at end of file diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java index 4766916614..cbcd2edf07 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/xwatch/XWatchCoordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2018-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, - Daniele Gobbetti, José Rebelo, ladbsoft, Petr Vaněk +/* Copyright (C) 2018-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, + Daniele Gobbetti, José Rebelo, ladbsoft, Petr Vaněk, Thomas Kuehne This file is part of Gadgetbridge. @@ -19,12 +19,17 @@ package nodomain.freeyourgadget.gadgetbridge.devices.xwatch; import androidx.annotation.NonNull; +import java.util.HashMap; +import java.util.Map; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.XWatchActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -71,4 +76,11 @@ public class XWatchCoordinator extends AbstractBLEDeviceCoordinator { public int getDeviceNameResource() { return R.string.devicetype_xwatch; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getXWatchActivitySampleDao(), XWatchActivitySampleDao.Properties.DeviceId); + return map; + } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java index 3aab3d2eee..f65952363e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/zetime/ZeTimeCoordinator.java @@ -1,5 +1,5 @@ -/* Copyright (C) 2018-2024 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, - Daniele Gobbetti, José Rebelo, Petr Vaněk, Sebastian Kranz +/* Copyright (C) 2018-2025 Andreas Shimokawa, Damien Gaignon, Daniel Dakhno, + Daniele Gobbetti, José Rebelo, Petr Vaněk, Sebastian Kranz, Thomas Kuehne This file is part of Gadgetbridge. @@ -20,9 +20,13 @@ package nodomain.freeyourgadget.gadgetbridge.devices.zetime; import androidx.annotation.NonNull; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Pattern; +import de.greenrobot.dao.AbstractDao; +import de.greenrobot.dao.Property; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettings; import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpecificSettingsCustomizer; @@ -31,6 +35,7 @@ import nodomain.freeyourgadget.gadgetbridge.capabilities.HeartRateCapability; import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; +import nodomain.freeyourgadget.gadgetbridge.entities.ZeTimeActivitySampleDao; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample; import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport; @@ -195,4 +200,11 @@ public class ZeTimeCoordinator extends AbstractBLEDeviceCoordinator { public int getDefaultIconResource() { return R.drawable.ic_device_zetime; } + + @Override + public Map, Property> getAllDeviceDao(@NonNull final DaoSession session) { + Map, Property> map = new HashMap<>(1); + map.put(session.getZeTimeActivitySampleDao(), ZeTimeActivitySampleDao.Properties.DeviceId); + return map; + } }