From a62e449f6b9f83a086ba3413403292f52ffc8524 Mon Sep 17 00:00:00 2001 From: shawnlin Date: Fri, 6 Mar 2020 17:19:42 +0800 Subject: [PATCH] Fixed DisplayCutout flaky test The root cause is that only the top cutout spec was cached. Now cache the full spec string. Bug: 145983914 Test: atest android.view.DisplayCutoutTest#fromSpec_setsSafeInsets_top_and_bottom, android.view.DisplayCutoutTest#fromSpec_setsSafeInsets_top -- --abi x86 Test: atest DisplayCutouTest, ScreenDecorationTest Change-Id: I21ef26e5453412ec659b1d05798b61f04c3d660b Merged-In: I1d5663ebd8588021387b7ae5296851769954f996 --- core/java/android/view/DisplayCutout.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java index e77d7191d5b89..598c1dc2c39ff 100644 --- a/core/java/android/view/DisplayCutout.java +++ b/core/java/android/view/DisplayCutout.java @@ -638,7 +638,8 @@ public final class DisplayCutout { return sCachedCutout; } } - spec = spec.trim(); + final String specToCache = spec.trim(); + spec = specToCache; final float offsetX; if (spec.endsWith(RIGHT_MARKER)) { offsetX = displayWidth; @@ -709,7 +710,7 @@ public final class DisplayCutout { final Pair result = new Pair<>(p, cutout); synchronized (CACHE_LOCK) { - sCachedSpec = spec; + sCachedSpec = specToCache; sCachedDisplayWidth = displayWidth; sCachedDisplayHeight = displayHeight; sCachedDensity = density;