summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ján Sebechlebský <jsebechlebsky@google.com> 2023-05-10 06:54:34 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-05-10 06:54:34 +0000
commit50e51155f5c4da6048250717b7512fac1f36f94e (patch)
tree13b4d3feec10c347ca558e8aa12fabc7cdd9a29d
parent1589f47dfccf9d67900384e12522b0f143ce00c8 (diff)
parentd3924d0eb1fb14f6fd4a0d39d5f72dc05ce9b749 (diff)
Merge "Do not share VirtualDeviceImpl lock with SensorController" into udc-dev am: d3924d0eb1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23084057 Change-Id: I8be0896cce56fc139eadb87ca6c0a2406d0fcf19 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/companion/java/com/android/server/companion/virtual/SensorController.java9
-rw-r--r--services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/virtual/SensorControllerTest.java3
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java3
4 files changed, 7 insertions, 11 deletions
diff --git a/services/companion/java/com/android/server/companion/virtual/SensorController.java b/services/companion/java/com/android/server/companion/virtual/SensorController.java
index 6d198de98490..2d591b614d18 100644
--- a/services/companion/java/com/android/server/companion/virtual/SensorController.java
+++ b/services/companion/java/com/android/server/companion/virtual/SensorController.java
@@ -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);
}
}
diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
index de0f68ccd665..6b55d7ed4d56 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java
@@ -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;
}
diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/SensorControllerTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/SensorControllerTest.java
index aea8b8658984..6a45d5f7823d 100644
--- a/services/tests/servicestests/src/com/android/server/companion/virtual/SensorControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/virtual/SensorControllerTest.java
@@ -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)
diff --git a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
index c8c1d6f0f7ed..8884dba217ed 100644
--- a/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/virtual/VirtualDeviceManagerServiceTest.java
@@ -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);