persistence: replace calls to persistForDevice with persistSamples

This commit is contained in:
Thomas Kuehne
2026-05-29 01:31:10 +00:00
parent 1569e05acb
commit 3e9c10c0d7
15 changed files with 23 additions and 29 deletions
@@ -211,7 +211,9 @@ public abstract class AbstractTimeSampleProvider<T extends AbstractTimeSample> i
@NonNull @NonNull
protected abstract Property getDeviceIdentifierSampleProperty(); protected abstract Property getDeviceIdentifierSampleProperty();
public void persistForDevice(final Context context, final GBDevice gbDevice, final List<T> samples) { /// @deprecated use {@link #persistSamples(List, Context)} instead
@Deprecated
public void persistForDevice(@NonNull final Context context, @Nullable final GBDevice gbDevice, @NonNull final List<T> samples) {
persistSamples(samples, context); persistSamples(samples, context);
} }
@@ -240,7 +240,7 @@ public class BraunBPW4500DeviceSupport extends AbstractBTLESingleDeviceSupport {
final DaoSession session = handler.getDaoSession(); final DaoSession session = handler.getDaoSession();
final GenericBloodPressureSampleProvider provider = final GenericBloodPressureSampleProvider provider =
new GenericBloodPressureSampleProvider(getDevice(), session); new GenericBloodPressureSampleProvider(getDevice(), session);
provider.persistForDevice(getContext(), getDevice(), List.of(sample)); provider.persistSamples(List.of(sample), getContext());
persistedMeasurements++; persistedMeasurements++;
LOG.info("Persisted blood pressure measurement ({} total)", persistedMeasurements); LOG.info("Persisted blood pressure measurement ({} total)", persistedMeasurements);
@@ -21,9 +21,6 @@ import android.bluetooth.BluetoothGattCharacteristic;
import android.content.Intent; import android.content.Intent;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.CallSuper;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -168,7 +165,7 @@ public class GenericBloodPressureSupport extends AbstractBTLESingleDeviceSupport
try (DBHandler handler = GBApplication.acquireDB()) { try (DBHandler handler = GBApplication.acquireDB()) {
final DaoSession session = handler.getDaoSession(); final DaoSession session = handler.getDaoSession();
final GenericBloodPressureSampleProvider sampleProvider = new GenericBloodPressureSampleProvider(getDevice(), session); final GenericBloodPressureSampleProvider sampleProvider = new GenericBloodPressureSampleProvider(getDevice(), session);
sampleProvider.persistForDevice(getContext(), getDevice(), List.of(sample)); sampleProvider.persistSamples(List.of(sample), getContext());
persistedMeasurements++; persistedMeasurements++;
} catch (final Exception e) { } catch (final Exception e) {
@@ -177,7 +177,7 @@ class GenericHeartRateSupport : AbstractBTLESingleDeviceSupport(LOG) {
} }
val rrIntervalSampleProvider = HeartRrIntervalSampleProvider(this.device, db.getDaoSession()) val rrIntervalSampleProvider = HeartRrIntervalSampleProvider(this.device, db.getDaoSession())
rrIntervalSampleProvider.persistForDevice(context, device, rrIntervalSampleList) rrIntervalSampleProvider.persistSamples(rrIntervalSampleList, context)
} }
} }
@@ -210,7 +210,7 @@ class GloryFitFetcher(val mSupport: GloryFitSupport) {
val session = handler.getDaoSession() val session = handler.getDaoSession()
val sampleProvider = GenericSleepStageSampleProvider(mSupport.device, session) val sampleProvider = GenericSleepStageSampleProvider(mSupport.device, session)
sampleProvider.persistForDevice(mSupport.context, mSupport.device, samples) sampleProvider.persistSamples(samples, mSupport.context)
} }
} catch (e: Exception) { } catch (e: Exception) {
GB.toast(mSupport.context, "Error saving sleep session samples", Toast.LENGTH_LONG, GB.ERROR, e) GB.toast(mSupport.context, "Error saving sleep session samples", Toast.LENGTH_LONG, GB.ERROR, e)
@@ -254,10 +254,9 @@ class GloryFitFetcher(val mSupport: GloryFitSupport) {
val session = handler.getDaoSession() val session = handler.getDaoSession()
val sampleProvider = GloryFitStepsSampleProvider(mSupport.device, session) val sampleProvider = GloryFitStepsSampleProvider(mSupport.device, session)
sampleProvider.persistForDevice( sampleProvider.persistSamples(
mSupport.context, Collections.singletonList(sample),
mSupport.device, mSupport.context
Collections.singletonList(sample)
) )
} }
} catch (e: Exception) { } catch (e: Exception) {
@@ -306,7 +305,7 @@ class GloryFitFetcher(val mSupport: GloryFitSupport) {
val session = handler.getDaoSession() val session = handler.getDaoSession()
val sampleProvider = GenericHeartRateSampleProvider(mSupport.device, session) val sampleProvider = GenericHeartRateSampleProvider(mSupport.device, session)
sampleProvider.persistForDevice(mSupport.context, mSupport.device, samples) sampleProvider.persistSamples(samples, mSupport.context)
} }
} catch (e: Exception) { } catch (e: Exception) {
GB.toast(mSupport.context, "Error saving hr samples", Toast.LENGTH_LONG, GB.ERROR, e) GB.toast(mSupport.context, "Error saving hr samples", Toast.LENGTH_LONG, GB.ERROR, e)
@@ -369,7 +368,7 @@ class GloryFitFetcher(val mSupport: GloryFitSupport) {
val session = handler.getDaoSession() val session = handler.getDaoSession()
val sampleProvider = GenericSpo2SampleProvider(mSupport.device, session) val sampleProvider = GenericSpo2SampleProvider(mSupport.device, session)
sampleProvider.persistForDevice(mSupport.context, mSupport.device, samples) sampleProvider.persistSamples(samples, mSupport.context)
} }
} catch (e: Exception) { } catch (e: Exception) {
GB.toast(mSupport.context, "Error saving SpO2 samples", Toast.LENGTH_LONG, GB.ERROR, e) GB.toast(mSupport.context, "Error saving SpO2 samples", Toast.LENGTH_LONG, GB.ERROR, e)
@@ -91,7 +91,7 @@ public class FetchHrvOperation extends AbstractRepeatingFetchOperation {
final HuamiCoordinator coordinator = (HuamiCoordinator) getDevice().getDeviceCoordinator(); final HuamiCoordinator coordinator = (HuamiCoordinator) getDevice().getDeviceCoordinator();
final GenericHrvValueSampleProvider sampleProvider = coordinator.getHrvValueSampleProvider(getDevice(), session); final GenericHrvValueSampleProvider sampleProvider = coordinator.getHrvValueSampleProvider(getDevice(), session);
sampleProvider.persistForDevice(getContext(), getDevice(), samples); sampleProvider.persistSamples(samples, getContext());
} catch (final Exception e) { } catch (final Exception e) {
GB.toast(getContext(), "Error saving hrv samples", Toast.LENGTH_LONG, GB.ERROR, e); GB.toast(getContext(), "Error saving hrv samples", Toast.LENGTH_LONG, GB.ERROR, e);
return false; return false;
@@ -90,7 +90,7 @@ public class FetchSleepSessionOperation extends AbstractRepeatingFetchOperation
final HuamiSleepSessionSampleProvider sampleProvider = new HuamiSleepSessionSampleProvider(getDevice(), session); final HuamiSleepSessionSampleProvider sampleProvider = new HuamiSleepSessionSampleProvider(getDevice(), session);
sampleProvider.persistForDevice(getContext(), getDevice(), samples); sampleProvider.persistSamples(samples, getContext());
} catch (final Exception e) { } catch (final Exception e) {
GB.toast(getContext(), "Error saving sleep session samples", Toast.LENGTH_LONG, GB.ERROR, e); GB.toast(getContext(), "Error saving sleep session samples", Toast.LENGTH_LONG, GB.ERROR, e);
return false; return false;
@@ -102,7 +102,7 @@ public class FetchTemperatureOperation extends AbstractRepeatingFetchOperation {
final HuamiCoordinator coordinator = (HuamiCoordinator) getDevice().getDeviceCoordinator(); final HuamiCoordinator coordinator = (HuamiCoordinator) getDevice().getDeviceCoordinator();
final GenericTemperatureSampleProvider sampleProvider = coordinator.getTemperatureSampleProvider(getDevice(), session); final GenericTemperatureSampleProvider sampleProvider = coordinator.getTemperatureSampleProvider(getDevice(), session);
sampleProvider.persistForDevice(getContext(), getDevice(), samples); sampleProvider.persistSamples(samples, getContext());
} catch (final Exception e) { } catch (final Exception e) {
GB.toast(getContext(), "Error saving temperature samples", Toast.LENGTH_LONG, GB.ERROR, e); GB.toast(getContext(), "Error saving temperature samples", Toast.LENGTH_LONG, GB.ERROR, e);
return false; return false;
@@ -89,7 +89,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.CameraRemote;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.GpsAndTime; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.GpsAndTime;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Notifications; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Notifications;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Weather; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Weather;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.packets.Workout;
import nodomain.freeyourgadget.gadgetbridge.devices.huawei.ui.HuaweiStressCalibrationFragment; import nodomain.freeyourgadget.gadgetbridge.devices.huawei.ui.HuaweiStressCalibrationFragment;
import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst; import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiActivitySample; import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiActivitySample;
@@ -101,9 +100,6 @@ import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiSleepStageSample;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiSleepStatsSample; import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiSleepStatsSample;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiStressSample; import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiStressSample;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiWorkoutSummarySample; import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiWorkoutSummarySample;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiWorkoutSummarySampleDao;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiWorkoutSwimSegmentsSample;
import nodomain.freeyourgadget.gadgetbridge.entities.HuaweiWorkoutSwimSegmentsSampleDao;
import nodomain.freeyourgadget.gadgetbridge.export.AutoGpxExporter; import nodomain.freeyourgadget.gadgetbridge.export.AutoGpxExporter;
import nodomain.freeyourgadget.gadgetbridge.externalevents.gps.GBLocationProviderType; import nodomain.freeyourgadget.gadgetbridge.externalevents.gps.GBLocationProviderType;
import nodomain.freeyourgadget.gadgetbridge.externalevents.gps.GBLocationService; import nodomain.freeyourgadget.gadgetbridge.externalevents.gps.GBLocationService;
@@ -2734,8 +2730,8 @@ public class HuaweiSupportProvider {
} }
try (DBHandler db = GBApplication.acquireDB()) { try (DBHandler db = GBApplication.acquireDB()) {
final DaoSession session = db.getDaoSession(); final DaoSession session = db.getDaoSession();
new HuaweiSleepStatsSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, sleepStatsSamples); new HuaweiSleepStatsSampleProvider(gbDevice, session).persistSamples(sleepStatsSamples, context);
new HuaweiSleepStageSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, sleepStageSamples); new HuaweiSleepStageSampleProvider(gbDevice, session).persistSamples(sleepStageSamples, context);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Cannot save sleep, continue"); LOG.error("Cannot save sleep, continue");
} }
@@ -100,7 +100,7 @@ public class HuaweiDictionarySyncEmotion implements HuaweiDictionarySyncInterfa
} }
try (DBHandler db = GBApplication.acquireDB()) { try (DBHandler db = GBApplication.acquireDB()) {
final DaoSession session = db.getDaoSession(); final DaoSession session = db.getDaoSession();
new HuaweiEmotionsSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, emotionsSamples); new HuaweiEmotionsSampleProvider(gbDevice, session).persistSamples(emotionsSamples, context);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Cannot save emotions samples, continue"); LOG.error("Cannot save emotions samples, continue");
} }
@@ -76,7 +76,7 @@ public class HuaweiDictionarySyncHRV implements HuaweiDictionarySyncInterface {
} }
try (DBHandler db = GBApplication.acquireDB()) { try (DBHandler db = GBApplication.acquireDB()) {
final DaoSession session = db.getDaoSession(); final DaoSession session = db.getDaoSession();
new HuaweiHrvValueSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, hrvSamples); new HuaweiHrvValueSampleProvider(gbDevice, session).persistSamples(hrvSamples, context);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Cannot save HRV samples, continue"); LOG.error("Cannot save HRV samples, continue");
} }
@@ -77,7 +77,7 @@ public class HuaweiDictionarySyncSkinTemperature implements HuaweiDictionarySyn
} }
try (DBHandler db = GBApplication.acquireDB()) { try (DBHandler db = GBApplication.acquireDB()) {
final DaoSession session = db.getDaoSession(); final DaoSession session = db.getDaoSession();
new HuaweiTemperatureSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, temperatureSamples); new HuaweiTemperatureSampleProvider(gbDevice, session).persistSamples(temperatureSamples, context);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Cannot save skin temperature samples, continue"); LOG.error("Cannot save skin temperature samples, continue");
} }
@@ -80,7 +80,7 @@ public class HuaweiDictionarySyncSleepApnea implements HuaweiDictionarySyncInte
} }
try (DBHandler db = GBApplication.acquireDB()) { try (DBHandler db = GBApplication.acquireDB()) {
final DaoSession session = db.getDaoSession(); final DaoSession session = db.getDaoSession();
new HuaweiSleepApneaSampleProvider(gbDevice, session).persistForDevice(context, gbDevice, sleepApneaSamples); new HuaweiSleepApneaSampleProvider(gbDevice, session).persistSamples(sleepApneaSamples, context);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Cannot save sleep apnea samples, continue"); LOG.error("Cannot save sleep apnea samples, continue");
} }
@@ -379,7 +379,7 @@ class OneTouchSupport : AbstractBTLESingleDeviceSupport(LOG) {
GBApplication.acquireDB().use { handler -> GBApplication.acquireDB().use { handler ->
val session = handler.getDaoSession() val session = handler.getDaoSession()
val sampleProvider = GlucoseSampleProvider(device, session) val sampleProvider = GlucoseSampleProvider(device, session)
sampleProvider.persistForDevice(context, device, samples) sampleProvider.persistSamples(samples, context)
} }
} catch (e: Exception) { } catch (e: Exception) {
GB.toast(context, "Error storing glucose readings", Toast.LENGTH_LONG, GB.ERROR, e) GB.toast(context, "Error storing glucose readings", Toast.LENGTH_LONG, GB.ERROR, e)
@@ -311,7 +311,7 @@ public class PolarH10DeviceSupport extends AbstractBTLESingleDeviceSupport {
} }
final HeartRrIntervalSampleProvider rrIntervalSampleProvider = new HeartRrIntervalSampleProvider(this.getDevice(), db.getDaoSession()); final HeartRrIntervalSampleProvider rrIntervalSampleProvider = new HeartRrIntervalSampleProvider(this.getDevice(), db.getDaoSession());
rrIntervalSampleProvider.persistForDevice(getContext(), getDevice(), rrIntervalSampleList); rrIntervalSampleProvider.persistSamples(rrIntervalSampleList, getContext());
} }
newSamples = true; newSamples = true;