From 0f4ce51bc204a5da1641cc35a57b9f682fe12b66 Mon Sep 17 00:00:00 2001 From: Charles Chen Date: Wed, 25 Aug 2021 16:36:50 +0800 Subject: [PATCH] Remove WindowManager usage in ViewConfiguration [1] made context created via #createConfigurationContext access ViewConfiguration without StrictModeViolation. However, we may obtain WindowManager in ViewConfiguration and still breaks the violation. This CL gets rid of WindowManager usage to prevent the violation. Test: atest StrictModeTest Bug: 197282789 Bug: 191683535 Change-Id: Ifed3f318601ad2214db137ed3d75efdf2157799e --- core/java/android/view/ViewConfiguration.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index 0a3d0da6da1e0..4b18d3a02282c 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -433,9 +433,8 @@ public class ViewConfiguration { mAmbiguousGestureMultiplier = Math.max(1.0f, multiplierValue.getFloat()); // Size of the screen in bytes, in ARGB_8888 format - final WindowManager windowManager = context.getSystemService(WindowManager.class); - final Rect maxWindowBounds = windowManager.getMaximumWindowMetrics().getBounds(); - mMaximumDrawingCacheSize = 4 * maxWindowBounds.width() * maxWindowBounds.height(); + final Rect maxBounds = config.windowConfiguration.getMaxBounds(); + mMaximumDrawingCacheSize = 4 * maxBounds.width() * maxBounds.height(); mOverscrollDistance = (int) (sizeAndDensity * OVERSCROLL_DISTANCE + 0.5f); mOverflingDistance = (int) (sizeAndDensity * OVERFLING_DISTANCE + 0.5f);