From 11234fe8c1a8cb5296b46df5f4e441cf65de955e Mon Sep 17 00:00:00 2001 From: Xinyi Zhou Date: Tue, 12 Dec 2023 19:53:21 +0000 Subject: [PATCH] Revert "[nearby] Add disable logic" This reverts commit 3f5aea69f9f36097b407822b0cc177c0df51f061. Reason for revert: Caused crash Fix: 312430336 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:4ed63b1873841a37f3ebbef5ff5072a253fa6186) Merged-In: Id664a6cba297674d8edeb0af700df1e96baaf70e Change-Id: Id664a6cba297674d8edeb0af700df1e96baaf70e --- .../managers/DiscoveryProviderManager.java | 20 ++----------- .../DiscoveryProviderManagerLegacy.java | 25 +++------------- .../DiscoveryProviderManagerLegacyTest.java | 20 +++++-------- .../DiscoveryProviderManagerTest.java | 29 +++++-------------- 4 files changed, 22 insertions(+), 72 deletions(-) diff --git a/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManager.java b/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManager.java index fe952fea69..5c04a6cf28 100644 --- a/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManager.java +++ b/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManager.java @@ -142,6 +142,8 @@ public class DiscoveryProviderManager extends /** Called after boot completed. */ public void init() { + // Register BLE only scan when Bluetooth is turned off + setBleScanEnabled(); if (mInjector.getContextHubManager() != null) { mChreDiscoveryProvider.init(); } @@ -165,14 +167,12 @@ public class DiscoveryProviderManager extends @Override public void onRegister() { Log.v(TAG, "Registering the DiscoveryProviderManager."); - enableBle(); startProviders(); } @Override public void onUnregister() { Log.v(TAG, "Unregistering the DiscoveryProviderManager."); - disableBle(); stopProviders(); } @@ -322,7 +322,7 @@ public class DiscoveryProviderManager extends * @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully * registers Nearby service to Ble scan when Blutooth is off. */ - public boolean enableBle() { + public boolean setBleScanEnabled() { BluetoothAdapter adapter = mInjector.getBluetoothAdapter(); if (adapter == null) { Log.e(TAG, "BluetoothAdapter is null."); @@ -341,18 +341,4 @@ public class DiscoveryProviderManager extends } return true; } - - /** - * Unregisters Nearby service to Ble. - * Ble can be disabled when there is no app register the Ble service, so we can only to know we - * successfully unregister Ble by getting result from {@link BluetoothAdapter#disableBle()}. - */ - public boolean disableBle() { - BluetoothAdapter adapter = mInjector.getBluetoothAdapter(); - if (adapter == null) { - Log.e(TAG, "BluetoothAdapter is null."); - return false; - } - return adapter.disableBLE(); - } } diff --git a/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManagerLegacy.java b/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManagerLegacy.java index 65168d0ca4..549a6bf757 100644 --- a/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManagerLegacy.java +++ b/nearby/service/java/com/android/server/nearby/managers/DiscoveryProviderManagerLegacy.java @@ -221,6 +221,8 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider /** Called after boot completed. */ public void init() { + // Register BLE only scan when Bluetooth is turned off + setBleScanEnabled(); if (mInjector.getContextHubManager() != null) { mChreDiscoveryProvider.init(); } @@ -344,9 +346,6 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider Log.w(TAG, "failed to start any provider because client disabled BLE"); return false; } - if (!enableBle()) { - return false; - } List scanFilters = getPresenceScanFilters(); boolean chreOnly = isChreOnly(scanFilters); Boolean chreAvailable = mChreDiscoveryProvider.available(); @@ -414,9 +413,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider } } - @VisibleForTesting - protected void stopProviders() { - disableBle(); + private void stopProviders() { stopBleProvider(); stopChreProvider(); } @@ -515,7 +512,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider * @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully * registers Nearby service to Ble scan when Blutooth is off. */ - public boolean enableBle() { + public boolean setBleScanEnabled() { BluetoothAdapter adapter = mInjector.getBluetoothAdapter(); if (adapter == null) { Log.e(TAG, "BluetoothAdapter is null."); @@ -534,18 +531,4 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider } return true; } - - /** - * Unregisters Nearby service to Ble. - * Ble can be disabled when there is no app register the Ble service, so we can only to know we - * successfully unregister Ble by getting result from {@link BluetoothAdapter#disableBle()}. - */ - public boolean disableBle() { - BluetoothAdapter adapter = mInjector.getBluetoothAdapter(); - if (adapter == null) { - Log.e(TAG, "BluetoothAdapter is null."); - return false; - } - return adapter.disableBLE(); - } } diff --git a/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerLegacyTest.java b/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerLegacyTest.java index c04cb38c57..a8c30a86a9 100644 --- a/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerLegacyTest.java +++ b/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerLegacyTest.java @@ -173,10 +173,7 @@ public class DiscoveryProviderManagerLegacyTest { @Test public void test_enableBleWhenBleOff() throws Exception { when(mBluetoothAdapter.isEnabled()).thenReturn(false); - ScanRequest scanRequest = new ScanRequest.Builder() - .setScanType(SCAN_TYPE_NEARBY_PRESENCE) - .addScanFilter(getChreOnlyPresenceScanFilter()).build(); - mDiscoveryProviderManager.startProviders(scanRequest); + mDiscoveryProviderManager.init(); verify(mBluetoothAdapter, times(1)).enableBLE(); } @@ -336,10 +333,9 @@ public class DiscoveryProviderManagerLegacyTest { .isTrue(); assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isNotNull(); - manager.stopProviders(); + manager.stopChreProvider(); Thread.sleep(200); // The filters should be cleared right after. - verify(mBluetoothAdapter, times(1)).disableBLE(); assertThat(manager.mChreDiscoveryProvider.getController().isStarted()) .isFalse(); assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isEmpty(); @@ -401,7 +397,7 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -411,7 +407,7 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -421,7 +417,7 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -431,7 +427,7 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isFalse(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse(); } @Test @@ -440,7 +436,7 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isLeEnabled()).thenReturn(false); when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -449,6 +445,6 @@ public class DiscoveryProviderManagerLegacyTest { when(mBluetoothAdapter.isLeEnabled()).thenReturn(false); when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isFalse(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse(); } } diff --git a/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerTest.java b/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerTest.java index d747e59534..b05893fa4d 100644 --- a/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerTest.java +++ b/nearby/tests/unit/src/com/android/server/nearby/managers/DiscoveryProviderManagerTest.java @@ -166,25 +166,10 @@ public class DiscoveryProviderManagerTest { @Test public void test_enableBleWhenBleOff() throws Exception { when(mBluetoothAdapter.isEnabled()).thenReturn(false); - ScanRequest scanRequest = new ScanRequest.Builder() - .setScanType(SCAN_TYPE_NEARBY_PRESENCE) - .addScanFilter(getChreOnlyPresenceScanFilter()).build(); - mDiscoveryProviderManager.registerScanListener(scanRequest, mScanListener, mCallerIdentity); + mDiscoveryProviderManager.init(); verify(mBluetoothAdapter, times(1)).enableBLE(); } - @Test - public void test_disBleBleWhenNoClient() throws Exception { - when(mBluetoothAdapter.isEnabled()).thenReturn(false); - ScanRequest scanRequest = new ScanRequest.Builder() - .setScanType(SCAN_TYPE_NEARBY_PRESENCE) - .addScanFilter(getChreOnlyPresenceScanFilter()).build(); - mDiscoveryProviderManager.registerScanListener(scanRequest, mScanListener, mCallerIdentity); - verify(mBluetoothAdapter, times(1)).enableBLE(); - mDiscoveryProviderManager.unregisterScanListener(mScanListener); - verify(mBluetoothAdapter, times(1)).disableBLE(); - } - @Test public void testStartProviders_chreOnlyChreAvailable_bleProviderNotStarted() { reset(mBluetoothController); @@ -373,7 +358,7 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -383,7 +368,7 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -393,7 +378,7 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(true); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -403,7 +388,7 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true); when(mBluetoothAdapter.enableBLE()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isFalse(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse(); } @Test @@ -412,7 +397,7 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isLeEnabled()).thenReturn(false); when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isTrue(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue(); } @Test @@ -421,6 +406,6 @@ public class DiscoveryProviderManagerTest { when(mBluetoothAdapter.isLeEnabled()).thenReturn(false); when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false); - assertThat(mDiscoveryProviderManager.enableBle()).isFalse(); + assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse(); } }