Merge "Do not share VirtualDeviceImpl lock with SensorController" into udc-dev

This commit is contained in:
Ján Sebechlebský
2023-05-10 06:26:23 +00:00
committed by Android (Google) Code Review
4 changed files with 7 additions and 11 deletions

View File

@@ -53,19 +53,18 @@ public class SensorController {
private static AtomicInteger sNextDirectChannelHandle = new AtomicInteger(1);
private final Object mLock;
private final Object mLock = new Object();
private final int mVirtualDeviceId;
@GuardedBy("mLock")
private final Map<IBinder, SensorDescriptor> mSensorDescriptors = new ArrayMap<>();
private final ArrayMap<IBinder, SensorDescriptor> mSensorDescriptors = new ArrayMap<>();
@NonNull
private final SensorManagerInternal.RuntimeSensorCallback mRuntimeSensorCallback;
private final SensorManagerInternal mSensorManagerInternal;
private final VirtualDeviceManagerInternal mVdmInternal;
public SensorController(@NonNull Object lock, int virtualDeviceId,
public SensorController(int virtualDeviceId,
@Nullable IVirtualSensorCallback virtualSensorCallback) {
mLock = lock;
mVirtualDeviceId = virtualDeviceId;
mRuntimeSensorCallback = new RuntimeSensorCallbackWrapper(virtualSensorCallback);
mSensorManagerInternal = LocalServices.getService(SensorManagerInternal.class);
@@ -185,7 +184,7 @@ public class SensorController {
@VisibleForTesting
Map<IBinder, SensorDescriptor> getSensorDescriptors() {
synchronized (mLock) {
return mSensorDescriptors;
return new ArrayMap<>(mSensorDescriptors);
}
}

View File

@@ -266,8 +266,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
mInputController = inputController;
}
if (sensorController == null) {
mSensorController = new SensorController(
mVirtualDeviceLock, mDeviceId, mParams.getVirtualSensorCallback());
mSensorController = new SensorController(mDeviceId, mParams.getVirtualSensorCallback());
} else {
mSensorController = sensorController;
}

View File

@@ -70,8 +70,7 @@ public class SensorControllerTest {
LocalServices.removeServiceForTest(SensorManagerInternal.class);
LocalServices.addService(SensorManagerInternal.class, mSensorManagerInternalMock);
mSensorController =
new SensorController(new Object(), VIRTUAL_DEVICE_ID, mVirtualSensorCallback);
mSensorController = new SensorController(VIRTUAL_DEVICE_ID, mVirtualSensorCallback);
mSensorEvent = new VirtualSensorEvent.Builder(new float[] { 1f, 2f, 3f}).build();
mVirtualSensorConfig =
new VirtualSensorConfig.Builder(Sensor.TYPE_ACCELEROMETER, VIRTUAL_SENSOR_NAME)

View File

@@ -359,8 +359,7 @@ public class VirtualDeviceManagerServiceTest {
mInputController = new InputController(mNativeWrapperMock,
new Handler(TestableLooper.get(this).getLooper()),
mContext.getSystemService(WindowManager.class), threadVerifier);
mSensorController =
new SensorController(new Object(), VIRTUAL_DEVICE_ID_1, mVirtualSensorCallback);
mSensorController = new SensorController(VIRTUAL_DEVICE_ID_1, mVirtualSensorCallback);
mCameraAccessController =
new CameraAccessController(mContext, mLocalService, mCameraAccessBlockedCallback);