From 5fa9a2f49b04dd656fbe1d55f887513c5545f474 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Tue, 23 May 2023 19:03:31 +0100 Subject: [PATCH] Add additional logs when DisplayController detects unexpected bounds Bug: 283944974 Test: manual Change-Id: I8f50c79e00be0a4be812634678e9e05a80343a07 --- .../android/launcher3/logging/FileLog.java | 20 +++++++++++++++++++ .../launcher3/util/DisplayController.java | 13 ++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/com/android/launcher3/logging/FileLog.java b/src/com/android/launcher3/logging/FileLog.java index cdd0bda49e..924a44062c 100644 --- a/src/com/android/launcher3/logging/FileLog.java +++ b/src/com/android/launcher3/logging/FileLog.java @@ -67,6 +67,26 @@ public final class FileLog { print(tag, msg); } + public static void i(String tag, String msg, Exception e) { + Log.i(tag, msg, e); + print(tag, msg, e); + } + + public static void i(String tag, String msg) { + Log.i(tag, msg); + print(tag, msg); + } + + public static void w(String tag, String msg, Exception e) { + Log.w(tag, msg, e); + print(tag, msg, e); + } + + public static void w(String tag, String msg) { + Log.w(tag, msg); + print(tag, msg); + } + public static void e(String tag, String msg, Exception e) { Log.e(tag, msg, e); print(tag, msg, e); diff --git a/src/com/android/launcher3/util/DisplayController.java b/src/com/android/launcher3/util/DisplayController.java index 68ed78abda..a7c94bb726 100644 --- a/src/com/android/launcher3/util/DisplayController.java +++ b/src/com/android/launcher3/util/DisplayController.java @@ -48,6 +48,7 @@ import androidx.annotation.VisibleForTesting; import com.android.launcher3.LauncherPrefs; import com.android.launcher3.Utilities; +import com.android.launcher3.logging.FileLog; import com.android.launcher3.util.window.CachedDisplayInfo; import com.android.launcher3.util.window.WindowManagerProxy; @@ -127,6 +128,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable { Context displayInfoContext = getDisplayInfoContext(display); mInfo = new Info(displayInfoContext, wmProxy, wmProxy.estimateInternalDisplayBounds(displayInfoContext)); + FileLog.i(TAG, "(CTOR) perDisplayBounds: " + mInfo.mPerDisplayBounds); } /** @@ -284,6 +286,8 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable { if (!newInfo.supportedBounds.equals(oldInfo.supportedBounds) || !newInfo.mPerDisplayBounds.equals(oldInfo.mPerDisplayBounds)) { change |= CHANGE_SUPPORTED_BOUNDS; + FileLog.w(TAG, + "(CHANGE_SUPPORTED_BOUNDS) perDisplayBounds: " + newInfo.mPerDisplayBounds); } if (DEBUG) { Log.d(TAG, "handleInfoChange - change: " + getChangeFlagsString(change)); @@ -354,12 +358,14 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable { realBounds = wmProxy.getRealBounds(displayInfoContext, displayInfo); if (cachedValue == null) { // Unexpected normalizedDisplayInfo is found, recreate the cache - Log.e(TAG, "Unexpected normalizedDisplayInfo found, invalidating cache"); + FileLog.e(TAG, "Unexpected normalizedDisplayInfo found, invalidating cache: " + + normalizedDisplayInfo); + FileLog.e(TAG, "(Invalid Cache) perDisplayBounds : " + mPerDisplayBounds); mPerDisplayBounds.clear(); mPerDisplayBounds.putAll(wmProxy.estimateInternalDisplayBounds(displayInfoContext)); cachedValue = mPerDisplayBounds.get(normalizedDisplayInfo); if (cachedValue == null) { - Log.e(TAG, "normalizedDisplayInfo not found in estimation: " + FileLog.e(TAG, "normalizedDisplayInfo not found in estimation: " + normalizedDisplayInfo); supportedBounds.add(realBounds); } @@ -379,8 +385,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable { Log.d(TAG, "displayInfo: " + displayInfo); Log.d(TAG, "realBounds: " + realBounds); Log.d(TAG, "normalizedDisplayInfo: " + normalizedDisplayInfo); - mPerDisplayBounds.forEach((key, value) -> Log.d(TAG, - "perDisplayBounds - " + key + ": " + value)); + Log.d(TAG, "perDisplayBounds: " + mPerDisplayBounds); } }