diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java index 29b8ddd03970..6b884c518ac3 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java @@ -49,6 +49,7 @@ import android.app.ActivityManager.RunningTaskInfo; import android.app.ActivityTaskManager; import android.app.IActivityManager; import android.app.IActivityTaskManager; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Point; @@ -1474,6 +1475,9 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, && isTopActivityExemptFromDesktopWindowing(mContext, taskInfo)) { return false; } + if (isPartOfDefaultHomePackage(taskInfo)) { + return false; + } return DesktopModeStatus.canEnterDesktopMode(mContext) && !DesktopWallpaperActivity.isWallpaperTask(taskInfo) && taskInfo.getWindowingMode() != WINDOWING_MODE_PINNED @@ -1481,6 +1485,14 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, && !taskInfo.configuration.windowConfiguration.isAlwaysOnTop(); } + private boolean isPartOfDefaultHomePackage(RunningTaskInfo taskInfo) { + final ComponentName currentDefaultHome = + mContext.getPackageManager().getHomeActivities(new ArrayList<>()); + return currentDefaultHome != null && taskInfo.baseActivity != null + && currentDefaultHome.getPackageName() + .equals(taskInfo.baseActivity.getPackageName()); + } + private void createWindowDecoration( ActivityManager.RunningTaskInfo taskInfo, SurfaceControl taskSurface, |