diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandler.java index 26d55f73..710178f9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandler.java @@ -17,6 +17,10 @@ public class AppMessageHandler { mPebbleProtocol = pebbleProtocol; } + public boolean isEnabled() { + return true; + } + public UUID getUUID() { return mUUID; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java index f98452c9..2e33b4a5 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMisfit.java @@ -43,7 +43,8 @@ public class AppMessageHandlerMisfit extends AppMessageHandler { private final MisfitSampleProvider sampleProvider = new MisfitSampleProvider(); - private boolean isMisfitEnabled() { + @Override + public boolean isEnabled() { Prefs prefs = GBApplication.getPrefs(); int activityTracker = prefs.getInt("pebble_activitytracker", SampleProvider.PROVIDER_PEBBLE_HEALTH); return (activityTracker == SampleProvider.PROVIDER_PEBBLE_MISFIT); @@ -51,11 +52,6 @@ public class AppMessageHandlerMisfit extends AppMessageHandler { @Override public GBDeviceEvent[] handleMessage(ArrayList> pairs) { - - if (!isMisfitEnabled()) { - return new GBDeviceEvent[] {null}; - } - for (Pair pair : pairs) { switch (pair.first) { case KEY_INCOMING_DATA_BEGIN: diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java index 3c6517d6..a9f1d9cb 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/AppMessageHandlerMorpheuz.java @@ -18,6 +18,7 @@ import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSendBytes; import nodomain.freeyourgadget.gadgetbridge.deviceevents.GBDeviceEventSleepMonitorResult; import nodomain.freeyourgadget.gadgetbridge.devices.SampleProvider; import nodomain.freeyourgadget.gadgetbridge.devices.pebble.MorpheuzSampleProvider; +import nodomain.freeyourgadget.gadgetbridge.util.Prefs; public class AppMessageHandlerMorpheuz extends AppMessageHandler { @@ -56,6 +57,13 @@ public class AppMessageHandlerMorpheuz extends AppMessageHandler { return mPebbleProtocol.encodeApplicationMessagePush(PebbleProtocol.ENDPOINT_APPLICATIONMESSAGE, mUUID, pairs); } + @Override + public boolean isEnabled() { + Prefs prefs = GBApplication.getPrefs(); + int activityTracker = prefs.getInt("pebble_activitytracker", SampleProvider.PROVIDER_PEBBLE_HEALTH); + return (activityTracker == SampleProvider.PROVIDER_PEBBLE_MORPHEUZ); + } + @Override public GBDeviceEvent[] handleMessage(ArrayList> pairs) { int ctrl_message = 0; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java index f44f8dba..6938c45c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleProtocol.java @@ -1258,10 +1258,10 @@ public class PebbleProtocol extends GBDeviceProtocol { buf.put(PHONEVERSION_APPVERSION_MAGIC); buf.put((byte) 3); // major - buf.put((byte) 8); // minor - buf.put((byte) 1); // patch + buf.put((byte) 12); // minor + buf.put((byte) 0); // patch buf.order(ByteOrder.LITTLE_ENDIAN); - buf.putLong(0x00000000000000af); //flags + buf.putLong(0x00000000000001af); //flags return buf.array(); } @@ -2116,8 +2116,12 @@ public class PebbleProtocol extends GBDeviceProtocol { AppMessageHandler handler = mAppMessageHandlers.get(uuid); if (handler != null) { - ArrayList> dict = decodeDict(buf); - devEvts = handler.handleMessage(dict); + if (handler.isEnabled()) { + ArrayList> dict = decodeDict(buf); + devEvts = handler.handleMessage(dict); + } else { + devEvts = new GBDeviceEvent[]{null}; + } } else { try { devEvts = decodeDictToJSONAppMessage(uuid, buf);