From 7b0ec9c32bf336aeb7e2563005c85122b2c58d3c Mon Sep 17 00:00:00 2001 From: scheib Date: Fri, 26 Feb 2016 15:24:24 -0800 Subject: bluetooth: android: register for adapter on/off events followup. Followup changes requested by tedchoc on https://codereview.chromium.org/1711393002 BUG=543060 Review URL: https://codereview.chromium.org/1745463002 Cr-Commit-Position: refs/heads/master@{#378022} --- chrome/browser/ui/android/bluetooth_chooser_android.cc | 16 ++++++++++------ chrome/browser/ui/android/bluetooth_chooser_android.h | 5 +++-- .../device/bluetooth/ChromeBluetoothAdapter.java | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/chrome/browser/ui/android/bluetooth_chooser_android.cc b/chrome/browser/ui/android/bluetooth_chooser_android.cc index d08203f..5631e64 100644 --- a/chrome/browser/ui/android/bluetooth_chooser_android.cc +++ b/chrome/browser/ui/android/bluetooth_chooser_android.cc @@ -62,12 +62,12 @@ bool BluetoothChooserAndroid::CanAskForScanningPermission() { } void BluetoothChooserAndroid::SetAdapterPresence(AdapterPresence presence) { + JNIEnv* env = AttachCurrentThread(); if (presence != AdapterPresence::POWERED_ON) { - Java_BluetoothChooserDialog_notifyAdapterTurnedOff(AttachCurrentThread(), - java_dialog_.obj()); + Java_BluetoothChooserDialog_notifyAdapterTurnedOff(env, java_dialog_.obj()); } else { - Java_BluetoothChooserDialog_notifyAdapterTurnedOn(AttachCurrentThread(), - java_dialog_.obj()); + Java_BluetoothChooserDialog_notifyAdapterTurnedOn(env, java_dialog_.obj()); + RestartSearch(); } } @@ -130,11 +130,15 @@ void BluetoothChooserAndroid::OnDialogFinished( NOTREACHED(); } -void BluetoothChooserAndroid::RestartSearch(JNIEnv* env, - const JavaParamRef& obj) { +void BluetoothChooserAndroid::RestartSearch() { event_handler_.Run(Event::RESCAN, ""); } +void BluetoothChooserAndroid::RestartSearch(JNIEnv*, + const JavaParamRef&) { + RestartSearch(); +} + void BluetoothChooserAndroid::ShowBluetoothOverviewLink( JNIEnv* env, const JavaParamRef& obj) { diff --git a/chrome/browser/ui/android/bluetooth_chooser_android.h b/chrome/browser/ui/android/bluetooth_chooser_android.h index fc77e63..0af0b1a 100644 --- a/chrome/browser/ui/android/bluetooth_chooser_android.h +++ b/chrome/browser/ui/android/bluetooth_chooser_android.h @@ -37,8 +37,9 @@ class BluetoothChooserAndroid : public content::BluetoothChooser { const base::android::JavaParamRef& device_id); // Notify bluetooth stack that the search needs to be re-issued. - void RestartSearch(JNIEnv* env, - const base::android::JavaParamRef& obj); + void RestartSearch(); + // Calls RestartSearch(). Unused JNI parameters enable calls from Java. + void RestartSearch(JNIEnv*, const base::android::JavaParamRef&); void ShowBluetoothOverviewLink( JNIEnv* env, diff --git a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java index 54a8eb9..a7751f7 100644 --- a/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java +++ b/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java @@ -34,7 +34,8 @@ final class ChromeBluetoothAdapter extends BroadcastReceiver { private static final String TAG = "Bluetooth"; private long mNativeBluetoothAdapterAndroid; - private Wrappers.BluetoothAdapterWrapper mAdapter; + // mAdapter is final to ensure registerReceiver is followed by unregisterReceiver. + private final Wrappers.BluetoothAdapterWrapper mAdapter; private int mNumDiscoverySessions; private ScanCallback mScanCallback; -- cgit v1.1