diff options
| author | 2023-05-10 06:54:34 +0000 | |
|---|---|---|
| committer | 2023-05-10 06:54:34 +0000 | |
| commit | 50e51155f5c4da6048250717b7512fac1f36f94e (patch) | |
| tree | 13b4d3feec10c347ca558e8aa12fabc7cdd9a29d | |
| parent | 1589f47dfccf9d67900384e12522b0f143ce00c8 (diff) | |
| parent | d3924d0eb1fb14f6fd4a0d39d5f72dc05ce9b749 (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>
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); |