lineage_patches_unified/patches/platform_frameworks_base/0045-Catch-broken-mainBuiltInDisplayCutoutRectApproximati.patch
Andy CrossGate Yan 93d0ea8243 Sync up to v304
2021-04-12 14:55:10 +00:00

44 lines
2.0 KiB
Diff

From 575db4c47ba68a6355774abc815f2f4c8de7a996 Mon Sep 17 00:00:00 2001
From: Pierre-Hugues Husson <phh@phh.me>
Date: Tue, 23 Mar 2021 19:43:26 +0100
Subject: [PATCH 45/45] Catch broken mainBuiltInDisplayCutoutRectApproximation
Some devices (Redmi Note 9T) have:
mainBuiltInDisplayCutoutRectApproximation = @android:mainBuiltInDisplayCutout
Since mainBuiltInDisplayCutout is private, its ID is dynamic and can't
be relied upon.
This means that we'll get garbage in mainBuiltInDisplayCutoutRectApproximation
The SVG Path parser will fail, triggering an exception.
Fix it by catching it, and parsing mainBuiltInDisplayCutout instead
---
core/java/android/view/DisplayCutout.java | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
index b4863f9c6dd0..e1d57e6869aa 100644
--- a/core/java/android/view/DisplayCutout.java
+++ b/core/java/android/view/DisplayCutout.java
@@ -681,9 +681,15 @@ public final class DisplayCutout {
* @hide
*/
public static DisplayCutout fromResourcesRectApproximation(Resources res, int displayWidth, int displayHeight) {
- return fromSpec(res.getString(R.string.config_mainBuiltInDisplayCutoutRectApproximation),
- displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
- loadWaterfallInset(res));
+ try {
+ return fromSpec(res.getString(R.string.config_mainBuiltInDisplayCutoutRectApproximation),
+ displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
+ loadWaterfallInset(res));
+ } catch(java.lang.IllegalArgumentException e) {
+ return fromSpec(res.getString(R.string.config_mainBuiltInDisplayCutout),
+ displayWidth, displayHeight, DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
+ loadWaterfallInset(res));
+ }
}
/**
--
2.25.1