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"); } };