Garmin: Update devices with training load support

Source: https://support.garmin.com/en-US/?faq=SEkNpdGyhR917js0qQL3Q6
This commit is contained in:
José Rebelo
2026-01-24 16:26:13 +00:00
parent b7ce6a67e8
commit 6cc116f89c
31 changed files with 153 additions and 32 deletions
@@ -682,11 +682,6 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator {
return false;
}
@Override
public boolean supportsWorkoutLoad(@NonNull GBDevice device) {
return false;
}
@Override
public boolean supportsCharts(@NonNull GBDevice device) {
// All the default charts (see DefaultChartsProvider)
@@ -288,7 +288,6 @@ public interface DeviceCoordinator {
boolean supportsCharts(@NonNull GBDevice device);
boolean supportsActiveCalories(@NonNull GBDevice device);
boolean supportsTrainingLoad(@NonNull GBDevice device);
boolean supportsWorkoutLoad(@NonNull GBDevice device);
boolean supportsGlucoseMeasurement(@NonNull GBDevice device);
DeviceChartsProvider getChartsProvider();
@@ -391,4 +391,10 @@ public abstract class GarminCoordinator extends AbstractBLEDeviceCoordinator {
return null;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
// Not all devices support it
return true;
}
}
@@ -32,4 +32,9 @@ public class GarminEdge130Coordinator extends GarminBikeComputerCoordinator {
public boolean supportsMusicInfo(@NonNull GBDevice device) {
return false;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -32,4 +32,9 @@ public class GarminEdge130PlusCoordinator extends GarminBikeComputerCoordinator
public boolean supportsMusicInfo(@NonNull GBDevice device) {
return false;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -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;
@@ -20,4 +22,9 @@ public class GarminEdgeExplore2Coordinator extends GarminBikeComputerCoordinator
public int getBatteryCount(final GBDevice device) {
return 0; // does not seem to report the battery %
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -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;
@@ -20,4 +22,9 @@ public class GarminEdgeExploreCoordinator extends GarminBikeComputerCoordinator
public int getBatteryCount(final GBDevice device) {
return 0; // does not seem to report the battery %
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -46,4 +46,9 @@ public class GarminETrexSeCoordinator extends GarminCoordinator {
public DeviceCoordinator.DeviceKind getDeviceKind(@NonNull GBDevice device) {
return DeviceCoordinator.DeviceKind.UNKNOWN;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -45,4 +45,9 @@ public class GarminGpsmap66sCoordinator extends GarminCoordinator {
public DeviceKind getDeviceKind(@NonNull GBDevice device) {
return DeviceKind.UNKNOWN;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -93,4 +93,9 @@ public class GarminHrmProPlusCoordinator extends GarminCoordinator {
public boolean supportsSleepMeasurement(@NonNull final GBDevice device){
return false;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -187,17 +187,6 @@ public abstract class GarminWatchCoordinator extends GarminCoordinator {
return 150;
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
// Not all devices support it
return true;
}
@Override
public boolean supportsWorkoutLoad(@NonNull GBDevice device) {
return true;
}
@Override
public boolean supportsFindDevice(@NonNull GBDevice device) {
return true;
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.epix;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminEpixCoordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminEpixCoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_epix;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -29,9 +29,4 @@ public class GarminFenix3Coordinator extends GarminWatchCoordinator {
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
return false;
}
@Override
public boolean supportsWorkoutLoad(@NonNull GBDevice device) {
return false;
}
}
@@ -29,9 +29,4 @@ public class GarminFenix3HrCoordinator extends GarminWatchCoordinator {
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
return false;
}
@Override
public boolean supportsWorkoutLoad(@NonNull GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner165Coordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminForerunner165Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_165;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner165MusicCoordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminForerunner165MusicCoordinator extends GarminWatchCoordinator
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_165_music;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner235Coordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminForerunner235Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_235;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -16,10 +16,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner55Coordinator extends GarminWatchCoordinator {
@Override
@@ -31,4 +34,9 @@ public class GarminForerunner55Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_55;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -16,10 +16,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner620Coordinator extends GarminWatchCoordinator {
@Override
@@ -31,4 +34,9 @@ public class GarminForerunner620Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_620;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -16,10 +16,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner630Coordinator extends GarminWatchCoordinator {
@Override
@@ -31,4 +34,9 @@ public class GarminForerunner630Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_630;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -16,10 +16,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner735XTCoordinator extends GarminWatchCoordinator {
@Override
@@ -31,4 +34,9 @@ public class GarminForerunner735XTCoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_735xt;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -16,10 +16,13 @@
along with this program. If not, see <https://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.forerunner;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminForerunner920Coordinator extends GarminWatchCoordinator {
@Override
@@ -31,4 +34,9 @@ public class GarminForerunner920Coordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_forerunner_920;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminInstinctCoordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminInstinctCoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_instinct;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminInstinctECoordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminInstinctECoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_instinct_e;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,5 +1,7 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
@@ -16,4 +18,9 @@ public class GarminInstinctSolarCoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_instinct_solar;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -1,9 +1,12 @@
package nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.instinct;
import androidx.annotation.NonNull;
import java.util.regex.Pattern;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.devices.garmin.watches.GarminWatchCoordinator;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
public class GarminInstinctTacticalCoordinator extends GarminWatchCoordinator {
@Override
@@ -15,4 +18,9 @@ public class GarminInstinctTacticalCoordinator extends GarminWatchCoordinator {
public int getDeviceNameResource() {
return R.string.devicetype_garmin_instinct_tactical;
}
@Override
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -20,7 +20,7 @@ public class GarminVenu2Coordinator extends GarminWatchCoordinator {
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -20,7 +20,7 @@ public class GarminVenu2PlusCoordinator extends GarminWatchCoordinator {
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -20,7 +20,7 @@ public class GarminVenu2SCoordinator extends GarminWatchCoordinator {
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -20,7 +20,7 @@ public class GarminVenuSq2Coordinator extends GarminWatchCoordinator {
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}
@@ -20,7 +20,7 @@ public class GarminVivoActive6Coordinator extends GarminWatchCoordinator {
}
@Override
public boolean supportsTrainingLoad(@NonNull GBDevice device) {
public boolean supportsTrainingLoad(@NonNull final GBDevice device) {
return false;
}
}