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

Commit a7bd5c1c authored by Saho Kobayashi's avatar Saho Kobayashi Committed by Android (Google) Code Review
Browse files

Merge "Use FocusTransitionObserver in KeyguardTransitionHandler" into main

parents d97b26f2 e3657585
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -799,10 +799,11 @@ public abstract class WMShellBaseModule {
            Transitions transitions,
            TaskStackListenerImpl taskStackListener,
            @ShellMainThread Handler mainHandler,
            @ShellMainThread ShellExecutor mainExecutor) {
            @ShellMainThread ShellExecutor mainExecutor,
            FocusTransitionObserver focusTransitionObserver) {
        return new KeyguardTransitionHandler(
                shellInit, shellController, displayController, transitions, taskStackListener,
                mainHandler, mainExecutor);
                mainHandler, mainExecutor, focusTransitionObserver);
    }

    @WMSingleton
+7 −2
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import com.android.wm.shell.shared.annotations.ExternalThread;
import com.android.wm.shell.sysui.KeyguardChangeListener;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.FocusTransitionObserver;
import com.android.wm.shell.transition.Transitions;
import com.android.wm.shell.transition.Transitions.TransitionFinishCallback;

@@ -89,6 +90,7 @@ public class KeyguardTransitionHandler

    private final ArrayMap<IBinder, StartedTransition> mStartedTransitions = new ArrayMap<>();
    private final TaskStackListenerImpl mTaskStackListener;
    private final FocusTransitionObserver mFocusTransitionObserver;

    /**
     * Local IRemoteTransition implementations registered by the keyguard service.
@@ -129,7 +131,8 @@ public class KeyguardTransitionHandler
            @NonNull Transitions transitions,
            @NonNull TaskStackListenerImpl taskStackListener,
            @NonNull Handler mainHandler,
            @NonNull ShellExecutor mainExecutor) {
            @NonNull ShellExecutor mainExecutor,
            @NonNull FocusTransitionObserver focusTransitionObserver) {
        mTransitions = transitions;
        mShellController = shellController;
        mDisplayController = displayController;
@@ -137,6 +140,7 @@ public class KeyguardTransitionHandler
        mMainExecutor = mainExecutor;
        mTaskStackListener = taskStackListener;
        shellInit.addInitCallback(this::onInit, this);
        mFocusTransitionObserver = focusTransitionObserver;
    }

    private void onInit() {
@@ -396,7 +400,8 @@ public class KeyguardTransitionHandler
            final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo();
            if (taskInfo != null && taskInfo.taskId != INVALID_TASK_ID
                    && taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM
                    && taskInfo.isFocused && change.getContainer() != null) {
                    && mFocusTransitionObserver.hasGlobalFocus(taskInfo)
                    && change.getContainer() != null) {
                wct.setWindowingMode(change.getContainer(), WINDOWING_MODE_FULLSCREEN);
                wct.setBounds(change.getContainer(), null);
                return;