summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Anna Herrera <annaherrera@google.com> 2023-04-06 17:36:15 +0000
committer Anna Herrera <annaherrera@google.com> 2023-04-06 18:02:33 +0000
commitabb0ffa87d2ec1568cba41ec78f6749271e4a6cc (patch)
treecaa3fb1ea1d252ff7545a3229dea6dc07fbdf1ad
parentf3bbc7779b9c11277fafd4cedd6b7c77a835b0a9 (diff)
Monitor BLE_SCAN_ALWAYS_AVAILABLE setting
Check for updates to the Bluetooth scanning setting by montioring BLE_SCAN_ALWAYS_AVAILABLE instead of ACTION_BLE_STATE_CHANGED. Bug: 273547029 Test: Disable main BT setting, disable Bluetooth scanning, verify that CHRE receives a BT setting update, enable Bluetooth scanning, verify that CHRE receives a BT setting update. Test: Disable Bluetooth scanning, disable main BT setting verify that CHRE receives a BT setting update, enable main BT setting, verify that CHRE receives a BT setting update. Change-Id: I147d8632a02d675cbd426108a6099e5dc887b8a7
-rw-r--r--services/core/java/com/android/server/location/contexthub/ContextHubService.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/location/contexthub/ContextHubService.java b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
index 653b71828c5b..5f783742bd26 100644
--- a/services/core/java/com/android/server/location/contexthub/ContextHubService.java
+++ b/services/core/java/com/android/server/location/contexthub/ContextHubService.java
@@ -519,17 +519,24 @@ public class ContextHubService extends IContextHubService.Stub {
BroadcastReceiver btReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())
- || BluetoothAdapter.ACTION_BLE_STATE_CHANGED.equals(
- intent.getAction())) {
+ if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
sendBtSettingUpdate(/* forceUpdate= */ false);
}
}
};
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
- filter.addAction(BluetoothAdapter.ACTION_BLE_STATE_CHANGED);
mContext.registerReceiver(btReceiver, filter);
+
+ mContext.getContentResolver().registerContentObserver(
+ Settings.Global.getUriFor(Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE),
+ /* notifyForDescendants= */ false,
+ new ContentObserver(/* handler= */ null) {
+ @Override
+ public void onChange(boolean selfChange) {
+ sendBtSettingUpdate(/* forceUpdate= */ false);
+ }
+ }, UserHandle.USER_ALL);
}
/**