Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abb0ffa8 authored by Anna Herrera's avatar Anna Herrera
Browse files

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
parent f3bbc777
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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);
    }

    /**