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

Commit ac8017a9 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Put recents input consumer to the top of the display area" into sc-v2-dev

parents 6691177b 74fbeaf1
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -48,6 +48,8 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS;

import static java.lang.Integer.MAX_VALUE;

import android.annotation.Nullable;
import android.graphics.Rect;
import android.graphics.Region;
@@ -581,10 +583,11 @@ final class InputMonitor {
            if (mAddRecentsAnimationInputConsumerHandle && shouldApplyRecentsInputConsumer) {
                if (recentsAnimationController.updateInputConsumerForApp(
                        mRecentsAnimationInputConsumer.mWindowHandle)) {
                    final WindowState highestLayerWindow =
                            recentsAnimationController.getHighestLayerWindow();
                    if (highestLayerWindow != null) {
                        mRecentsAnimationInputConsumer.show(mInputTransaction, highestLayerWindow);
                    final DisplayArea targetDA =
                            recentsAnimationController.getTargetAppDisplayArea();
                    if (targetDA != null) {
                        mRecentsAnimationInputConsumer.reparent(mInputTransaction, targetDA);
                        mRecentsAnimationInputConsumer.show(mInputTransaction, MAX_VALUE - 1);
                        mAddRecentsAnimationInputConsumerHandle = false;
                    }
                }
@@ -597,7 +600,7 @@ final class InputMonitor {
                            rootTask.getSurfaceControl());
                    // We set the layer to z=MAX-1 so that it's always on top.
                    mPipInputConsumer.reparent(mInputTransaction, rootTask);
                    mPipInputConsumer.show(mInputTransaction, Integer.MAX_VALUE - 1);
                    mPipInputConsumer.show(mInputTransaction, MAX_VALUE - 1);
                    mAddPipInputConsumerHandle = false;
                }
            }
+4 −14
Original line number Diff line number Diff line
@@ -1125,21 +1125,11 @@ public class RecentsAnimationController implements DeathRecipient {
        return mTargetActivityRecord.findMainWindow();
    }

    /**
     * Returns the window with the highest layer, or null if none is found.
     */
    public WindowState getHighestLayerWindow() {
        int highestLayer = Integer.MIN_VALUE;
        Task highestLayerTask = null;
        for (int i = mPendingAnimations.size() - 1; i >= 0; i--) {
            TaskAnimationAdapter adapter = mPendingAnimations.get(i);
            int layer = adapter.mTask.getPrefixOrderIndex();
            if (layer > highestLayer) {
                highestLayer = layer;
                highestLayerTask = adapter.mTask;
            }
    DisplayArea getTargetAppDisplayArea() {
        if (mTargetActivityRecord == null) {
            return null;
        }
        return highestLayerTask.getTopMostActivity().getTopChild();
        return mTargetActivityRecord.getDisplayArea();
    }

    boolean isAnimatingTask(Task task) {