From 68cb239bb0e7129d0f415d7a3b77609ab1326a79 Mon Sep 17 00:00:00 2001 From: Lucas Silva Date: Wed, 12 Apr 2023 11:51:19 -0400 Subject: [PATCH] DO NOT MERGE Fix crash related to getting the root of an unattached view view.getRootView returns itself when unattached, which may not be a ViewGroup instance. Therefore trying to cast to a ViewGroup will cause a ClassCastException. This fix avoids the exception by ensuring that the view is attached before trying to cast the root view. Fixes: 277637573 Test: mp droid and verified touch gestures on dream work correctly by swiping up the bouncer, and swiping down the notification shade. Change-Id: Ic2d87278e5c60509c39062437b548ae76959b169 --- .../src/com/android/systemui/touch/TouchInsetManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/touch/TouchInsetManager.java b/packages/SystemUI/src/com/android/systemui/touch/TouchInsetManager.java index a4f1ef4fa7560..ef0fa012d56d9 100644 --- a/packages/SystemUI/src/com/android/systemui/touch/TouchInsetManager.java +++ b/packages/SystemUI/src/com/android/systemui/touch/TouchInsetManager.java @@ -90,6 +90,9 @@ public class TouchInsetManager { final Region cumulativeRegion = Region.obtain(); mTrackedViews.stream().forEach(view -> { + if (!view.isAttachedToWindow()) { + return; + } final Rect boundaries = new Rect(); view.getDrawingRect(boundaries); ((ViewGroup) view.getRootView()).offsetDescendantRectToMyCoords(view, boundaries);