From add5c6a9f2e049fe9998c924d9d3831299fa20c0 Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Tue, 31 Mar 2020 17:22:48 -0700 Subject: [PATCH] Fix possible NPE bubble.getIconView() and getExpandedView() are now nullable check for that in a couple of places it makes sense Bug: 152917277 Test: treehugger Change-Id: I6df7e97615e7d397a4acd19a4aa62f1b732bed87 --- .../src/com/android/systemui/bubbles/BubbleStackView.java | 8 +++++--- .../bubbles/animation/PhysicsAnimationLayout.java | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java index 6fd6b8d9f738e..09f44fcaee9b3 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleStackView.java @@ -543,7 +543,8 @@ public class BubbleStackView extends FrameLayout { .setStiffness(SpringForce.STIFFNESS_LOW) .setDampingRatio(SpringForce.DAMPING_RATIO_LOW_BOUNCY)); mExpandedViewYAnim.addEndListener((anim, cancelled, value, velocity) -> { - if (mIsExpanded && mExpandedBubble != null) { + if (mIsExpanded && mExpandedBubble != null + && mExpandedBubble.getExpandedView() != null) { mExpandedBubble.getExpandedView().updateView(); } }); @@ -562,7 +563,7 @@ public class BubbleStackView extends FrameLayout { // Update the insets after we're done translating otherwise position // calculation for them won't be correct. () -> { - if (mExpandedBubble != null) { + if (mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) { mExpandedBubble.getExpandedView().updateInsets(insets); } }); @@ -577,7 +578,7 @@ public class BubbleStackView extends FrameLayout { // Reposition & adjust the height for new orientation if (mIsExpanded) { mExpandedViewContainer.setTranslationY(getExpandedViewY()); - if (mExpandedBubble != null) { + if (mExpandedBubble != null && mExpandedBubble.getExpandedView() != null) { mExpandedBubble.getExpandedView().updateView(); } } @@ -1265,6 +1266,7 @@ public class BubbleStackView extends FrameLayout { void showExpandedViewContents(int displayId) { if (mExpandedBubble != null + && mExpandedBubble.getExpandedView() != null && mExpandedBubble.getExpandedView().getVirtualDisplayId() == displayId) { mExpandedBubble.setContentVisibility(true); } diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/animation/PhysicsAnimationLayout.java b/packages/SystemUI/src/com/android/systemui/bubbles/animation/PhysicsAnimationLayout.java index 31656a00c3eda..c292769f10660 100644 --- a/packages/SystemUI/src/com/android/systemui/bubbles/animation/PhysicsAnimationLayout.java +++ b/packages/SystemUI/src/com/android/systemui/bubbles/animation/PhysicsAnimationLayout.java @@ -356,6 +356,9 @@ public class PhysicsAnimationLayout extends FrameLayout { /** Immediately re-orders the view to the given index. */ public void reorderView(View view, int index) { + if (view == null) { + return; + } final int oldIndex = indexOfChild(view); super.removeView(view);