diff options
author | 2024-12-10 12:03:38 -0800 | |
---|---|---|
committer | 2024-12-10 13:16:09 -0800 | |
commit | 1f3cf67a2689f2c76f725691864ea6f20de4e5b5 (patch) | |
tree | d8d1f183e21963cd551ecb08857b066dffba0044 | |
parent | fde407b003638f389954c2c9d93db06c1168aa8c (diff) |
24Q4: Removal of respect_ble_scan_setting
Bug: 341783936
Fix: 341783936
Flag: com.android.bluetooth.flags.respect_ble_scan_setting
Test: atest ServiceBluetoothRoboTests
Change-Id: I8e9fd57087e4d7cd19566d0356863cea2c24b732
-rw-r--r-- | flags/system_service.aconfig | 10 | ||||
-rw-r--r-- | service/src/com/android/server/bluetooth/BluetoothManagerService.java | 62 |
2 files changed, 7 insertions, 65 deletions
diff --git a/flags/system_service.aconfig b/flags/system_service.aconfig index ab542121b9..fba0792eca 100644 --- a/flags/system_service.aconfig +++ b/flags/system_service.aconfig @@ -52,16 +52,6 @@ flag { } flag { - name: "respect_ble_scan_setting" - namespace: "bluetooth" - description: "No longer allow BLE_ON mode when the settings is explicitly disable" - metadata { - purpose: PURPOSE_BUGFIX - } - bug: "341783936" -} - -flag { name: "system_server_messenger" namespace: "bluetooth" description: "Replace binder call to the system server with a Messenger to enforce thread safety" diff --git a/service/src/com/android/server/bluetooth/BluetoothManagerService.java b/service/src/com/android/server/bluetooth/BluetoothManagerService.java index f9e53ff65e..0cfdfea987 100644 --- a/service/src/com/android/server/bluetooth/BluetoothManagerService.java +++ b/service/src/com/android/server/bluetooth/BluetoothManagerService.java @@ -62,7 +62,6 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.database.ContentObserver; import android.os.Binder; import android.os.Build; import android.os.Bundle; @@ -79,7 +78,6 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; -import android.provider.Settings.SettingNotFoundException; import android.sysprop.BluetoothProperties; import android.util.proto.ProtoOutputStream; @@ -589,11 +587,7 @@ class BluetoothManagerService { mHandler = new BluetoothHandler(mLooper); // Observe BLE scan only mode settings change. - if (Flags.respectBleScanSetting()) { - BleScanSettingListener.initialize(mLooper, mContentResolver, this::onBleScanDisabled); - } else { - registerForBleScanModeChange(); - } + BleScanSettingListener.initialize(mLooper, mContentResolver, this::onBleScanDisabled); // Disable ASHA if BLE is not supported, overriding any system property if (!isBleSupported(mContext)) { @@ -861,20 +855,10 @@ class BluetoothManagerService { if (AirplaneModeListener.isOn() && !mEnable) { return false; } - if (Flags.respectBleScanSetting()) { - if (SatelliteModeListener.isOn()) { - return false; - } - return BleScanSettingListener.isScanAllowed(); - } - try { - return Settings.Global.getInt( - mContentResolver, BleScanSettingListener.BLE_SCAN_ALWAYS_AVAILABLE) - != 0; - } catch (SettingNotFoundException e) { - // The settings is considered as false by default. + if (SatelliteModeListener.isOn()) { return false; } + return BleScanSettingListener.isScanAllowed(); } boolean isHearingAidProfileSupported() { @@ -892,32 +876,6 @@ class BluetoothManagerService { return mAdapter.isMediaProfileConnected(mContext.getAttributionSource()); } - // Monitor change of BLE scan only mode settings. - private void registerForBleScanModeChange() { - ContentObserver contentObserver = - new ContentObserver(new Handler(mLooper)) { - @Override - public void onChange(boolean selfChange) { - if (isBleScanAvailable()) { - // Nothing to do - return; - } - // BLE scan is not available. - disableBleScanMode(); - clearBleApps(); - if (mState.oneOf(STATE_BLE_ON)) { - ActiveLogs.add(ENABLE_DISABLE_REASON_APPLICATION_REQUEST, false); - bleOnToOff(); - } - } - }; - - mContentResolver.registerContentObserver( - Settings.Global.getUriFor(BleScanSettingListener.BLE_SCAN_ALWAYS_AVAILABLE), - false, - contentObserver); - } - // Disable ble scan only mode. private void disableBleScanMode() { if (mState.oneOf(STATE_ON)) { @@ -972,7 +930,7 @@ class BluetoothManagerService { return false; } - if (Flags.respectBleScanSetting() && !BleScanSettingListener.isScanAllowed()) { + if (!BleScanSettingListener.isScanAllowed()) { Log.d(TAG, "enableBle: not enabling - Scan mode is not allowed."); return false; } @@ -1005,12 +963,6 @@ class BluetoothManagerService { + (" isBinding=" + isBinding()) + (" mState=" + mState)); - // Remove this with flag, preventing a "disable" make no sense, even in satellite mode - if (!Flags.respectBleScanSetting() && isSatelliteModeOn()) { - Log.d(TAG, "disableBle: not disabling - satellite mode is on."); - return false; - } - if (mState.oneOf(STATE_OFF)) { Log.i(TAG, "disableBle: Already disabled"); return false; @@ -1075,9 +1027,9 @@ class BluetoothManagerService { Log.d(TAG, "sendBrEdrDownCallback: mAdapter is null"); return; } - boolean scanIsAllowed = - !Flags.respectBleScanSetting() || BleScanSettingListener.isScanAllowed(); - if (!AirplaneModeListener.isOn() && isBleAppPresent() && scanIsAllowed) { + if (BleScanSettingListener.isScanAllowed() + && !AirplaneModeListener.isOn() + && isBleAppPresent()) { // Need to stay at BLE ON. Disconnect all Gatt connections Log.i(TAG, "sendBrEdrDownCallback: Staying in BLE_ON"); try { |