diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/GarminCapability.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/GarminCapability.java
index 93a7f419bd..06d258fab1 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/GarminCapability.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/vivomovehr/GarminCapability.java
@@ -16,11 +16,18 @@
along with this program. If not, see . */
package nodomain.freeyourgadget.gadgetbridge.devices.vivomovehr;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEvent;
+import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventUpdatePreferences;
+import nodomain.freeyourgadget.gadgetbridge.devices.garmin.GarminPreferences;
+import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.deviceevents.CapabilitiesDeviceEvent;
+
public enum GarminCapability {
CONNECT_MOBILE_FIT_LINK,
GOLF_FIT_LINK,
@@ -187,6 +194,22 @@ public enum GarminCapability {
return result;
}
+ public static Set setFromLong(final long capabilitiesMask) {
+ final Set result =
+ new HashSet<>(GarminCapability.values().length);
+
+ for (int i = 0; i < Long.SIZE; i++) {
+ if ((capabilitiesMask & (1L << i)) != 0) {
+ GarminCapability cap = FROM_ORDINAL.get(i);
+ if (cap != null) {
+ result.add(cap);
+ }
+ }
+ }
+ return result;
+ }
+
+
public static byte[] setToBinary(final Set capabilities) {
final GarminCapability[] values = values();
final byte[] result = new byte[(values.length + 7) / 8];
@@ -213,4 +236,15 @@ public enum GarminCapability {
}
return result.toString();
}
+
+ public static List getGBDeviceEvent(final Set capabilities) {
+ final Set