diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java | 5 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java index 02df38e03d7c..a75406b67998 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java @@ -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 diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java index e4f83333edbf..4c316de98744 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java @@ -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; |