From 31122f0b0947bca803ec19e7c580b0b555ea465e Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 11 Dec 2016 20:25:46 +0100 Subject: [PATCH] Pebble: Propagate watch apps launches outside of PebbleProtocol This does not do anything yet. --- .../GBDeviceEventAppManagement.java | 4 +++- .../devices/pebble/PebbleIoThread.java | 3 +++ .../devices/pebble/PebbleProtocol.java | 21 ++++++++++++++++--- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventAppManagement.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventAppManagement.java index 99850c5f..41617f55 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventAppManagement.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/deviceevents/GBDeviceEventAppManagement.java @@ -12,12 +12,14 @@ public class GBDeviceEventAppManagement extends GBDeviceEvent { UNKNOWN, INSTALL, DELETE, + START, + STOP, } public enum Event { UNKNOWN, SUCCESS, - ACKNOLEDGE, + ACKNOWLEDGE, FAILURE, REQUEST, } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java index 4e895849..45035477 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java @@ -562,6 +562,9 @@ class PebbleIoThread extends GBDeviceIoThread { break; } break; + case START: + LOG.info("got GBDeviceEventAppManagement START event for uuid: " + appMgmt.uuid); + break; default: break; } 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 579237a6..065b7ade 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 @@ -1915,7 +1915,13 @@ public class PebbleProtocol extends GBDeviceProtocol { if (handler != null) { return handler.pushMessage(); } - break; + else { + GBDeviceEventAppManagement gbDeviceEventAppManagement = new GBDeviceEventAppManagement(); + gbDeviceEventAppManagement.uuid = uuid; + gbDeviceEventAppManagement.type = GBDeviceEventAppManagement.EventType.START; + gbDeviceEventAppManagement.event = GBDeviceEventAppManagement.Event.SUCCESS; + return new GBDeviceEvent[] {gbDeviceEventAppManagement}; + } case APPRUNSTATE_STOP: LOG.info(ENDPOINT_NAME + ": stopped " + uuid); break; @@ -2246,9 +2252,18 @@ public class PebbleProtocol extends GBDeviceProtocol { } } else { try { - devEvts = decodeDictToJSONAppMessage(uuid, buf); + if (endpoint == ENDPOINT_APPLICATIONMESSAGE) { + devEvts = decodeDictToJSONAppMessage(uuid, buf); + } + else { + GBDeviceEventAppManagement gbDeviceEventAppManagement = new GBDeviceEventAppManagement(); + gbDeviceEventAppManagement.uuid = uuid; + gbDeviceEventAppManagement.type = GBDeviceEventAppManagement.EventType.START; + gbDeviceEventAppManagement.event = GBDeviceEventAppManagement.Event.SUCCESS; + devEvts = new GBDeviceEvent[] {gbDeviceEventAppManagement}; + } } catch (JSONException e) { - e.printStackTrace(); + LOG.error(e.getMessage()); return null; } }