Revert "[nearby] Add disable logic" am: 11234fe8c1 am: fa7f79c589

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2871220

Change-Id: Ic2fa7b8f776f9bb14d7a1b0058badb9cb457575c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Xinyi Zhou
2023-12-13 21:14:50 +00:00
committed by Automerger Merge Worker
4 changed files with 22 additions and 72 deletions

View File

@@ -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();
}
}

View File

@@ -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<ScanFilter> 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();
}
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}