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

Commit 84fcb616 authored by Miranda Kephart's avatar Miranda Kephart Committed by Android (Google) Code Review
Browse files

Merge "[DO NOT MERGE] Close screenshot process on user switched" into oc-mr1-dev

parents 53825749 8a2656d4
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -5837,8 +5837,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        @Override public void run() {
            synchronized (mScreenshotLock) {
                if (mScreenshotConnection != null) {
                    mContext.unbindService(mScreenshotConnection);
                    mScreenshotConnection = null;
                    resetScreenshotConnection();
                    notifyScreenshotError();
                }
            }
@@ -5870,8 +5869,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                            public void handleMessage(Message msg) {
                                synchronized (mScreenshotLock) {
                                    if (mScreenshotConnection == myConn) {
                                        mContext.unbindService(mScreenshotConnection);
                                        mScreenshotConnection = null;
                                        resetScreenshotConnection();
                                        mHandler.removeCallbacks(mScreenshotTimeout);
                                    }
                                }
@@ -5894,8 +5892,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                public void onServiceDisconnected(ComponentName name) {
                    synchronized (mScreenshotLock) {
                        if (mScreenshotConnection != null) {
                            mContext.unbindService(mScreenshotConnection);
                            mScreenshotConnection = null;
                            resetScreenshotConnection();
                            mHandler.removeCallbacks(mScreenshotTimeout);
                            notifyScreenshotError();
                        }
@@ -5925,6 +5922,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        mContext.sendBroadcastAsUser(errorIntent, UserHandle.CURRENT);
    }

    /**
     * Reset the screenshot connection.
     */
    private void resetScreenshotConnection() {
        if (mScreenshotConnection != null) {
            mContext.unbindService(mScreenshotConnection);
            mScreenshotConnection = null;
        }
    }

    /** {@inheritDoc} */
    @Override
    public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
@@ -6605,6 +6612,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    mLastSystemUiFlags = 0;
                    updateSystemUiVisibilityLw();
                }

                // close the screenshot connection on user switch so that screenshots
                // are always started with the correct user's context
                synchronized(mScreenshotLock) {
                  resetScreenshotConnection();
                }
            }
        }
    };