From 4a00f4c06867d3d694728a8ff5545583dd9a2385 Mon Sep 17 00:00:00 2001 From: Mikael Vallerie Date: Thu, 14 Mar 2019 15:25:51 +0100 Subject: [PATCH] More fixes : acquiring the wakelock BEFORE scheduling the Timer --- .../service/devices/huami/HuamiSupport.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java index 870e9cf93..f98781e42 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/huami/HuamiSupport.java @@ -1321,13 +1321,13 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { LOG.info("Activating timer"); final Timer buttonActionTimer = new Timer("Mi Band Button Action Timer"); - buttonActionTimer.schedule(new TimerTask() { + buttonActionTimer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { runButtonAction(); buttonActionTimer.cancel(); } - }, buttonActionDelay); + }, buttonActionDelay, buttonActionDelay); } else { LOG.info("Activating button action"); @@ -1335,18 +1335,17 @@ public class HuamiSupport extends AbstractBTLEDeviceSupport { } if (isCustomMenuEnabled) { + if(isWakelockEnabled) { + LOG.info("Acquiring wakelock"); + PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE); + deviceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiSupport:wakelock"); + deviceWakeLock.acquire(); + } final Timer customMenuTimer = new Timer("Mi Band Button Action Custom Menu"); customMenuTimer.schedule(new TimerTask() { @Override public void run() { LOG.info("Activating custom menu"); - if(isWakelockEnabled) { - LOG.info("Acquiring wakelock"); - PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE); - deviceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "nodomain.freeyourgadget.gadgetbridge.service.devices.huami.HuamiSupport:wakelock"); - deviceWakeLock.acquire(); - } - resetCustomMenuTimerTimeout(); runCustomMenu(); customMenuTimer.cancel();