From 5e845e37f751c74512b9f7c7d69d8cceeec8d733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandra=20Ke=C3=9Fler?= Date: Fri, 28 Jul 2017 13:41:10 +0200 Subject: [PATCH 1/2] change to support changed IRuffyService --- .../d/ruffy/ruffy/driver/IRuffyService.aidl | 15 ++++++++++++++- .../de/jotomo/ruffyscripter/RuffyScripter.java | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl index 3baa4116e1..ded119c7b4 100644 --- a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl +++ b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl @@ -6,9 +6,22 @@ import org.monkey.d.ruffy.ruffy.driver.IRTHandler; interface IRuffyService { - void setHandler(IRTHandler handler); + void addHandler(IRTHandler handler); + void removeHandler(IRTHandler handler); + + /** Connect to the pump + * + * @return 0 if successful, -1 otherwise + */ int doRTConnect(); + + /** Disconnect from the pump */ void doRTDisconnect(); + + /*What's the meaning of 'changed'? + * changed means if a button state has been changed, like btton pressed is a change and button release another*/ void rtSendKey(byte keyCode, boolean changed); void resetPairing(); + boolean isConnected(); + boolean isBoundToPump(); } diff --git a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java index 1da4b681f4..33f52b1257 100644 --- a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java +++ b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java @@ -51,7 +51,7 @@ public class RuffyScripter { public RuffyScripter(final IRuffyService ruffyService) { this.ruffyService = ruffyService; try { - ruffyService.setHandler(mHandler); + ruffyService.addHandler(mHandler); idleDisconnectMonitorThread.start(); } catch (RemoteException e) { throw new RuntimeException(e); From d672f3c653bce9f6ae1e6997eb022be12390473d Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 30 Jul 2017 03:29:31 +0200 Subject: [PATCH 2/2] Remove hander on ruffy unbind. --- .../jotomo/ruffyscripter/RuffyScripter.java | 20 +++++++++++++++++++ .../plugins/PumpCombo/ComboPlugin.java | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java index 33f52b1257..72fe99c75d 100644 --- a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java +++ b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java @@ -48,16 +48,36 @@ public class RuffyScripter { private volatile boolean connected = false; private volatile long lastDisconnected = 0; + private boolean started = false; + public RuffyScripter(final IRuffyService ruffyService) { this.ruffyService = ruffyService; + } + + public void start() { try { ruffyService.addHandler(mHandler); idleDisconnectMonitorThread.start(); + started = true; } catch (RemoteException e) { throw new RuntimeException(e); } } + public void stop() { + if (started) { + try { + ruffyService.removeHandler(mHandler); + } catch (RemoteException e) { + log.warn("Removing IRTHandler from Ruffy service failed, ignoring", e); + } + } + } + + public boolean isRunning() { + return started; + } + private Thread idleDisconnectMonitorThread = new Thread(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java index 83e155075f..f714ef7bff 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java @@ -16,7 +16,6 @@ import android.support.v4.app.NotificationCompat; import com.squareup.otto.Subscribe; -import org.json.JSONException; import org.json.JSONObject; import org.monkey.d.ruffy.ruffy.driver.IRuffyService; import org.slf4j.Logger; @@ -189,11 +188,14 @@ public class ComboPlugin implements PluginBase, PumpInterface { @Override public void onServiceConnected(ComponentName name, IBinder service) { ruffyScripter = new RuffyScripter(IRuffyService.Stub.asInterface(service)); + ruffyScripter.start(); log.debug("ruffy serivce connected"); } @Override public void onServiceDisconnected(ComponentName name) { + ruffyScripter.stop(); + ruffyScripter = null; log.debug("ruffy service disconnected"); } };