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

Commit 728d81f6 authored by Santos Cordon's avatar Santos Cordon Committed by Alex Sakhartchouk
Browse files

Clean up ImageReader when VrMode is disabled.

Adjusts some of the startImageReader code as well.

Bug: 34281731
Test: Start a VR App and ensure the virtual display is functional.
Start it a second time and ensure the virtual display is functional.
Previously, any session after the first did not have a functional
virtual display.

Change-Id: Ifbf9fb9466f550ae3e9b30a1d7cf4d2f0a32578b
parent feada910
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -107,7 +107,6 @@ class CompatibilityDisplay {
            // TODO: STOPSHIP Remove createVirtualDisplay conditional before launching.
            if (createVirtualDisplay) {
                startVirtualDisplay();
                startImageReader();
            }
        } else {
            // Stop virtual display to test exit condition
@@ -208,6 +207,8 @@ class CompatibilityDisplay {
            if (mVirtualDisplay != null) {
                mActivityManagerInternal.setVrCompatibilityDisplayId(
                    mVirtualDisplay.getDisplay().getDisplayId());
                // Now create the ImageReader to supply a Surface to the new virtual display.
                startImageReader();
            } else {
                Log.w(TAG, "Virtual display id is null after createVirtualDisplay");
                mActivityManagerInternal.setVrCompatibilityDisplayId(INVALID_DISPLAY);
@@ -241,6 +242,7 @@ class CompatibilityDisplay {
                                mVirtualDisplay.release();
                                mVirtualDisplay = null;
                            }
                            stopImageReader();
                        }
                    }
               }
@@ -286,4 +288,14 @@ class CompatibilityDisplay {
            setSurfaceLocked(mImageReader.getSurface());
        }
    }

    /**
     * Cleans up the ImageReader.
     */
    private void stopImageReader() {
        if (mImageReader != null) {
            mImageReader.close();
            mImageReader = null;
        }
    }
}