From 523eabd29f5c90bad17b422f0b68ea3e08dec52e Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 20 Oct 2021 00:09:02 +0200 Subject: [PATCH] Eros: do don't run Handler on UI thread --- .../pump/omnipod/eros/OmnipodErosPumpPlugin.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPlugin.java b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPlugin.java index 9af022c4f3..f8e6d54732 100644 --- a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPlugin.java +++ b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/OmnipodErosPumpPlugin.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Handler; +import android.os.HandlerThread; import android.os.IBinder; import android.os.Looper; import android.os.SystemClock; @@ -159,7 +160,8 @@ public class OmnipodErosPumpPlugin extends PumpPluginBase implements Pump, Riley private int timeChangeRetries; private long nextPodWarningCheck; private long lastConnectionTimeMillis; - private final Handler loopHandler = new Handler(Looper.getMainLooper()); + private HandlerThread handlerThread; + private Handler loopHandler; private final Runnable statusChecker; @@ -279,6 +281,12 @@ public class OmnipodErosPumpPlugin extends PumpPluginBase implements Pump, Riley protected void onStart() { super.onStart(); + if (handlerThread == null) { + handlerThread = new HandlerThread(OmnipodErosPumpPlugin.class.getSimpleName()); + handlerThread.start(); + loopHandler = new Handler(handlerThread.getLooper()); + } + loopHandler.postDelayed(statusChecker, STATUS_CHECK_INTERVAL_MILLIS); // We can't do this in PodStateManager itself, because JodaTimeAndroid.init() hasn't been called yet