diff options
| author | 2020-03-16 15:26:55 -0700 | |
|---|---|---|
| committer | 2020-03-18 00:31:49 +0000 | |
| commit | 96aaa02edb4be768af00edb1b88b9980d88eb970 (patch) | |
| tree | 229daf02349068f984d66a4ad6d3b3a28d6b338d | |
| parent | 12c8c244a63113612c69d4970878e6722efdaab8 (diff) | |
Do not allow division by 0
Test: make
Fixes: 151128233
Change-Id: Id1a50ae18a2cd014093a17701f6b62070a62e5ff
Merged-In: Id1a50ae18a2cd014093a17701f6b62070a62e5ff
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(); |