mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Garmin: Update devices with VO2 max support
As per https://support.garmin.com/en-US/?faq=lWqSVlq3w76z5WoihLy5f8 Some watches are not on this list, but they mention VO2 Max for running or cycling specifically in the manual, so they were left enabled as we are not fully sure.
This commit is contained in:
+9
-17
@@ -101,13 +101,10 @@ public class VO2MaxFragment extends AbstractChartFragment<VO2MaxFragment.VO2MaxD
|
||||
vo2maxWrapper = rootView.findViewById(R.id.vo2max_card_layout);
|
||||
tilesGridWrapper = rootView.findViewById(R.id.tiles_grid_wrapper);
|
||||
device = getChartsHost().getDevice();
|
||||
if (!supportsVO2MaxCycling(device)) {
|
||||
if (!supportsVO2MultiSport(device)) {
|
||||
tilesGridWrapper.removeView(vo2maxCyclingWrapper);
|
||||
}
|
||||
if (!supportsVO2MaxRunning(device)) {
|
||||
tilesGridWrapper.removeView(vo2maxRunningWrapper);
|
||||
}
|
||||
if (supportsVO2MaxRunning(device) || supportsVO2MaxCycling(device)) {
|
||||
} else {
|
||||
tilesGridWrapper.removeView(vo2maxWrapper);
|
||||
}
|
||||
setupVO2MaxChart();
|
||||
@@ -118,14 +115,9 @@ public class VO2MaxFragment extends AbstractChartFragment<VO2MaxFragment.VO2MaxD
|
||||
return rootView;
|
||||
}
|
||||
|
||||
public boolean supportsVO2MaxCycling(GBDevice device) {
|
||||
public boolean supportsVO2MultiSport(GBDevice device) {
|
||||
DeviceCoordinator coordinator = device.getDeviceCoordinator();
|
||||
return coordinator != null && coordinator.supportsVO2MaxCycling(device);
|
||||
}
|
||||
|
||||
public boolean supportsVO2MaxRunning(GBDevice device) {
|
||||
DeviceCoordinator coordinator = device.getDeviceCoordinator();
|
||||
return coordinator != null && coordinator.supportsVO2MaxRunning(device);
|
||||
return coordinator.supportsVO2MultiSport(device);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -190,21 +182,21 @@ public class VO2MaxFragment extends AbstractChartFragment<VO2MaxFragment.VO2MaxD
|
||||
final float[] segments = AbstractDashboardVO2MaxWidget.getSegments();
|
||||
float[] vo2MaxRanges = AbstractDashboardVO2MaxWidget.getVO2MaxRanges();
|
||||
final List<ILineDataSet> lineDataSets = new ArrayList<>();
|
||||
if (supportsVO2MaxRunning(device)) {
|
||||
if (supportsVO2MultiSport(device)) {
|
||||
// Running
|
||||
VO2MaxRecord latestRunningRecord = vo2MaxData.getLatestValue(Vo2MaxSample.Type.RUNNING);
|
||||
float runningVO2MaxValue = calculateVO2maxGaugeValue(vo2MaxRanges, latestRunningRecord != null ? latestRunningRecord.value : 0);
|
||||
vo2MaxRunningValue.setText(String.valueOf(latestRunningRecord != null ? Math.round(latestRunningRecord.value) : "-"));
|
||||
gaugeDrawer.drawSegmentedGauge(vo2MaxRunningGauge, colors, segments, runningVO2MaxValue, false, true);
|
||||
lineDataSets.add(createDataSet(runningEntries, getResources().getColor(R.color.vo2max_running_char_line_color), getString(R.string.vo2max_running)));
|
||||
}
|
||||
if (supportsVO2MaxCycling(device)) {
|
||||
|
||||
// Cycling
|
||||
VO2MaxRecord latestCyclingRecord = vo2MaxData.getLatestValue(Vo2MaxSample.Type.CYCLING);
|
||||
float cyclingVO2MaxValue = calculateVO2maxGaugeValue(vo2MaxRanges, latestCyclingRecord != null ? latestCyclingRecord.value : 0);
|
||||
gaugeDrawer.drawSegmentedGauge(vo2MaxCyclingGauge, colors, segments, cyclingVO2MaxValue, false, true);
|
||||
vo2MaxCyclingValue.setText(String.valueOf(latestCyclingRecord != null ? Math.round(latestCyclingRecord.value) : "-"));
|
||||
lineDataSets.add(createDataSet(cyclingEntries, getResources().getColor(R.color.vo2max_cycling_char_line_color), getString(R.string.vo2max_cycling)));
|
||||
}
|
||||
if (!supportsVO2MaxRunning(device) && !supportsVO2MaxCycling(device)) {
|
||||
} else {
|
||||
VO2MaxRecord latestRecord = vo2MaxData.getLatestValue(Vo2MaxSample.Type.ANY);
|
||||
float vO2MaxValue = calculateVO2maxGaugeValue(vo2MaxRanges, latestRecord != null ? latestRecord.value : 0);
|
||||
gaugeDrawer.drawSegmentedGauge(vo2MaxGauge, colors, segments, vO2MaxValue, false, true);
|
||||
|
||||
+1
-1
@@ -47,6 +47,6 @@ public class DashboardVO2MaxCyclingWidget extends AbstractDashboardVO2MaxWidget
|
||||
|
||||
@Override
|
||||
protected boolean isSupportedBy(final GBDevice device) {
|
||||
return device.getDeviceCoordinator().supportsVO2MaxCycling(device);
|
||||
return device.getDeviceCoordinator().supportsVO2MultiSport(device);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -47,6 +47,6 @@ public class DashboardVO2MaxRunningWidget extends AbstractDashboardVO2MaxWidget
|
||||
|
||||
@Override
|
||||
protected boolean isSupportedBy(final GBDevice device) {
|
||||
return device.getDeviceCoordinator().supportsVO2MaxRunning(device);
|
||||
return device.getDeviceCoordinator().supportsVO2MultiSport(device);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-6
@@ -663,12 +663,7 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxCycling(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxRunning(@NonNull GBDevice device) {
|
||||
public boolean supportsVO2MultiSport(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -280,8 +280,11 @@ public interface DeviceCoordinator {
|
||||
boolean supportsBodyEnergy(@NonNull GBDevice device);
|
||||
boolean supportsHrvMeasurement(@NonNull GBDevice device);
|
||||
boolean supportsVO2Max(@NonNull GBDevice device);
|
||||
boolean supportsVO2MaxCycling(@NonNull GBDevice device);
|
||||
boolean supportsVO2MaxRunning(@NonNull GBDevice device);
|
||||
|
||||
/**
|
||||
* Returns true if this device supports distinguishing VO2 max per sport (running / cycling).
|
||||
*/
|
||||
boolean supportsVO2MultiSport(@NonNull GBDevice device);
|
||||
boolean supportsSleepMeasurement(@NonNull GBDevice device);
|
||||
boolean supportsStepCounter(@NonNull GBDevice device);
|
||||
boolean supportsSpeedzones(@NonNull GBDevice device);
|
||||
|
||||
+1
-3
@@ -144,7 +144,7 @@ public class WorkoutVo2MaxSampleProvider implements Vo2MaxSampleProvider<Vo2MaxS
|
||||
|
||||
final List<Integer> codes = new ArrayList<>();
|
||||
|
||||
if (coordinator.supportsVO2MaxRunning(device)) {
|
||||
if (coordinator.supportsVO2MultiSport(device)) {
|
||||
if (type == Vo2MaxSample.Type.RUNNING) {
|
||||
codes.addAll(Arrays.asList(
|
||||
ActivityKind.INDOOR_RUNNING.getCode(),
|
||||
@@ -153,8 +153,6 @@ public class WorkoutVo2MaxSampleProvider implements Vo2MaxSampleProvider<Vo2MaxS
|
||||
ActivityKind.RUNNING.getCode()
|
||||
));
|
||||
}
|
||||
}
|
||||
if (coordinator.supportsVO2MaxCycling(device)) {
|
||||
if (type == Vo2MaxSample.Type.CYCLING) {
|
||||
codes.addAll(Arrays.asList(
|
||||
ActivityKind.CYCLING.getCode(),
|
||||
|
||||
-5
@@ -32,11 +32,6 @@ public abstract class GarminBikeComputerCoordinator extends GarminCoordinator {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxCycling(@NonNull GBDevice device) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsRecordedActivities(@NonNull final GBDevice device) {
|
||||
return true;
|
||||
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.bike;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
|
||||
+5
@@ -27,4 +27,9 @@ public class GarminEdgeExploreCoordinator extends GarminBikeComputerCoordinator
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -51,4 +51,9 @@ public class GarminETrexSeCoordinator extends GarminCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -50,4 +50,9 @@ public class GarminGpsmap66sCoordinator extends GarminCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -98,4 +98,9 @@ public class GarminHrmProPlusCoordinator extends GarminCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-7
@@ -93,13 +93,8 @@ public abstract class GarminWatchCoordinator extends GarminCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxCycling(@NonNull GBDevice device) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxRunning(@NonNull GBDevice device) {
|
||||
return true;
|
||||
public boolean supportsVO2MultiSport(@NonNull GBDevice device) {
|
||||
return supportsVO2Max(device);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+5
@@ -64,4 +64,9 @@ public class GarminForerunner35Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -49,4 +49,9 @@ public class GarminForerunner45Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -44,4 +44,9 @@ public class GarminForerunner55Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsSpo2(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -74,4 +74,9 @@ public class GarminForerunner620Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -33,4 +33,9 @@ public class GarminForerunner645MusicCoordinator extends GarminWatchCoordinator
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -43,4 +43,9 @@ public class GarminInstinctCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -33,4 +33,9 @@ public class GarminInstinctSolarCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -43,4 +43,9 @@ public class GarminInstinctTacticalCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-6
@@ -25,12 +25,7 @@ public class GarminLily2ActiveCoordinator extends GarminWatchCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxCycling(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxRunning(@NonNull GBDevice device) {
|
||||
public boolean supportsVO2MultiSport(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminLily2Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -33,4 +33,9 @@ public class GarminSwim2Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2Max(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenu2Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenu2PlusCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenu2SCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenu3Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenu3SCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenuCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVenuSqCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -40,4 +40,9 @@ public class GarminVivoActive3Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVivoActive4Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVivoActive4SCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-6
@@ -25,12 +25,7 @@ public class GarminVivoActive5Coordinator extends GarminWatchCoordinator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxCycling(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MaxRunning(@NonNull GBDevice device) {
|
||||
public boolean supportsVO2MultiSport(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -38,4 +38,9 @@ public class GarminVivoActiveHrCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -38,4 +38,9 @@ public class GarminVivomoveHrCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVivomoveSportCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVivomoveStyleCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -23,4 +23,9 @@ public class GarminVivomoveTrendCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -44,4 +44,9 @@ public class GarminVivosmart3Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -34,4 +34,9 @@ public class GarminVivosmart4Coordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -29,4 +29,9 @@ public class GarminVivosmart5Coordinator extends GarminWatchCoordinator {
|
||||
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
|
||||
return DeviceCoordinator.DeviceKind.FITNESS_BAND;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -44,4 +44,9 @@ public class GarminVivosportCoordinator extends GarminWatchCoordinator {
|
||||
public boolean supportsRespiratoryRate(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsVO2MultiSport(@NonNull final GBDevice device) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user