From 3f421facabacc1f00a3a798c915955003708e499 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Fri, 11 May 2018 20:47:37 +0200 Subject: [PATCH] Always cleanup device and receiver in service when disconnecting Fixes #1093 I have no idea why the code was like this, so the change might have some bad consequences... --- .../externalevents/BluetoothStateChangeReceiver.java | 3 ++- .../gadgetbridge/service/DeviceCommunicationService.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/BluetoothStateChangeReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/BluetoothStateChangeReceiver.java index 9a45d3fea6..730ddfa145 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/BluetoothStateChangeReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/BluetoothStateChangeReceiver.java @@ -36,7 +36,7 @@ public class BluetoothStateChangeReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { + if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_ON) { Intent refreshIntent = new Intent(DeviceManager.ACTION_REFRESH_DEVICELIST); @@ -50,6 +50,7 @@ public class BluetoothStateChangeReceiver extends BroadcastReceiver { LOG.info("Bluetooth turned on => connecting..."); GBApplication.deviceService().connect(); } else if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_OFF) { + LOG.info("Bluetooth turned off => disconnecting..."); GBApplication.deviceService().disconnect(); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java index e2414333d8..3dcf4980b2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/DeviceCommunicationService.java @@ -409,11 +409,12 @@ public class DeviceCommunicationService extends Service implements SharedPrefere } case ACTION_DISCONNECT: { mDeviceSupport.dispose(); - if (mGBDevice != null && mGBDevice.getState() == GBDevice.State.WAITING_FOR_RECONNECT) { - setReceiversEnableState(false, false, null); + if (mGBDevice != null) { mGBDevice.setState(GBDevice.State.NOT_CONNECTED); mGBDevice.sendDeviceUpdateIntent(this); } + setReceiversEnableState(false, false, null); + mGBDevice = null; mDeviceSupport = null; break; }