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

Commit 1336c2c6 authored by Michael Wright's avatar Michael Wright Committed by Android (Google) Code Review
Browse files

Merge "Always destroy virtual display on Binder death." into mnc-dev

parents a0698b61 d1a5fae3
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ final class VirtualDisplayAdapter extends DisplayAdapter {
            appToken.linkToDeath(device, 0);
        } catch (RemoteException ex) {
            mVirtualDisplayDevices.remove(appToken);
            device.destroyLocked();
            device.destroyLocked(false);
            return null;
        }

@@ -110,7 +110,7 @@ final class VirtualDisplayAdapter extends DisplayAdapter {
    public DisplayDevice releaseVirtualDisplayLocked(IBinder appToken) {
        VirtualDisplayDevice device = mVirtualDisplayDevices.remove(appToken);
        if (device != null) {
            device.destroyLocked();
            device.destroyLocked(true);
            appToken.unlinkToDeath(device, 0);
        }

@@ -147,7 +147,7 @@ final class VirtualDisplayAdapter extends DisplayAdapter {
        if (device != null) {
            Slog.i(TAG, "Virtual display device released because application token died: "
                    + device.mOwnerPackageName);
            device.destroyLocked();
            device.destroyLocked(false);
            sendDisplayDeviceEventLocked(device, DISPLAY_DEVICE_EVENT_REMOVED);
        }
    }
@@ -205,20 +205,20 @@ final class VirtualDisplayAdapter extends DisplayAdapter {
        @Override
        public void binderDied() {
            synchronized (getSyncRoot()) {
                if (mSurface != null) {
                handleBinderDiedLocked(mAppToken);
            }
        }
        }

        public void destroyLocked() {
        public void destroyLocked(boolean binderAlive) {
            if (mSurface != null) {
                mSurface.release();
                mSurface = null;
            }
            SurfaceControl.destroyDisplay(getDisplayTokenLocked());
            if (binderAlive) {
                mCallback.dispatchDisplayStopped();
            }
        }

        @Override
        public Runnable requestDisplayStateLocked(int state, int brightness) {