mirror of
https://github.com/ponces/treble_aosp.git
synced 2025-04-21 23:49:06 +00:00
55 lines
2.7 KiB
Diff
55 lines
2.7 KiB
Diff
From 9124db3deebeba44cbb6feb2417f21d30c371012 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 21/56] 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
|
|
|
|
Change-Id: I03b6e78bac2cc38f3a623c8add801405ad6ba7ba
|
|
---
|
|
core/java/android/view/DisplayCutout.java | 21 +++++++++++++++------
|
|
1 file changed, 15 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/core/java/android/view/DisplayCutout.java b/core/java/android/view/DisplayCutout.java
|
|
index c4becea462d5..a24586ed4da1 100644
|
|
--- a/core/java/android/view/DisplayCutout.java
|
|
+++ b/core/java/android/view/DisplayCutout.java
|
|
@@ -1188,12 +1188,21 @@ public final class DisplayCutout {
|
|
public static DisplayCutout fromResourcesRectApproximation(Resources res,
|
|
String displayUniqueId, int physicalDisplayWidth, int physicalDisplayHeight,
|
|
int displayWidth, int displayHeight) {
|
|
- return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
|
|
- getDisplayCutoutApproximationRect(res, displayUniqueId), physicalDisplayWidth,
|
|
- physicalDisplayHeight, displayWidth, displayHeight,
|
|
- DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
|
|
- getWaterfallInsets(res, displayUniqueId),
|
|
- getDisplayCutoutSideOverrides(res, displayUniqueId)).second;
|
|
+ try {
|
|
+ return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
|
|
+ getDisplayCutoutApproximationRect(res, displayUniqueId), physicalDisplayWidth,
|
|
+ physicalDisplayHeight, displayWidth, displayHeight,
|
|
+ DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
|
|
+ getWaterfallInsets(res, displayUniqueId),
|
|
+ getDisplayCutoutSideOverrides(res, displayUniqueId)).second;
|
|
+ } catch(Throwable t) {
|
|
+ return pathAndDisplayCutoutFromSpec(getDisplayCutoutPath(res, displayUniqueId),
|
|
+ null, physicalDisplayWidth,
|
|
+ physicalDisplayHeight, displayWidth, displayHeight,
|
|
+ DENSITY_DEVICE_STABLE / (float) DENSITY_DEFAULT,
|
|
+ getWaterfallInsets(res, displayUniqueId),
|
|
+ getDisplayCutoutSideOverrides(res, displayUniqueId)).second;
|
|
+ }
|
|
}
|
|
|
|
/**
|
|
--
|
|
2.43.0
|
|
|