Merge changes from topic "cherrypicker-L22800030000756195:N75200030012855151" into main am: a2b8066354 am: ef5af1f007
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2871221 Change-Id: I444abc876909ae556df5e3399082379e208b22d7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -54,6 +54,11 @@ public class NearbyConfiguration {
|
|||||||
public static final String NEARBY_REFACTOR_DISCOVERY_MANAGER =
|
public static final String NEARBY_REFACTOR_DISCOVERY_MANAGER =
|
||||||
"nearby_refactor_discovery_manager";
|
"nearby_refactor_discovery_manager";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag to guard enable BLE during Nearby Service init time.
|
||||||
|
*/
|
||||||
|
public static final String NEARBY_ENABLE_BLE_IN_INIT = "nearby_enable_ble_in_init";
|
||||||
|
|
||||||
private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
|
private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
|
||||||
|
|
||||||
private final DeviceConfigListener mDeviceConfigListener = new DeviceConfigListener();
|
private final DeviceConfigListener mDeviceConfigListener = new DeviceConfigListener();
|
||||||
@@ -67,6 +72,8 @@ public class NearbyConfiguration {
|
|||||||
private boolean mSupportTestApp;
|
private boolean mSupportTestApp;
|
||||||
@GuardedBy("mDeviceConfigLock")
|
@GuardedBy("mDeviceConfigLock")
|
||||||
private boolean mRefactorDiscoveryManager;
|
private boolean mRefactorDiscoveryManager;
|
||||||
|
@GuardedBy("mDeviceConfigLock")
|
||||||
|
private boolean mEnableBleInInit;
|
||||||
|
|
||||||
public NearbyConfiguration() {
|
public NearbyConfiguration() {
|
||||||
mDeviceConfigListener.start();
|
mDeviceConfigListener.start();
|
||||||
@@ -131,6 +138,15 @@ public class NearbyConfiguration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {@code true} if enableBLE() is called during NearbyService init time.
|
||||||
|
*/
|
||||||
|
public boolean enableBleInInit() {
|
||||||
|
synchronized (mDeviceConfigLock) {
|
||||||
|
return mEnableBleInInit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class DeviceConfigListener implements DeviceConfig.OnPropertiesChangedListener {
|
private class DeviceConfigListener implements DeviceConfig.OnPropertiesChangedListener {
|
||||||
public void start() {
|
public void start() {
|
||||||
DeviceConfig.addOnPropertiesChangedListener(getNamespace(),
|
DeviceConfig.addOnPropertiesChangedListener(getNamespace(),
|
||||||
@@ -149,6 +165,8 @@ public class NearbyConfiguration {
|
|||||||
NEARBY_SUPPORT_TEST_APP, false /* defaultValue */);
|
NEARBY_SUPPORT_TEST_APP, false /* defaultValue */);
|
||||||
mRefactorDiscoveryManager = getDeviceConfigBoolean(
|
mRefactorDiscoveryManager = getDeviceConfigBoolean(
|
||||||
NEARBY_REFACTOR_DISCOVERY_MANAGER, false /* defaultValue */);
|
NEARBY_REFACTOR_DISCOVERY_MANAGER, false /* defaultValue */);
|
||||||
|
mEnableBleInInit = getDeviceConfigBoolean(
|
||||||
|
NEARBY_ENABLE_BLE_IN_INIT, true /* defaultValue */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import android.util.Log;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
import com.android.server.nearby.NearbyConfiguration;
|
||||||
import com.android.server.nearby.injector.Injector;
|
import com.android.server.nearby.injector.Injector;
|
||||||
import com.android.server.nearby.managers.registration.DiscoveryRegistration;
|
import com.android.server.nearby.managers.registration.DiscoveryRegistration;
|
||||||
import com.android.server.nearby.provider.AbstractDiscoveryProvider;
|
import com.android.server.nearby.provider.AbstractDiscoveryProvider;
|
||||||
@@ -67,6 +68,7 @@ public class DiscoveryProviderManager extends
|
|||||||
private final BleDiscoveryProvider mBleDiscoveryProvider;
|
private final BleDiscoveryProvider mBleDiscoveryProvider;
|
||||||
private final Injector mInjector;
|
private final Injector mInjector;
|
||||||
private final Executor mExecutor;
|
private final Executor mExecutor;
|
||||||
|
private final NearbyConfiguration mNearbyConfiguration;
|
||||||
|
|
||||||
public DiscoveryProviderManager(Context context, Injector injector) {
|
public DiscoveryProviderManager(Context context, Injector injector) {
|
||||||
Log.v(TAG, "DiscoveryProviderManager: ");
|
Log.v(TAG, "DiscoveryProviderManager: ");
|
||||||
@@ -76,6 +78,7 @@ public class DiscoveryProviderManager extends
|
|||||||
mChreDiscoveryProvider = new ChreDiscoveryProvider(mContext,
|
mChreDiscoveryProvider = new ChreDiscoveryProvider(mContext,
|
||||||
new ChreCommunication(injector, mContext, mExecutor), mExecutor);
|
new ChreCommunication(injector, mContext, mExecutor), mExecutor);
|
||||||
mInjector = injector;
|
mInjector = injector;
|
||||||
|
mNearbyConfiguration = new NearbyConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -87,6 +90,7 @@ public class DiscoveryProviderManager extends
|
|||||||
mInjector = injector;
|
mInjector = injector;
|
||||||
mBleDiscoveryProvider = bleDiscoveryProvider;
|
mBleDiscoveryProvider = bleDiscoveryProvider;
|
||||||
mChreDiscoveryProvider = chreDiscoveryProvider;
|
mChreDiscoveryProvider = chreDiscoveryProvider;
|
||||||
|
mNearbyConfiguration = new NearbyConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isChreOnly(Set<ScanFilter> scanFilters) {
|
private static boolean isChreOnly(Set<ScanFilter> scanFilters) {
|
||||||
@@ -143,7 +147,9 @@ 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
|
// Register BLE only scan when Bluetooth is turned off
|
||||||
|
if (mNearbyConfiguration.enableBleInInit()) {
|
||||||
setBleScanEnabled();
|
setBleScanEnabled();
|
||||||
|
}
|
||||||
if (mInjector.getContextHubManager() != null) {
|
if (mInjector.getContextHubManager() != null) {
|
||||||
mChreDiscoveryProvider.init();
|
mChreDiscoveryProvider.init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
import com.android.server.nearby.NearbyConfiguration;
|
||||||
import com.android.server.nearby.injector.Injector;
|
import com.android.server.nearby.injector.Injector;
|
||||||
import com.android.server.nearby.metrics.NearbyMetrics;
|
import com.android.server.nearby.metrics.NearbyMetrics;
|
||||||
import com.android.server.nearby.presence.PresenceDiscoveryResult;
|
import com.android.server.nearby.presence.PresenceDiscoveryResult;
|
||||||
@@ -70,6 +71,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final BleDiscoveryProvider mBleDiscoveryProvider;
|
private final BleDiscoveryProvider mBleDiscoveryProvider;
|
||||||
private final Injector mInjector;
|
private final Injector mInjector;
|
||||||
|
private final NearbyConfiguration mNearbyConfiguration;
|
||||||
@ScanRequest.ScanMode
|
@ScanRequest.ScanMode
|
||||||
private int mScanMode;
|
private int mScanMode;
|
||||||
@GuardedBy("mLock")
|
@GuardedBy("mLock")
|
||||||
@@ -84,6 +86,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
mContext, new ChreCommunication(injector, mContext, executor), executor);
|
mContext, new ChreCommunication(injector, mContext, executor), executor);
|
||||||
mScanTypeScanListenerRecordMap = new HashMap<>();
|
mScanTypeScanListenerRecordMap = new HashMap<>();
|
||||||
mInjector = injector;
|
mInjector = injector;
|
||||||
|
mNearbyConfiguration = new NearbyConfiguration();
|
||||||
Log.v(TAG, "DiscoveryProviderManagerLegacy: ");
|
Log.v(TAG, "DiscoveryProviderManagerLegacy: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,6 +100,7 @@ public class DiscoveryProviderManagerLegacy implements AbstractDiscoveryProvider
|
|||||||
mBleDiscoveryProvider = bleDiscoveryProvider;
|
mBleDiscoveryProvider = bleDiscoveryProvider;
|
||||||
mChreDiscoveryProvider = chreDiscoveryProvider;
|
mChreDiscoveryProvider = chreDiscoveryProvider;
|
||||||
mScanTypeScanListenerRecordMap = scanTypeScanListenerRecordMap;
|
mScanTypeScanListenerRecordMap = scanTypeScanListenerRecordMap;
|
||||||
|
mNearbyConfiguration = new NearbyConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isChreOnly(List<ScanFilter> scanFilters) {
|
private static boolean isChreOnly(List<ScanFilter> scanFilters) {
|
||||||
@@ -222,7 +226,9 @@ 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
|
// Register BLE only scan when Bluetooth is turned off
|
||||||
|
if (mNearbyConfiguration.enableBleInInit()) {
|
||||||
setBleScanEnabled();
|
setBleScanEnabled();
|
||||||
|
}
|
||||||
if (mInjector.getContextHubManager() != null) {
|
if (mInjector.getContextHubManager() != null) {
|
||||||
mChreDiscoveryProvider.init();
|
mChreDiscoveryProvider.init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.server.nearby.managers;
|
package com.android.server.nearby.managers;
|
||||||
|
|
||||||
|
import static android.Manifest.permission.READ_DEVICE_CONFIG;
|
||||||
import static android.nearby.PresenceCredential.IDENTITY_TYPE_PRIVATE;
|
import static android.nearby.PresenceCredential.IDENTITY_TYPE_PRIVATE;
|
||||||
import static android.nearby.ScanRequest.SCAN_TYPE_NEARBY_PRESENCE;
|
import static android.nearby.ScanRequest.SCAN_TYPE_NEARBY_PRESENCE;
|
||||||
|
|
||||||
@@ -38,6 +39,8 @@ import android.nearby.PublicCredential;
|
|||||||
import android.nearby.ScanRequest;
|
import android.nearby.ScanRequest;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.android.server.nearby.injector.Injector;
|
import com.android.server.nearby.injector.Injector;
|
||||||
import com.android.server.nearby.provider.BleDiscoveryProvider;
|
import com.android.server.nearby.provider.BleDiscoveryProvider;
|
||||||
import com.android.server.nearby.provider.ChreCommunication;
|
import com.android.server.nearby.provider.ChreCommunication;
|
||||||
@@ -139,6 +142,8 @@ public class DiscoveryProviderManagerLegacyTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
InstrumentationRegistry.getInstrumentation().getUiAutomation().adoptShellPermissionIdentity(
|
||||||
|
READ_DEVICE_CONFIG);
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
when(mInjector.getAppOpsManager()).thenReturn(mAppOpsManager);
|
when(mInjector.getAppOpsManager()).thenReturn(mAppOpsManager);
|
||||||
when(mInjector.getBluetoothAdapter()).thenReturn(mBluetoothAdapter);
|
when(mInjector.getBluetoothAdapter()).thenReturn(mBluetoothAdapter);
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.server.nearby.managers;
|
package com.android.server.nearby.managers;
|
||||||
|
|
||||||
|
import static android.Manifest.permission.READ_DEVICE_CONFIG;
|
||||||
import static android.nearby.PresenceCredential.IDENTITY_TYPE_PRIVATE;
|
import static android.nearby.PresenceCredential.IDENTITY_TYPE_PRIVATE;
|
||||||
import static android.nearby.ScanRequest.SCAN_TYPE_NEARBY_PRESENCE;
|
import static android.nearby.ScanRequest.SCAN_TYPE_NEARBY_PRESENCE;
|
||||||
|
|
||||||
@@ -39,6 +40,8 @@ import android.nearby.PublicCredential;
|
|||||||
import android.nearby.ScanRequest;
|
import android.nearby.ScanRequest;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
|
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
|
|
||||||
import com.android.server.nearby.injector.Injector;
|
import com.android.server.nearby.injector.Injector;
|
||||||
import com.android.server.nearby.provider.BleDiscoveryProvider;
|
import com.android.server.nearby.provider.BleDiscoveryProvider;
|
||||||
import com.android.server.nearby.provider.ChreCommunication;
|
import com.android.server.nearby.provider.ChreCommunication;
|
||||||
@@ -132,6 +135,8 @@ public class DiscoveryProviderManagerTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
InstrumentationRegistry.getInstrumentation().getUiAutomation().adoptShellPermissionIdentity(
|
||||||
|
READ_DEVICE_CONFIG);
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mExecutor = Executors.newSingleThreadExecutor();
|
mExecutor = Executors.newSingleThreadExecutor();
|
||||||
when(mInjector.getAppOpsManager()).thenReturn(mAppOpsManager);
|
when(mInjector.getAppOpsManager()).thenReturn(mAppOpsManager);
|
||||||
|
|||||||
Reference in New Issue
Block a user