Wena3: switch to automatically generated sample providers

This commit is contained in:
Thomas Kuehne
2026-05-29 20:32:58 +00:00
parent 2a9966e203
commit b1ba12923c
15 changed files with 37 additions and 316 deletions
@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3HeartRateSample;
@@ -40,7 +42,7 @@ public class SonyWena3ActivitySampleCombiner {
this.activitySampleProvider = activitySampleProvider;
}
public void overlayBehaviorStartingAt(Date startDate, SonyWena3BehaviorSampleProvider behaviorSampleProvider) {
public void overlayBehaviorStartingAt(Date startDate, Wena3BehaviorSampleProvider behaviorSampleProvider) {
List<Wena3BehaviorSample> behaviorSamples = behaviorSampleProvider.getAllSamples(startDate.getTime(), Long.MAX_VALUE);
List<Wena3ActivitySample> alteredSamples = new ArrayList<>();
for(Wena3BehaviorSample behaviorSample: behaviorSamples) {
@@ -55,7 +57,7 @@ public class SonyWena3ActivitySampleCombiner {
activitySampleProvider.addGBActivitySamples(alteredSamples);
}
public void overlayHeartRateStartingAt(Date startDate, SonyWena3HeartRateSampleProvider heartRateSampleProvider) {
public void overlayHeartRateStartingAt(Date startDate, Wena3HeartRateSampleProvider heartRateSampleProvider) {
List<Wena3HeartRateSample> heartRateSamples = heartRateSampleProvider.getAllSamples(startDate.getTime(), Long.MAX_VALUE);
List<Wena3ActivitySample> alteredSamples = new ArrayList<>();
for(int i = 0; i < heartRateSamples.size(); i++) {
@@ -1,56 +0,0 @@
/* Copyright (C) 2023-2024 akasaka / Genjitsu Labs
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3;
import androidx.annotation.NonNull;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.Property;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractTimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSampleDao;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SonyWena3BehaviorSampleProvider extends AbstractTimeSampleProvider<Wena3BehaviorSample> {
public SonyWena3BehaviorSampleProvider(final GBDevice device, final DaoSession session) {
super(device, session);
}
@NonNull
@Override
public AbstractDao<Wena3BehaviorSample, ?> getSampleDao() {
return getSession().getWena3BehaviorSampleDao();
}
@NonNull
@Override
protected Property getTimestampSampleProperty() {
return Wena3BehaviorSampleDao.Properties.Timestamp;
}
@NonNull
@Override
protected Property getDeviceIdentifierSampleProperty() {
return Wena3BehaviorSampleDao.Properties.DeviceId;
}
@Override
public Wena3BehaviorSample createSample() {
return new Wena3BehaviorSample();
}
}
@@ -1,56 +0,0 @@
/* Copyright (C) 2023-2024 akasaka / Genjitsu Labs
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3;
import androidx.annotation.NonNull;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.Property;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractTimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3CaloriesSample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3CaloriesSampleDao;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SonyWena3CaloriesSampleProvider extends AbstractTimeSampleProvider<Wena3CaloriesSample> {
public SonyWena3CaloriesSampleProvider(final GBDevice device, final DaoSession session) {
super(device, session);
}
@NonNull
@Override
public AbstractDao<Wena3CaloriesSample, ?> getSampleDao() {
return getSession().getWena3CaloriesSampleDao();
}
@NonNull
@Override
protected Property getTimestampSampleProperty() {
return Wena3CaloriesSampleDao.Properties.Timestamp;
}
@NonNull
@Override
protected Property getDeviceIdentifierSampleProperty() {
return Wena3CaloriesSampleDao.Properties.DeviceId;
}
@Override
public Wena3CaloriesSample createSample() {
return new Wena3CaloriesSample();
}
}
@@ -33,6 +33,8 @@ import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpec
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator;
import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3EnergySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3ActivitySampleDao;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSampleDao;
@@ -154,12 +156,12 @@ public class SonyWena3Coordinator extends AbstractBLEDeviceCoordinator {
@Override
public TimeSampleProvider<? extends HeartRateSample> getHeartRateRestingSampleProvider(GBDevice device, DaoSession session) {
return new SonyWena3HeartRateSampleProvider(device, session);
return new Wena3HeartRateSampleProvider(device, session);
}
@Override
public TimeSampleProvider<? extends BodyEnergySample> getBodyEnergySampleProvider(GBDevice device, DaoSession session) {
return new SonyWena3EnergySampleProvider(device, session);
return new Wena3EnergySampleProvider(device, session);
}
@Override
@@ -1,56 +0,0 @@
/* Copyright (C) 2023-2024 akasaka / Genjitsu Labs
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3;
import androidx.annotation.NonNull;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.Property;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractTimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3EnergySample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3EnergySampleDao;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SonyWena3EnergySampleProvider extends AbstractTimeSampleProvider<Wena3EnergySample> {
public SonyWena3EnergySampleProvider(final GBDevice device, final DaoSession session) {
super(device, session);
}
@NonNull
@Override
public AbstractDao<Wena3EnergySample, ?> getSampleDao() {
return getSession().getWena3EnergySampleDao();
}
@NonNull
@Override
protected Property getTimestampSampleProperty() {
return Wena3EnergySampleDao.Properties.Timestamp;
}
@NonNull
@Override
protected Property getDeviceIdentifierSampleProperty() {
return Wena3EnergySampleDao.Properties.DeviceId;
}
@Override
public Wena3EnergySample createSample() {
return new Wena3EnergySample();
}
}
@@ -1,58 +0,0 @@
/* Copyright (C) 2023-2024 akasaka / Genjitsu Labs
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3;
import androidx.annotation.NonNull;
import java.util.List;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.Property;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractTimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3HeartRateSample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3HeartRateSampleDao;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SonyWena3HeartRateSampleProvider extends AbstractTimeSampleProvider<Wena3HeartRateSample> {
public SonyWena3HeartRateSampleProvider(final GBDevice device, final DaoSession session) {
super(device, session);
}
@NonNull
@Override
public AbstractDao<Wena3HeartRateSample, ?> getSampleDao() {
return getSession().getWena3HeartRateSampleDao();
}
@NonNull
@Override
protected Property getTimestampSampleProperty() {
return Wena3HeartRateSampleDao.Properties.Timestamp;
}
@NonNull
@Override
protected Property getDeviceIdentifierSampleProperty() {
return Wena3HeartRateSampleDao.Properties.DeviceId;
}
@Override
public Wena3HeartRateSample createSample() {
return new Wena3HeartRateSample();
}
}
@@ -1,56 +0,0 @@
/* Copyright (C) 2023-2024 akasaka / Genjitsu Labs
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3;
import androidx.annotation.NonNull;
import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.Property;
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractTimeSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3Vo2Sample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3Vo2SampleDao;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class SonyWena3Vo2SampleProvider extends AbstractTimeSampleProvider<Wena3Vo2Sample> {
public SonyWena3Vo2SampleProvider(final GBDevice device, final DaoSession session) {
super(device, session);
}
@NonNull
@Override
public AbstractDao<Wena3Vo2Sample, ?> getSampleDao() {
return getSession().getWena3Vo2SampleDao();
}
@NonNull
@Override
protected Property getTimestampSampleProperty() {
return Wena3Vo2SampleDao.Properties.Timestamp;
}
@NonNull
@Override
protected Property getDeviceIdentifierSampleProperty() {
return Wena3Vo2SampleDao.Properties.DeviceId;
}
@Override
public Wena3Vo2Sample createSample() {
return new Wena3Vo2Sample();
}
}
@@ -46,15 +46,15 @@ import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSett
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventFindPhone;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3CaloriesSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3EnergySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3Vo2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3CaloriesSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3Constants;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3EnergySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3SettingKeys;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3StressSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3Vo2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.database.AppSpecificNotificationSettingsRepository;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSample;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3CaloriesSample;
@@ -321,7 +321,7 @@ public class SonyWena3DeviceSupport extends AbstractBTLESingleDeviceSupport {
if(!syncAll) {
try (DBHandler db = GBApplication.acquireDB()) {
Wena3HeartRateSample heartSample = new SonyWena3HeartRateSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
Wena3HeartRateSample heartSample = new Wena3HeartRateSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
if(heartSample != null) {
heartLastSyncTime = new Date(heartSample.getTimestamp());
}
@@ -336,22 +336,22 @@ public class SonyWena3DeviceSupport extends AbstractBTLESingleDeviceSupport {
stepLastSyncTime = new Date(stepsSample.getTimestamp() * 1000L);
}
Wena3BehaviorSample behaviorSample = new SonyWena3BehaviorSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
Wena3BehaviorSample behaviorSample = new Wena3BehaviorSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
if(behaviorSample != null) {
behaviorLastSyncTime = new Date(behaviorSample.getTimestamp());
}
Wena3Vo2Sample vo2Sample = new SonyWena3Vo2SampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
Wena3Vo2Sample vo2Sample = new Wena3Vo2SampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
if(vo2Sample != null) {
vo2LastSyncTime = new Date(vo2Sample.getTimestamp());
}
Wena3EnergySample energySample = new SonyWena3EnergySampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
Wena3EnergySample energySample = new Wena3EnergySampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
if(energySample != null) {
energyLastSyncTime = new Date(energySample.getTimestamp());
}
Wena3CaloriesSample caloriesSample = new SonyWena3CaloriesSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
Wena3CaloriesSample caloriesSample = new Wena3CaloriesSampleProvider(getDevice(), db.getDaoSession()).getLatestSample();
if(caloriesSample != null) {
caloriesLastSyncTime = new Date(caloriesSample.getTimestamp());
}
@@ -27,9 +27,9 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleCombiner;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3BehaviorSample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.service.devices.sony.wena3.protocol.packets.activity.BehaviorSample;
@@ -72,7 +72,7 @@ public class BehaviorPacketParser extends SamplePacketParser<BehaviorSample> {
@Override
public void finishReceiving(GBDevice device) {
try (DBHandler db = GBApplication.acquireDB()) {
SonyWena3BehaviorSampleProvider sampleProvider = new SonyWena3BehaviorSampleProvider(device, db.getDaoSession());
Wena3BehaviorSampleProvider sampleProvider = new Wena3BehaviorSampleProvider(device, db.getDaoSession());
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
Long deviceId = DBHelper.getDevice(device, db.getDaoSession()).getId();
List<Wena3BehaviorSample> samples = new ArrayList<>();
@@ -27,7 +27,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3CaloriesSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3CaloriesSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3CaloriesSample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
@@ -49,7 +49,7 @@ public class CaloriesPacketParser extends LinearSamplePacketParser<Integer> {
@Override
public void finishReceiving(GBDevice device) {
try (DBHandler db = GBApplication.acquireDB()) {
SonyWena3CaloriesSampleProvider sampleProvider = new SonyWena3CaloriesSampleProvider(device, db.getDaoSession());
Wena3CaloriesSampleProvider sampleProvider = new Wena3CaloriesSampleProvider(device, db.getDaoSession());
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
Long deviceId = DBHelper.getDevice(device, db.getDaoSession()).getId();
@@ -26,7 +26,7 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3EnergySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3EnergySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3EnergySample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
@@ -39,7 +39,7 @@ public class EnergyPacketParser extends OneBytePerSamplePacketParser {
@Override
public void finishReceiving(GBDevice device) {
try (DBHandler db = GBApplication.acquireDB()) {
SonyWena3EnergySampleProvider sampleProvider = new SonyWena3EnergySampleProvider(device, db.getDaoSession());
Wena3EnergySampleProvider sampleProvider = new Wena3EnergySampleProvider(device, db.getDaoSession());
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
Long deviceId = DBHelper.getDevice(device, db.getDaoSession()).getId();
List<Wena3EnergySample> samples = new ArrayList<>();
@@ -26,9 +26,9 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleCombiner;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3HeartRateSample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
@@ -42,7 +42,7 @@ public class HeartRatePacketParser extends OneBytePerSamplePacketParser {
@Override
public void finishReceiving(GBDevice device) {
try (DBHandler db = GBApplication.acquireDB()) {
SonyWena3HeartRateSampleProvider sampleProvider = new SonyWena3HeartRateSampleProvider(device, db.getDaoSession());
Wena3HeartRateSampleProvider sampleProvider = new Wena3HeartRateSampleProvider(device, db.getDaoSession());
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
Long deviceId = DBHelper.getDevice(device, db.getDaoSession()).getId();
List<Wena3HeartRateSample> samples = new ArrayList<>();
@@ -26,10 +26,10 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleCombiner;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3ActivitySampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3BehaviorSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3HeartRateSampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3ActivitySample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
@@ -64,10 +64,10 @@ public class StepsPacketParser extends OneBytePerSamplePacketParser {
SonyWena3ActivitySampleCombiner combiner = new SonyWena3ActivitySampleCombiner(sampleProvider);
SonyWena3BehaviorSampleProvider behaviorSampleProvider = new SonyWena3BehaviorSampleProvider(device, db.getDaoSession());
Wena3BehaviorSampleProvider behaviorSampleProvider = new Wena3BehaviorSampleProvider(device, db.getDaoSession());
combiner.overlayBehaviorStartingAt(startDate, behaviorSampleProvider);
SonyWena3HeartRateSampleProvider heartRateSampleProvider = new SonyWena3HeartRateSampleProvider(device, db.getDaoSession());
Wena3HeartRateSampleProvider heartRateSampleProvider = new Wena3HeartRateSampleProvider(device, db.getDaoSession());
combiner.overlayHeartRateStartingAt(startDate, heartRateSampleProvider);
} catch (Exception e) {
LOG.error("Error acquiring database for recording steps samples", e);
@@ -27,10 +27,9 @@ import java.util.List;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
import nodomain.freeyourgadget.gadgetbridge.devices.sony.wena3.SonyWena3Vo2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.devices.Wena3Vo2SampleProvider;
import nodomain.freeyourgadget.gadgetbridge.entities.Wena3Vo2Sample;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
import nodomain.freeyourgadget.gadgetbridge.model.Spo2Sample;
import nodomain.freeyourgadget.gadgetbridge.service.devices.sony.wena3.protocol.packets.activity.Vo2MaxSample;
import nodomain.freeyourgadget.gadgetbridge.service.devices.sony.wena3.protocol.util.TimeUtil;
@@ -60,7 +59,7 @@ public class Vo2MaxPacketParser extends SamplePacketParser<Vo2MaxSample> {
@Override
public void finishReceiving(GBDevice device) {
try (DBHandler db = GBApplication.acquireDB()) {
SonyWena3Vo2SampleProvider sampleProvider = new SonyWena3Vo2SampleProvider(device, db.getDaoSession());
Wena3Vo2SampleProvider sampleProvider = new Wena3Vo2SampleProvider(device, db.getDaoSession());
Long userId = DBHelper.getUser(db.getDaoSession()).getId();
Long deviceId = DBHelper.getDevice(device, db.getDaoSession()).getId();
List<Wena3Vo2Sample> samples = new ArrayList<>();