summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java5
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java9
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;