Merge "Do not share VirtualDeviceImpl lock with SensorController" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d3924d0eb1
@@ -53,19 +53,18 @@ public class SensorController {
|
|||||||
|
|
||||||
private static AtomicInteger sNextDirectChannelHandle = new AtomicInteger(1);
|
private static AtomicInteger sNextDirectChannelHandle = new AtomicInteger(1);
|
||||||
|
|
||||||
private final Object mLock;
|
private final Object mLock = new Object();
|
||||||
private final int mVirtualDeviceId;
|
private final int mVirtualDeviceId;
|
||||||
@GuardedBy("mLock")
|
@GuardedBy("mLock")
|
||||||
private final Map<IBinder, SensorDescriptor> mSensorDescriptors = new ArrayMap<>();
|
private final ArrayMap<IBinder, SensorDescriptor> mSensorDescriptors = new ArrayMap<>();
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private final SensorManagerInternal.RuntimeSensorCallback mRuntimeSensorCallback;
|
private final SensorManagerInternal.RuntimeSensorCallback mRuntimeSensorCallback;
|
||||||
private final SensorManagerInternal mSensorManagerInternal;
|
private final SensorManagerInternal mSensorManagerInternal;
|
||||||
private final VirtualDeviceManagerInternal mVdmInternal;
|
private final VirtualDeviceManagerInternal mVdmInternal;
|
||||||
|
|
||||||
public SensorController(@NonNull Object lock, int virtualDeviceId,
|
public SensorController(int virtualDeviceId,
|
||||||
@Nullable IVirtualSensorCallback virtualSensorCallback) {
|
@Nullable IVirtualSensorCallback virtualSensorCallback) {
|
||||||
mLock = lock;
|
|
||||||
mVirtualDeviceId = virtualDeviceId;
|
mVirtualDeviceId = virtualDeviceId;
|
||||||
mRuntimeSensorCallback = new RuntimeSensorCallbackWrapper(virtualSensorCallback);
|
mRuntimeSensorCallback = new RuntimeSensorCallbackWrapper(virtualSensorCallback);
|
||||||
mSensorManagerInternal = LocalServices.getService(SensorManagerInternal.class);
|
mSensorManagerInternal = LocalServices.getService(SensorManagerInternal.class);
|
||||||
@@ -185,7 +184,7 @@ public class SensorController {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
Map<IBinder, SensorDescriptor> getSensorDescriptors() {
|
Map<IBinder, SensorDescriptor> getSensorDescriptors() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
return mSensorDescriptors;
|
return new ArrayMap<>(mSensorDescriptors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -266,8 +266,7 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
|
|||||||
mInputController = inputController;
|
mInputController = inputController;
|
||||||
}
|
}
|
||||||
if (sensorController == null) {
|
if (sensorController == null) {
|
||||||
mSensorController = new SensorController(
|
mSensorController = new SensorController(mDeviceId, mParams.getVirtualSensorCallback());
|
||||||
mVirtualDeviceLock, mDeviceId, mParams.getVirtualSensorCallback());
|
|
||||||
} else {
|
} else {
|
||||||
mSensorController = sensorController;
|
mSensorController = sensorController;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,7 @@ public class SensorControllerTest {
|
|||||||
LocalServices.removeServiceForTest(SensorManagerInternal.class);
|
LocalServices.removeServiceForTest(SensorManagerInternal.class);
|
||||||
LocalServices.addService(SensorManagerInternal.class, mSensorManagerInternalMock);
|
LocalServices.addService(SensorManagerInternal.class, mSensorManagerInternalMock);
|
||||||
|
|
||||||
mSensorController =
|
mSensorController = new SensorController(VIRTUAL_DEVICE_ID, mVirtualSensorCallback);
|
||||||
new SensorController(new Object(), VIRTUAL_DEVICE_ID, mVirtualSensorCallback);
|
|
||||||
mSensorEvent = new VirtualSensorEvent.Builder(new float[] { 1f, 2f, 3f}).build();
|
mSensorEvent = new VirtualSensorEvent.Builder(new float[] { 1f, 2f, 3f}).build();
|
||||||
mVirtualSensorConfig =
|
mVirtualSensorConfig =
|
||||||
new VirtualSensorConfig.Builder(Sensor.TYPE_ACCELEROMETER, VIRTUAL_SENSOR_NAME)
|
new VirtualSensorConfig.Builder(Sensor.TYPE_ACCELEROMETER, VIRTUAL_SENSOR_NAME)
|
||||||
|
|||||||
@@ -359,8 +359,7 @@ public class VirtualDeviceManagerServiceTest {
|
|||||||
mInputController = new InputController(mNativeWrapperMock,
|
mInputController = new InputController(mNativeWrapperMock,
|
||||||
new Handler(TestableLooper.get(this).getLooper()),
|
new Handler(TestableLooper.get(this).getLooper()),
|
||||||
mContext.getSystemService(WindowManager.class), threadVerifier);
|
mContext.getSystemService(WindowManager.class), threadVerifier);
|
||||||
mSensorController =
|
mSensorController = new SensorController(VIRTUAL_DEVICE_ID_1, mVirtualSensorCallback);
|
||||||
new SensorController(new Object(), VIRTUAL_DEVICE_ID_1, mVirtualSensorCallback);
|
|
||||||
mCameraAccessController =
|
mCameraAccessController =
|
||||||
new CameraAccessController(mContext, mLocalService, mCameraAccessBlockedCallback);
|
new CameraAccessController(mContext, mLocalService, mCameraAccessBlockedCallback);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user