diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java index 3702181e7c..0bc1067afd 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleKitSupport.java @@ -75,7 +75,7 @@ class PebbleKitSupport { switch (action) { case PEBBLEKIT_ACTION_APP_START: case PEBBLEKIT_ACTION_APP_STOP: - uuid = (UUID) intent.getSerializableExtra("uuid"); + uuid = parseUUIDFromIntent(intent); if (uuid != null) { if (action.equals(PEBBLEKIT_ACTION_APP_STOP) && intent.getBooleanExtra(PEBBLEKIT_EXTRA_REOPEN_LAST_APP, false)) { @@ -87,7 +87,7 @@ class PebbleKitSupport { break; case PEBBLEKIT_ACTION_APP_SEND: int transaction_id = intent.getIntExtra("transaction_id", -1); - uuid = (UUID) intent.getSerializableExtra("uuid"); + uuid = parseUUIDFromIntent(intent); String jsonString = intent.getStringExtra("msg_data"); LOG.info("json string: " + jsonString); @@ -136,6 +136,14 @@ class PebbleKitSupport { ContextCompat.registerReceiver(mContext, mPebbleKitReceiver, intentFilter, ContextCompat.RECEIVER_EXPORTED); } + private UUID parseUUIDFromIntent(Intent intent) { + if (intent.getStringExtra("uuid") != null) { + return UUID.fromString(intent.getStringExtra("uuid")); + } else { + return (UUID) intent.getSerializableExtra("uuid"); + } + } + void sendAppMessageIntent(GBDeviceEventAppMessage appMessage) { Intent intent = new Intent(); intent.setAction(PEBBLEKIT_ACTION_APP_RECEIVE);