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

Commit c4684fc7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Request focus on recents animation input consumers" into sc-dev

parents d9ed1aa9 5cfa23e4
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -811,6 +811,12 @@
      "group": "WM_DEBUG_STATES",
      "group": "WM_DEBUG_STATES",
      "at": "com\/android\/server\/wm\/Task.java"
      "at": "com\/android\/server\/wm\/Task.java"
    },
    },
    "-1159577965": {
      "message": "Focus requested for input consumer=%s",
      "level": "VERBOSE",
      "group": "WM_DEBUG_FOCUS_LIGHT",
      "at": "com\/android\/server\/wm\/InputMonitor.java"
    },
    "-1156118957": {
    "-1156118957": {
      "message": "Updated config=%s",
      "message": "Updated config=%s",
      "level": "DEBUG",
      "level": "DEBUG",
@@ -823,12 +829,6 @@
      "group": "WM_DEBUG_REMOTE_ANIMATIONS",
      "group": "WM_DEBUG_REMOTE_ANIMATIONS",
      "at": "com\/android\/server\/wm\/NonAppWindowAnimationAdapter.java"
      "at": "com\/android\/server\/wm\/NonAppWindowAnimationAdapter.java"
    },
    },
    "-1144293044": {
      "message": "SURFACE SET FREEZE LAYER: %s",
      "level": "INFO",
      "group": "WM_SHOW_TRANSACTIONS",
      "at": "com\/android\/server\/wm\/WindowStateAnimator.java"
    },
    "-1142279614": {
    "-1142279614": {
      "message": "Looking for focus: %s, flags=%d, canReceive=%b, reason=%s",
      "message": "Looking for focus: %s, flags=%d, canReceive=%b, reason=%s",
      "level": "VERBOSE",
      "level": "VERBOSE",
+18 −5
Original line number Original line Diff line number Diff line
@@ -410,15 +410,19 @@ final class InputMonitor {
            return;
            return;
        }
        }


        requestFocus(focusToken, focus.getName());
    }

    private void requestFocus(IBinder focusToken, String windowName) {
        if (focusToken == mInputFocus) {
        if (focusToken == mInputFocus) {
            return;
            return;
        }
        }


        mInputFocus = focusToken;
        mInputFocus = focusToken;
        mInputTransaction.setFocusedWindow(mInputFocus, focus.getName(), mDisplayId);
        mInputTransaction.setFocusedWindow(mInputFocus, windowName, mDisplayId);
        EventLog.writeEvent(LOGTAG_INPUT_FOCUS, "Focus request " + focus,
        EventLog.writeEvent(LOGTAG_INPUT_FOCUS, "Focus request " + windowName,
                "reason=UpdateInputWindows");
                "reason=UpdateInputWindows");
        ProtoLog.v(WM_DEBUG_FOCUS_LIGHT, "Focus requested for window=%s", focus);
        ProtoLog.v(WM_DEBUG_FOCUS_LIGHT, "Focus requested for window=%s", windowName);
    }
    }


    void setFocusedAppLw(ActivityRecord newApp) {
    void setFocusedAppLw(ActivityRecord newApp) {
@@ -470,6 +474,8 @@ final class InputMonitor {


        boolean mInDrag;
        boolean mInDrag;


        private boolean mRecentsAnimationFocusOverride;

        private void updateInputWindows(boolean inDrag) {
        private void updateInputWindows(boolean inDrag) {
            Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateInputWindows");
            Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateInputWindows");


@@ -485,10 +491,16 @@ final class InputMonitor {
            mInDrag = inDrag;
            mInDrag = inDrag;


            resetInputConsumers(mInputTransaction);
            resetInputConsumers(mInputTransaction);

            mRecentsAnimationFocusOverride = false;
            mDisplayContent.forAllWindows(this, true /* traverseTopToBottom */);
            mDisplayContent.forAllWindows(this, true /* traverseTopToBottom */);


            if (mRecentsAnimationFocusOverride) {
                requestFocus(mRecentsAnimationInputConsumer.mWindowHandle.token,
                        mRecentsAnimationInputConsumer.mName);
            } else {
                updateInputFocusRequest();
                updateInputFocusRequest();
            }



            if (!mUpdateInputWindowsImmediately) {
            if (!mUpdateInputWindowsImmediately) {
                mDisplayContent.getPendingTransaction().merge(mInputTransaction);
                mDisplayContent.getPendingTransaction().merge(mInputTransaction);
@@ -526,6 +538,7 @@ final class InputMonitor {
                        mRecentsAnimationInputConsumer.mWindowHandle)) {
                        mRecentsAnimationInputConsumer.mWindowHandle)) {
                    mRecentsAnimationInputConsumer.show(mInputTransaction, w.mActivityRecord);
                    mRecentsAnimationInputConsumer.show(mInputTransaction, w.mActivityRecord);
                    mAddRecentsAnimationInputConsumerHandle = false;
                    mAddRecentsAnimationInputConsumerHandle = false;
                    mRecentsAnimationFocusOverride = true;
                }
                }
            }
            }