Loading services/core/java/com/android/server/wm/InputMonitor.java +16 −14 Original line number Diff line number Diff line Loading @@ -394,10 +394,23 @@ final class InputMonitor { /** * Called when the current input focus changes. */ private void updateInputFocusRequest() { private void updateInputFocusRequest(InputConsumerImpl recentsAnimationInputConsumer) { final WindowState focus = mDisplayContent.mCurrentFocus; final IBinder focusToken = focus != null ? focus.mInputChannelToken : null; // Request focus for the recents animation input consumer if an input consumer should // be applied for the window. if (recentsAnimationInputConsumer != null && focus != null) { final RecentsAnimationController recentsAnimationController = mService.getRecentsAnimationController(); final boolean shouldApplyRecentsInputConsumer = recentsAnimationController != null && recentsAnimationController.shouldApplyInputConsumer(focus.mActivityRecord); if (shouldApplyRecentsInputConsumer) { requestFocus(recentsAnimationInputConsumer.mWindowHandle.token, recentsAnimationInputConsumer.mName); return; } } final IBinder focusToken = focus != null ? focus.mInputChannelToken : null; if (focusToken == null) { mInputFocus = null; return; Loading Loading @@ -474,8 +487,6 @@ final class InputMonitor { boolean mInDrag; private boolean mRecentsAnimationFocusOverride; private void updateInputWindows(boolean inDrag) { Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateInputWindows"); Loading @@ -491,16 +502,8 @@ final class InputMonitor { mInDrag = inDrag; resetInputConsumers(mInputTransaction); mRecentsAnimationFocusOverride = false; mDisplayContent.forAllWindows(this, true /* traverseTopToBottom */); if (mRecentsAnimationFocusOverride) { requestFocus(mRecentsAnimationInputConsumer.mWindowHandle.token, mRecentsAnimationInputConsumer.mName); } else { updateInputFocusRequest(); } updateInputFocusRequest(mRecentsAnimationInputConsumer); if (!mUpdateInputWindowsImmediately) { mDisplayContent.getPendingTransaction().merge(mInputTransaction); Loading Loading @@ -538,7 +541,6 @@ final class InputMonitor { mRecentsAnimationInputConsumer.mWindowHandle)) { mRecentsAnimationInputConsumer.show(mInputTransaction, w.mActivityRecord); mAddRecentsAnimationInputConsumerHandle = false; mRecentsAnimationFocusOverride = true; } } Loading Loading
services/core/java/com/android/server/wm/InputMonitor.java +16 −14 Original line number Diff line number Diff line Loading @@ -394,10 +394,23 @@ final class InputMonitor { /** * Called when the current input focus changes. */ private void updateInputFocusRequest() { private void updateInputFocusRequest(InputConsumerImpl recentsAnimationInputConsumer) { final WindowState focus = mDisplayContent.mCurrentFocus; final IBinder focusToken = focus != null ? focus.mInputChannelToken : null; // Request focus for the recents animation input consumer if an input consumer should // be applied for the window. if (recentsAnimationInputConsumer != null && focus != null) { final RecentsAnimationController recentsAnimationController = mService.getRecentsAnimationController(); final boolean shouldApplyRecentsInputConsumer = recentsAnimationController != null && recentsAnimationController.shouldApplyInputConsumer(focus.mActivityRecord); if (shouldApplyRecentsInputConsumer) { requestFocus(recentsAnimationInputConsumer.mWindowHandle.token, recentsAnimationInputConsumer.mName); return; } } final IBinder focusToken = focus != null ? focus.mInputChannelToken : null; if (focusToken == null) { mInputFocus = null; return; Loading Loading @@ -474,8 +487,6 @@ final class InputMonitor { boolean mInDrag; private boolean mRecentsAnimationFocusOverride; private void updateInputWindows(boolean inDrag) { Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateInputWindows"); Loading @@ -491,16 +502,8 @@ final class InputMonitor { mInDrag = inDrag; resetInputConsumers(mInputTransaction); mRecentsAnimationFocusOverride = false; mDisplayContent.forAllWindows(this, true /* traverseTopToBottom */); if (mRecentsAnimationFocusOverride) { requestFocus(mRecentsAnimationInputConsumer.mWindowHandle.token, mRecentsAnimationInputConsumer.mName); } else { updateInputFocusRequest(); } updateInputFocusRequest(mRecentsAnimationInputConsumer); if (!mUpdateInputWindowsImmediately) { mDisplayContent.getPendingTransaction().merge(mInputTransaction); Loading Loading @@ -538,7 +541,6 @@ final class InputMonitor { mRecentsAnimationInputConsumer.mWindowHandle)) { mRecentsAnimationInputConsumer.show(mInputTransaction, w.mActivityRecord); mAddRecentsAnimationInputConsumerHandle = false; mRecentsAnimationFocusOverride = true; } } Loading