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; |