Bluetooth: only unregisterReceiver if we register
We can get to onDestroy() without registering now.
Test: none
Fixes: 36501241
Change-Id: I90da3b350f9951993238d51f9fde86ccb335cafd
(cherry picked from commit af34ed06f1b4b3734d883c7398b713b20585e1bd)
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingService.java b/src/com/android/settings/bluetooth/BluetoothPairingService.java
index 5dfd283..41a5cce 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingService.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingService.java
@@ -65,6 +65,7 @@
return pairingIntent;
}
+ private boolean mRegistered = false;
private final BroadcastReceiver mCancelReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -130,6 +131,7 @@
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
filter.addAction(BluetoothDevice.ACTION_PAIRING_CANCEL);
registerReceiver(mCancelReceiver, filter);
+ mRegistered = true;
startForeground(NOTIFICATION_ID, builder.getNotification());
return START_REDELIVER_INTENT;
@@ -137,7 +139,10 @@
@Override
public void onDestroy() {
- unregisterReceiver(mCancelReceiver);
+ if (mRegistered) {
+ unregisterReceiver(mCancelReceiver);
+ mRegistered = false;
+ }
stopForeground(true);
}