From 2545e922644c823ea870aa483a0780c3bb9ef67a Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Mon, 6 Jun 2022 14:03:17 +0100 Subject: [PATCH] Use DISPLAY_CATEGORY_ALL_INCLUDING_DISABLED for getDisplays Bug: 227459045 Bug: 221071695 Test: manual Change-Id: I8c1587e05a30abf75a01a84ebda6522606abb99b --- .../android/quickstep/util/SystemWindowManagerProxy.java | 7 +++++++ .../launcher3/util/window/WindowManagerProxy.java | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/util/SystemWindowManagerProxy.java b/quickstep/src/com/android/quickstep/util/SystemWindowManagerProxy.java index 19a48dbf20..9bb3d56556 100644 --- a/quickstep/src/com/android/quickstep/util/SystemWindowManagerProxy.java +++ b/quickstep/src/com/android/quickstep/util/SystemWindowManagerProxy.java @@ -16,6 +16,7 @@ package com.android.quickstep.util; import android.content.Context; +import android.hardware.display.DisplayManager; import android.view.Display; import com.android.launcher3.util.window.WindowManagerProxy; @@ -43,4 +44,10 @@ public class SystemWindowManagerProxy extends WindowManagerProxy { public int getRotation(Context context) { return context.getResources().getConfiguration().windowConfiguration.getRotation(); } + + @Override + protected Display[] getDisplays(Context context) { + return context.getSystemService(DisplayManager.class).getDisplays( + DisplayManager.DISPLAY_CATEGORY_ALL_INCLUDING_DISABLED); + } } diff --git a/src/com/android/launcher3/util/window/WindowManagerProxy.java b/src/com/android/launcher3/util/window/WindowManagerProxy.java index 92f718ef45..9665bf91c5 100644 --- a/src/com/android/launcher3/util/window/WindowManagerProxy.java +++ b/src/com/android/launcher3/util/window/WindowManagerProxy.java @@ -90,7 +90,7 @@ public class WindowManagerProxy implements ResourceBasedOverride { */ public ArrayMap> estimateInternalDisplayBounds( Context context) { - Display[] displays = context.getSystemService(DisplayManager.class).getDisplays(); + Display[] displays = getDisplays(context); ArrayMap> result = new ArrayMap<>(); for (Display display : displays) { if (isInternalDisplay(display)) { @@ -355,4 +355,11 @@ public class WindowManagerProxy implements ResourceBasedOverride { } return d.getRotation(); } + + /** + * Returns all currently valid logical displays. + */ + protected Display[] getDisplays(Context context) { + return context.getSystemService(DisplayManager.class).getDisplays(); + } }