From ea41bbd1a910d9a2f0d764f58074f3818d93ce05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Mon, 9 Sep 2024 19:37:32 +0100 Subject: [PATCH] Garmin: Fix multiple FitAsyncProcessor running in parallel --- .../gadgetbridge/service/devices/garmin/GarminSupport.java | 5 +++-- .../service/devices/garmin/fit/FitAsyncProcessor.java | 3 --- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/GarminSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/GarminSupport.java index cab947e13..8c1b62831 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/GarminSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/GarminSupport.java @@ -545,7 +545,9 @@ public class GarminSupport extends AbstractBTLEDeviceSupport implements ICommuni return; } - // Keep the device marked as busy while we process the files asynchronously + // Keep the device marked as busy while we process the files asynchronously, but unset + // isBusyFetching so we do not start multiple processors + isBusyFetching = false; final FitAsyncProcessor fitAsyncProcessor = new FitAsyncProcessor(getContext(), getDevice()); final long[] lastNotificationUpdateTs = new long[]{System.currentTimeMillis()}; @@ -569,7 +571,6 @@ public class GarminSupport extends AbstractBTLEDeviceSupport implements ICommuni GB.signalActivityDataFinish(getDevice()); GB.updateTransferNotification(null, "", false, 100, getContext()); getDevice().sendDeviceUpdateIntent(getContext()); - isBusyFetching = false; } }); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/FitAsyncProcessor.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/FitAsyncProcessor.java index a29425dbd..8544874b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/FitAsyncProcessor.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/FitAsyncProcessor.java @@ -2,7 +2,6 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit; import android.content.Context; import android.os.Handler; -import android.widget.Toast; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,8 +14,6 @@ import nodomain.freeyourgadget.gadgetbridge.database.DBHandler; import nodomain.freeyourgadget.gadgetbridge.devices.PendingFileProvider; import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession; import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; -import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.deviceevents.FileDownloadedDeviceEvent; -import nodomain.freeyourgadget.gadgetbridge.util.GB; public class FitAsyncProcessor { private static final Logger LOG = LoggerFactory.getLogger(FitAsyncProcessor.class);