diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-05-11 05:56:35 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-05-11 05:56:35 +0000 |
| commit | 488cd2c4ff9425fd74d278ba191d64bfc114df6a (patch) | |
| tree | dece83721b6f09fed660132169d5d50858b651f7 /core/java/android/view/ViewRootImpl.java | |
| parent | 53ed707827f48bdb183add5f08d285dc06e9c705 (diff) | |
| parent | 03d65a72748a03e07c677911eeae325cd03cbf96 (diff) | |
Merge "Fix consumer closed input channel cause an error occurred (1/2)" into rvc-dev
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index a17af6c90617..172197c8f396 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -4638,14 +4638,17 @@ public final class ViewRootImpl implements ViewParent, mInputQueueCallback = null; mInputQueue = null; } - if (mInputEventReceiver != null) { - mInputEventReceiver.dispose(); - mInputEventReceiver = null; - } try { mWindowSession.remove(mWindow); } catch (RemoteException e) { } + // Dispose receiver would dispose client InputChannel, too. That could send out a socket + // broken event, so we need to unregister the server InputChannel when removing window to + // prevent server side receive the event and prompt error. + if (mInputEventReceiver != null) { + mInputEventReceiver.dispose(); + mInputEventReceiver = null; + } mDisplayManager.unregisterDisplayListener(mDisplayListener); |
