From a50cc8d42da94e561495d5842d8139be55f2c616 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Wed, 6 Jan 2021 15:12:00 +0100 Subject: [PATCH] InifiniTime: set device busy during firmware upgrade Since this is the only busy task in use we just call gbDevice.unsetBusyTask() upon completion/error --- .../service/devices/pinetime/PineTimeJFSupport.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pinetime/PineTimeJFSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pinetime/PineTimeJFSupport.java index 2be3e5e06..de5dcd1c0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pinetime/PineTimeJFSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pinetime/PineTimeJFSupport.java @@ -167,7 +167,7 @@ public class PineTimeJFSupport extends AbstractBTLEDeviceSupport implements DfuL handler = null; controller = null; DfuServiceListenerHelper.unregisterProgressListener(getContext(), progressListener); - + gbDevice.unsetBusyTask(); // TODO: Request reconnection } @@ -180,11 +180,13 @@ public class PineTimeJFSupport extends AbstractBTLEDeviceSupport implements DfuL @Override public void onDfuAborted(final String mac) { this.setProgressText(getContext().getString(R.string.devicestatus_upload_aborted)); + gbDevice.unsetBusyTask(); } @Override public void onError(final String mac, int error, int errorType, final String message) { this.setProgressText(getContext().getString(R.string.devicestatus_upload_failed)); + gbDevice.unsetBusyTask(); } @Override @@ -312,11 +314,15 @@ public class PineTimeJFSupport extends AbstractBTLEDeviceSupport implements DfuL LocalBroadcastManager.getInstance(getContext()).sendBroadcast(new Intent(GB.ACTION_SET_PROGRESS_TEXT) .putExtra(GB.DISPLAY_MESSAGE_MESSAGE, getContext().getString(R.string.devicestatus_upload_starting)) ); + gbDevice.setBusyTask("firmware upgrade"); } else { // TODO: Handle invalid firmware files } } catch (Exception ex) { GB.toast(getContext(), getContext().getString(R.string.updatefirmwareoperation_write_failed) + ":" + ex.getMessage(), Toast.LENGTH_LONG, GB.ERROR, ex); + if (gbDevice.isBusy()) { + gbDevice.unsetBusyTask(); + } } }