Revert "[nearby] Add disable logic"
This reverts commit 3f5aea69f9.
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
This commit is contained in:
@@ -142,6 +142,8 @@ public class DiscoveryProviderManager extends
|
|||||||
|
|
||||||
/** Called after boot completed. */
|
/** Called after boot completed. */
|
||||||
public void init() {
|
public void init() {
|
||||||
|
// Register BLE only scan when Bluetooth is turned off
|
||||||
|
setBleScanEnabled();
|
||||||
if (mInjector.getContextHubManager() != null) {
|
if (mInjector.getContextHubManager() != null) {
|
||||||
mChreDiscoveryProvider.init();
|
mChreDiscoveryProvider.init();
|
||||||
}
|
}
|
||||||
@@ -165,14 +167,12 @@ public class DiscoveryProviderManager extends
|
|||||||
@Override
|
@Override
|
||||||
public void onRegister() {
|
public void onRegister() {
|
||||||
Log.v(TAG, "Registering the DiscoveryProviderManager.");
|
Log.v(TAG, "Registering the DiscoveryProviderManager.");
|
||||||
enableBle();
|
|
||||||
startProviders();
|
startProviders();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUnregister() {
|
public void onUnregister() {
|
||||||
Log.v(TAG, "Unregistering the DiscoveryProviderManager.");
|
Log.v(TAG, "Unregistering the DiscoveryProviderManager.");
|
||||||
disableBle();
|
|
||||||
stopProviders();
|
stopProviders();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,7 +322,7 @@ public class DiscoveryProviderManager extends
|
|||||||
* @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully
|
* @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully
|
||||||
* registers Nearby service to Ble scan when Blutooth is off.
|
* registers Nearby service to Ble scan when Blutooth is off.
|
||||||
*/
|
*/
|
||||||
public boolean enableBle() {
|
public boolean setBleScanEnabled() {
|
||||||
BluetoothAdapter adapter = mInjector.getBluetoothAdapter();
|
BluetoothAdapter adapter = mInjector.getBluetoothAdapter();
|
||||||
if (adapter == null) {
|
if (adapter == null) {
|
||||||
Log.e(TAG, "BluetoothAdapter is null.");
|
Log.e(TAG, "BluetoothAdapter is null.");
|
||||||
@@ -341,18 +341,4 @@ public class DiscoveryProviderManager extends
|
|||||||
}
|
}
|
||||||
return true;
|
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,6 +221,8 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
|
|
||||||
/** Called after boot completed. */
|
/** Called after boot completed. */
|
||||||
public void init() {
|
public void init() {
|
||||||
|
// Register BLE only scan when Bluetooth is turned off
|
||||||
|
setBleScanEnabled();
|
||||||
if (mInjector.getContextHubManager() != null) {
|
if (mInjector.getContextHubManager() != null) {
|
||||||
mChreDiscoveryProvider.init();
|
mChreDiscoveryProvider.init();
|
||||||
}
|
}
|
||||||
@@ -344,9 +346,6 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
Log.w(TAG, "failed to start any provider because client disabled BLE");
|
Log.w(TAG, "failed to start any provider because client disabled BLE");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!enableBle()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
List<ScanFilter> scanFilters = getPresenceScanFilters();
|
List<ScanFilter> scanFilters = getPresenceScanFilters();
|
||||||
boolean chreOnly = isChreOnly(scanFilters);
|
boolean chreOnly = isChreOnly(scanFilters);
|
||||||
Boolean chreAvailable = mChreDiscoveryProvider.available();
|
Boolean chreAvailable = mChreDiscoveryProvider.available();
|
||||||
@@ -414,9 +413,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
private void stopProviders() {
|
||||||
protected void stopProviders() {
|
|
||||||
disableBle();
|
|
||||||
stopBleProvider();
|
stopBleProvider();
|
||||||
stopChreProvider();
|
stopChreProvider();
|
||||||
}
|
}
|
||||||
@@ -515,7 +512,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
* @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully
|
* @return {@code true} when Nearby currently can scan through Bluetooth or Ble or successfully
|
||||||
* registers Nearby service to Ble scan when Blutooth is off.
|
* registers Nearby service to Ble scan when Blutooth is off.
|
||||||
*/
|
*/
|
||||||
public boolean enableBle() {
|
public boolean setBleScanEnabled() {
|
||||||
BluetoothAdapter adapter = mInjector.getBluetoothAdapter();
|
BluetoothAdapter adapter = mInjector.getBluetoothAdapter();
|
||||||
if (adapter == null) {
|
if (adapter == null) {
|
||||||
Log.e(TAG, "BluetoothAdapter is null.");
|
Log.e(TAG, "BluetoothAdapter is null.");
|
||||||
@@ -534,18 +531,4 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
}
|
}
|
||||||
return true;
|
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -173,10 +173,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_enableBleWhenBleOff() throws Exception {
|
public void test_enableBleWhenBleOff() throws Exception {
|
||||||
when(mBluetoothAdapter.isEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isEnabled()).thenReturn(false);
|
||||||
ScanRequest scanRequest = new ScanRequest.Builder()
|
mDiscoveryProviderManager.init();
|
||||||
.setScanType(SCAN_TYPE_NEARBY_PRESENCE)
|
|
||||||
.addScanFilter(getChreOnlyPresenceScanFilter()).build();
|
|
||||||
mDiscoveryProviderManager.startProviders(scanRequest);
|
|
||||||
verify(mBluetoothAdapter, times(1)).enableBLE();
|
verify(mBluetoothAdapter, times(1)).enableBLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -336,10 +333,9 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
.isTrue();
|
.isTrue();
|
||||||
assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isNotNull();
|
assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isNotNull();
|
||||||
|
|
||||||
manager.stopProviders();
|
manager.stopChreProvider();
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
// The filters should be cleared right after.
|
// The filters should be cleared right after.
|
||||||
verify(mBluetoothAdapter, times(1)).disableBLE();
|
|
||||||
assertThat(manager.mChreDiscoveryProvider.getController().isStarted())
|
assertThat(manager.mChreDiscoveryProvider.getController().isStarted())
|
||||||
.isFalse();
|
.isFalse();
|
||||||
assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isEmpty();
|
assertThat(manager.mChreDiscoveryProvider.getFiltersLocked()).isEmpty();
|
||||||
@@ -401,7 +397,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -411,7 +407,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -421,7 +417,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -431,7 +427,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(false);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isFalse();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -440,7 +436,7 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -449,6 +445,6 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isFalse();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,25 +166,10 @@ public class DiscoveryProviderManagerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_enableBleWhenBleOff() throws Exception {
|
public void test_enableBleWhenBleOff() throws Exception {
|
||||||
when(mBluetoothAdapter.isEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isEnabled()).thenReturn(false);
|
||||||
ScanRequest scanRequest = new ScanRequest.Builder()
|
mDiscoveryProviderManager.init();
|
||||||
.setScanType(SCAN_TYPE_NEARBY_PRESENCE)
|
|
||||||
.addScanFilter(getChreOnlyPresenceScanFilter()).build();
|
|
||||||
mDiscoveryProviderManager.registerScanListener(scanRequest, mScanListener, mCallerIdentity);
|
|
||||||
verify(mBluetoothAdapter, times(1)).enableBLE();
|
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
|
@Test
|
||||||
public void testStartProviders_chreOnlyChreAvailable_bleProviderNotStarted() {
|
public void testStartProviders_chreOnlyChreAvailable_bleProviderNotStarted() {
|
||||||
reset(mBluetoothController);
|
reset(mBluetoothController);
|
||||||
@@ -373,7 +358,7 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -383,7 +368,7 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -393,7 +378,7 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(true);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -403,7 +388,7 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(true);
|
||||||
when(mBluetoothAdapter.enableBLE()).thenReturn(false);
|
when(mBluetoothAdapter.enableBLE()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isFalse();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -412,7 +397,7 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isTrue();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -421,6 +406,6 @@ public class DiscoveryProviderManagerTest {
|
|||||||
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
when(mBluetoothAdapter.isLeEnabled()).thenReturn(false);
|
||||||
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
when(mBluetoothAdapter.isBleScanAlwaysAvailable()).thenReturn(false);
|
||||||
|
|
||||||
assertThat(mDiscoveryProviderManager.enableBle()).isFalse();
|
assertThat(mDiscoveryProviderManager.setBleScanEnabled()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user