diff --git a/services/companion/java/com/android/server/companion/virtual/CameraAccessController.java b/services/companion/java/com/android/server/companion/virtual/CameraAccessController.java index 312ab548c7467..66755688fb199 100644 --- a/services/companion/java/com/android/server/companion/virtual/CameraAccessController.java +++ b/services/companion/java/com/android/server/companion/virtual/CameraAccessController.java @@ -45,6 +45,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen private static final String TAG = "CameraAccessController"; private final Object mLock = new Object(); + private final Object mObserverLock = new Object(); private final Context mContext; private final VirtualDeviceManagerInternal mVirtualDeviceManagerInternal; @@ -53,7 +54,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen private final PackageManager mPackageManager; private final UserManager mUserManager; - @GuardedBy("mLock") + @GuardedBy("mObserverLock") private int mObserverCount = 0; @GuardedBy("mLock") @@ -107,7 +108,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen * Returns the number of observers currently relying on this controller. */ public int getObserverCount() { - synchronized (mLock) { + synchronized (mObserverLock) { return mObserverCount; } } @@ -117,7 +118,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen * already doing so. */ public void startObservingIfNeeded() { - synchronized (mLock) { + synchronized (mObserverLock) { if (mObserverCount == 0) { mCameraManager.registerAvailabilityCallback(mContext.getMainExecutor(), this); } @@ -129,7 +130,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen * Stop watching for camera access. */ public void stopObservingIfNeeded() { - synchronized (mLock) { + synchronized (mObserverLock) { mObserverCount--; if (mObserverCount <= 0) { close(); @@ -169,7 +170,7 @@ class CameraAccessController extends CameraManager.AvailabilityCallback implemen @Override public void close() { - synchronized (mLock) { + synchronized (mObserverLock) { if (mObserverCount < 0) { Slog.wtf(TAG, "Unexpected negative mObserverCount: " + mObserverCount); } else if (mObserverCount > 0) {