From 27d725853ff1c5045b29262a27028e033a54f812 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Wed, 13 May 2015 21:55:22 +0200 Subject: [PATCH] Add extra handler for generic notifications (instead of misusing onSMS handler). Pebble still does that, but not everybody has to. Small step for #53 --- .../gadgetbridge/AbstractBTDeviceSupport.java | 6 ++++++ .../nodomain/freeyourgadget/gadgetbridge/EventHandler.java | 2 ++ .../freeyourgadget/gadgetbridge/miband/MiBandSupport.java | 5 +++++ .../freeyourgadget/gadgetbridge/pebble/PebbleProtocol.java | 5 +++++ .../gadgetbridge/protocol/GBDeviceProtocol.java | 4 ++++ 5 files changed, 22 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AbstractBTDeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AbstractBTDeviceSupport.java index 911a29006..6d28ce75f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AbstractBTDeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/AbstractBTDeviceSupport.java @@ -63,6 +63,12 @@ public abstract class AbstractBTDeviceSupport extends AbstractDeviceSupport { sendToDevice(bytes); } + @Override + public void onGenericNotification(String title, String details) { + byte[] bytes = gbDeviceProtocol.encodeGenericNotification(title, details); + sendToDevice(bytes); + } + @Override public void onSetTime(long ts) { byte[] bytes = gbDeviceProtocol.encodeSetTime(ts); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java index 068ebd18b..842ba3e78 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/EventHandler.java @@ -5,6 +5,8 @@ public interface EventHandler { void onEmail(String from, String subject, String body); + void onGenericNotification(String title, String details); + void onSetTime(long ts); void onSetCallState(String number, String name, GBCommand command); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java index 7a7627720..c559acf09 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/miband/MiBandSupport.java @@ -126,6 +126,11 @@ public class MiBandSupport extends AbstractBTLEDeviceSupport { performDefaultNotification("email received"); } + @Override + public void onGenericNotification(String title, String details) { + performDefaultNotification("generic notification received"); + } + @Override public void onSetTime(long ts) { try { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleProtocol.java index 9a341aec8..835b0a3ad 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PebbleProtocol.java @@ -224,6 +224,11 @@ public class PebbleProtocol extends GBDeviceProtocol { return encodeMessage(ENDPOINT_NOTIFICATION, NOTIFICATION_EMAIL, 0, parts); } + @Override + public byte[] encodeGenericNotification(String title, String details) { + return encodeSMS(title, details); + } + @Override public byte[] encodeSetTime(long ts) { if (ts == -1) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceProtocol.java index ff42b60ce..752fb5978 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceProtocol.java @@ -12,6 +12,10 @@ public abstract class GBDeviceProtocol { return null; } + public byte[] encodeGenericNotification(String title, String details) { + return null; + } + public byte[] encodeSetTime(long ts) { return null; }