Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java |
| index 83fa3b72047a2a21562f4328744244f8eda9adfe..7992cf9234cd21a7dea63d82fffca957e51dee4d 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/BluetoothChooserDialog.java |
| @@ -66,6 +66,9 @@ public class BluetoothChooserDialog |
| // A pointer back to the native part of the implementation for this dialog. |
| long mNativeBluetoothChooserDialogPtr; |
| + // Used to keep track of when the Mode Changed Receiver is registered. |
| + boolean mIsLocationModeChangedReceiverRegistered = false; |
|
gone
2016/07/06 22:07:10
Default value for booleans in Java is false, so ad
ortuno
2016/07/06 22:20:03
In C++ the value is undefined so I developed the h
|
| + |
| @VisibleForTesting |
| final BroadcastReceiver mLocationModeBroadcastReceiver = new BroadcastReceiver() { |
| @Override |
| @@ -152,11 +155,16 @@ public class BluetoothChooserDialog |
| mActivity.registerReceiver(mLocationModeBroadcastReceiver, |
| new IntentFilter(LocationManager.MODE_CHANGED_ACTION)); |
| + mIsLocationModeChangedReceiverRegistered = true; |
| } |
| // Called to report the dialog's results back to native code. |
| private void finishDialog(int resultCode, String id) { |
| - mActivity.unregisterReceiver(mLocationModeBroadcastReceiver); |
| + if (mIsLocationModeChangedReceiverRegistered) { |
| + mActivity.unregisterReceiver(mLocationModeBroadcastReceiver); |
| + mIsLocationModeChangedReceiverRegistered = false; |
| + } |
| + |
| if (mNativeBluetoothChooserDialogPtr != 0) { |
| nativeOnDialogFinished(mNativeBluetoothChooserDialogPtr, resultCode, id); |
| } |