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

Commit 7e12609a authored by Tracy Zhou's avatar Tracy Zhou
Browse files

Update focused task and display tracking API

For spatial model app push back, we want to know if the focused task on the default display is home or app

Bug: 391463550
Test: N/A
Flag: EXEMPT bugfix
Change-Id: I2397bfd44e930a42c3ca6b354026fe7a1b873834
parent b74b84d0
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.wm.shell.shared;

import android.app.ActivityManager;

import com.android.wm.shell.shared.annotations.ExternalThread;

/**
@@ -31,6 +33,6 @@ public interface FocusTransitionListener {
    /**
     * Called when the per-app or system-wide focus state has changed for a task.
     */
    default void onFocusedTaskChanged(int taskId, boolean isFocusedOnDisplay,
            boolean isFocusedGlobally) {}
    default void onFocusedTaskChanged(ActivityManager.RunningTaskInfo taskInfo,
            boolean isFocusedOnDisplay, boolean isFocusedGlobally) {}
}
+3 −3
Original line number Diff line number Diff line
@@ -160,7 +160,7 @@ public class FocusTransitionObserver {
    }

    /**
     * Sets the focus transition listener that receives any transitions resulting in focus switch.
     * Unsets the focus transition listener that receives any transitions resulting in focus switch.
     * This is for calls from outside the Shell, within the host process.
     *
     */
@@ -188,8 +188,8 @@ public class FocusTransitionObserver {
        final boolean isFocusedOnDisplay = isFocusedOnDisplay(task);
        final boolean isFocusedGlobally = hasGlobalFocus(task);
        mLocalListeners.forEach((listener, executor) ->
                executor.execute(() -> listener.onFocusedTaskChanged(task.taskId,
                        isFocusedOnDisplay, isFocusedGlobally)));
                executor.execute(() -> listener.onFocusedTaskChanged(task, isFocusedOnDisplay,
                        isFocusedGlobally)));
    }

    private void notifyFocusedDisplayChanged() {
+2 −2
Original line number Diff line number Diff line
@@ -171,9 +171,9 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT
    }

    @Override
    public void onFocusedTaskChanged(int taskId, boolean isFocusedOnDisplay,
    public void onFocusedTaskChanged(RunningTaskInfo taskInfo, boolean isFocusedOnDisplay,
            boolean isFocusedGlobally) {
        final WindowDecoration decor = mWindowDecorByTaskId.get(taskId);
        final WindowDecoration decor = mWindowDecorByTaskId.get(taskInfo.taskId);
        if (decor != null) {
            decor.relayout(decor.mTaskInfo, isFocusedGlobally, decor.mExclusionRegion);
        }
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ public abstract class CarWindowDecorViewModel
    }

    @Override
    public void onFocusedTaskChanged(int taskId, boolean isFocusedOnDisplay,
    public void onFocusedTaskChanged(RunningTaskInfo taskInfo, boolean isFocusedOnDisplay,
            boolean isFocusedGlobally) {
        // no-op
    }
+2 −2
Original line number Diff line number Diff line
@@ -551,9 +551,9 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
    }

    @Override
    public void onFocusedTaskChanged(int taskId, boolean isFocusedOnDisplay,
    public void onFocusedTaskChanged(RunningTaskInfo taskInfo, boolean isFocusedOnDisplay,
            boolean isFocusedGlobally) {
        final WindowDecoration decor = mWindowDecorByTaskId.get(taskId);
        final WindowDecoration decor = mWindowDecorByTaskId.get(taskInfo.taskId);
        if (decor != null) {
            decor.relayout(decor.mTaskInfo, isFocusedGlobally, decor.mExclusionRegion);
        }
Loading