From 96aaa02edb4be768af00edb1b88b9980d88eb970 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Mon, 16 Mar 2020 15:26:55 -0700 Subject: Do not allow division by 0 Test: make Fixes: 151128233 Change-Id: Id1a50ae18a2cd014093a17701f6b62070a62e5ff Merged-In: Id1a50ae18a2cd014093a17701f6b62070a62e5ff --- .../src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java | 5 +++-- .../com/android/systemui/statusbar/phone/NotificationPanelView.java | 2 +- .../SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java | 5 +++++ .../src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java | 5 +++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java index dd200da56d20..b26cb25981f1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java @@ -111,8 +111,9 @@ public class HeadsUpTouchHelper implements Gefingerpoken { mInitialTouchY = y; int startHeight = (int) (mPickedChild.getActualHeight() + mPickedChild.getTranslationY()); - mPanel.setPanelScrimMinFraction((float) startHeight - / mPanel.getMaxPanelHeight()); + float maxPanelHeight = mPanel.getMaxPanelHeight(); + mPanel.setPanelScrimMinFraction(maxPanelHeight > 0f + ? (float) startHeight / maxPanelHeight : 0f); mPanel.startExpandMotion(x, y, true /* startTracking */, startHeight); mPanel.startExpandingFromPeek(); // This call needs to be after the expansion start otherwise we will get a diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 6bc0cf6e0a3d..2a5044463ea2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -2074,7 +2074,7 @@ public class NotificationPanelView extends PanelView implements } else { maxHeight = calculatePanelHeightShade(); } - maxHeight = Math.max(maxHeight, min); + maxHeight = Math.max(min, maxHeight); return maxHeight; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index 063d00b806c2..21a966759439 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.phone; +import static java.lang.Float.isNaN; + import android.content.Context; import android.os.Bundle; import android.os.Parcelable; @@ -160,6 +162,9 @@ public abstract class PanelBar extends FrameLayout { * fraction as the panel also might be expanded if the fraction is 0 */ public void panelExpansionChanged(float frac, boolean expanded) { + if (isNaN(frac)) { + throw new IllegalArgumentException("frac cannot be NaN"); + } boolean fullyClosed = true; boolean fullyOpened = false; if (SPEW) LOG("panelExpansionChanged: start state=%d", mState); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 32402e1f3042..9b3f692d03fc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -21,6 +21,8 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static com.android.systemui.ScreenDecorations.DisplayCutoutView.boundsFromDirection; import static com.android.systemui.SysUiServiceProvider.getComponent; +import static java.lang.Float.isNaN; + import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; @@ -260,6 +262,9 @@ public class PhoneStatusBarView extends PanelBar { @Override public void panelScrimMinFractionChanged(float minFraction) { + if (isNaN(minFraction)) { + throw new IllegalArgumentException("minFraction cannot be NaN"); + } if (mMinFraction != minFraction) { mMinFraction = minFraction; updateScrimFraction(); -- cgit v1.2.3-59-g8ed1b