mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Huawei/Honor: Enable VO2 Max for supported devices
This commit is contained in:
+1
-1
@@ -330,7 +330,7 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public Vo2MaxSampleProvider<? extends Vo2MaxSample> getVo2MaxSampleProvider(GBDevice device, DaoSession session) {
|
public Vo2MaxSampleProvider<? extends Vo2MaxSample> getVo2MaxSampleProvider(GBDevice device, DaoSession session) {
|
||||||
return null;
|
return new WorkoutVo2MaxSampleProvider(device, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-10
@@ -1,9 +1,9 @@
|
|||||||
package nodomain.freeyourgadget.gadgetbridge.devices.garmin;
|
package nodomain.freeyourgadget.gadgetbridge.devices.garmin;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.app.Activity;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -28,12 +28,10 @@ import nodomain.freeyourgadget.gadgetbridge.activities.devicesettings.DeviceSpec
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.AbstractBLEDeviceCoordinator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.GenericTrainingLoadAcuteSampleProvider;
|
import nodomain.freeyourgadget.gadgetbridge.devices.GenericTrainingLoadAcuteSampleProvider;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.GenericTrainingLoadChronicSampleProvider;
|
import nodomain.freeyourgadget.gadgetbridge.devices.GenericTrainingLoadChronicSampleProvider;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.WorkoutLoadSampleProvider;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.WorkoutVo2MaxSampleProvider;
|
|
||||||
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.devices.TimeSampleProvider;
|
import nodomain.freeyourgadget.gadgetbridge.devices.TimeSampleProvider;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.Vo2MaxSampleProvider;
|
import nodomain.freeyourgadget.gadgetbridge.devices.WorkoutLoadSampleProvider;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummaryDao;
|
import nodomain.freeyourgadget.gadgetbridge.entities.BaseActivitySummaryDao;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.GarminActivitySampleDao;
|
import nodomain.freeyourgadget.gadgetbridge.entities.GarminActivitySampleDao;
|
||||||
@@ -70,7 +68,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.RestingMetabolicRateSample;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.model.SleepScoreSample;
|
import nodomain.freeyourgadget.gadgetbridge.model.SleepScoreSample;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.Spo2Sample;
|
import nodomain.freeyourgadget.gadgetbridge.model.Spo2Sample;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.StressSample;
|
import nodomain.freeyourgadget.gadgetbridge.model.StressSample;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.Vo2MaxSample;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.WorkoutLoadSample;
|
import nodomain.freeyourgadget.gadgetbridge.model.WorkoutLoadSample;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport;
|
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminSupport;
|
||||||
@@ -191,11 +188,6 @@ public abstract class GarminCoordinator extends AbstractBLEDeviceCoordinator {
|
|||||||
return new GenericTrainingLoadChronicSampleProvider(device, session);
|
return new GenericTrainingLoadChronicSampleProvider(device, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vo2MaxSampleProvider<? extends Vo2MaxSample> getVo2MaxSampleProvider(final GBDevice device, final DaoSession session) {
|
|
||||||
return new WorkoutVo2MaxSampleProvider(device, session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TimeSampleProvider<? extends Spo2Sample> getSpo2SampleProvider(final GBDevice device, final DaoSession session) {
|
public TimeSampleProvider<? extends Spo2Sample> getSpo2SampleProvider(final GBDevice device, final DaoSession session) {
|
||||||
return new GarminSpo2SampleProvider(device, session);
|
return new GarminSpo2SampleProvider(device, session);
|
||||||
|
|||||||
-8
@@ -51,8 +51,6 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
|
|||||||
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.devices.SleepAsAndroidFeature;
|
import nodomain.freeyourgadget.gadgetbridge.devices.SleepAsAndroidFeature;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.Vo2MaxSampleProvider;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.WorkoutVo2MaxSampleProvider;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiConst;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiCoordinator;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiExtendedSampleProvider;
|
import nodomain.freeyourgadget.gadgetbridge.devices.huami.HuamiExtendedSampleProvider;
|
||||||
@@ -60,7 +58,6 @@ import nodomain.freeyourgadget.gadgetbridge.entities.AbstractActivitySample;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryParser;
|
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySummaryParser;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.Vo2MaxSample;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
import nodomain.freeyourgadget.gadgetbridge.service.DeviceSupport;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiLanguageType;
|
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiLanguageType;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiVibrationPatternNotificationType;
|
import nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiVibrationPatternNotificationType;
|
||||||
@@ -314,11 +311,6 @@ public abstract class ZeppOsCoordinator extends HuamiCoordinator {
|
|||||||
return new HuamiExtendedSampleProvider(device, session);
|
return new HuamiExtendedSampleProvider(device, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Vo2MaxSampleProvider<? extends Vo2MaxSample> getVo2MaxSampleProvider(final GBDevice device, final DaoSession session) {
|
|
||||||
return new WorkoutVo2MaxSampleProvider(device, session);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActivitySummaryParser getActivitySummaryParser(final GBDevice device, final Context context) {
|
public ActivitySummaryParser getActivitySummaryParser(final GBDevice device, final Context context) {
|
||||||
return new ZeppOsActivitySummaryParser(context);
|
return new ZeppOsActivitySummaryParser(context);
|
||||||
|
|||||||
+6
@@ -311,6 +311,12 @@ public abstract class HuaweiCoordinator extends AbstractDeviceCoordinator {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
// #5770 - most Huawei and Honor devices seem to support it
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean supportsHeartRateMeasurement(@NonNull final GBDevice device) {
|
public boolean supportsHeartRateMeasurement(@NonNull final GBDevice device) {
|
||||||
return HuaweiDeviceStateManager.get(device).supportsHeartRate(device);
|
return HuaweiDeviceStateManager.get(device).supportsHeartRate(device);
|
||||||
|
|||||||
+5
@@ -51,4 +51,9 @@ public class HonorBand3Coordinator extends HuaweiLECoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -46,4 +46,9 @@ public class HonorBand4Coordinator extends HuaweiLECoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -46,4 +46,9 @@ public class HonorBand5Coordinator extends HuaweiLECoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -46,4 +46,9 @@ public class HonorBand7Coordinator extends HuaweiLECoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -46,4 +46,9 @@ public class HuaweiBandAw70Coordinator extends HuaweiLECoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -46,4 +46,9 @@ public class HuaweiTalkBandB6Coordinator extends HuaweiBRCoordinator {
|
|||||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user