Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebfb7b60 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "Allow for camera streaming to virtual devices" into main

parents 9d15ac28 81e4b570
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -43,6 +43,13 @@ flag {
  bug: "270352264"
}

flag {
  name: "stream_camera"
  namespace: "virtual_devices"
  description: "Enable streaming camera to Virtual Devices"
  bug: "291740640"
}

flag {
  name: "stream_permissions"
  namespace: "virtual_devices"
+9 −3
Original line number Diff line number Diff line
@@ -326,7 +326,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
        mSensorController = new SensorController(this, mDeviceId,
                mParams.getVirtualSensorCallback(), mParams.getVirtualSensorConfigs());
        mCameraAccessController = cameraAccessController;
        if (mCameraAccessController != null) {
            mCameraAccessController.startObservingIfNeeded();
        }
        if (!Flags.streamPermissions()) {
            mPermissionDialogComponent = getPermissionDialogComponent();
        } else {
@@ -566,7 +568,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
            }

            mAppToken.unlinkToDeath(this, 0);
            if (mCameraAccessController != null) {
                mCameraAccessController.stopObservingIfNeeded();
            }

            mInputController.close();
            mSensorController.close();
@@ -586,7 +590,9 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub
    @Override
    @RequiresPermission(android.Manifest.permission.CAMERA_INJECT_EXTERNAL_CAMERA)
    public void onRunningAppsChanged(ArraySet<Integer> runningUids) {
        if (mCameraAccessController != null) {
            mCameraAccessController.blockCameraAccessIfNeeded(runningUids);
        }
        mRunningAppsChangedCallback.accept(runningUids);
    }

+3 −0
Original line number Diff line number Diff line
@@ -187,6 +187,9 @@ public class VirtualDeviceManagerService extends SystemService {
    }

    CameraAccessController getCameraAccessController(UserHandle userHandle) {
        if (Flags.streamCamera()) {
            return null;
        }
        int userId = userHandle.getIdentifier();
        synchronized (mVirtualDeviceManagerLock) {
            for (int i = 0; i < mVirtualDevices.size(); i++) {