Do not allow division by 0

Test: make
Fixes: 151128233
Change-Id: Id1a50ae18a2cd014093a17701f6b62070a62e5ff
Merged-In: Id1a50ae18a2cd014093a17701f6b62070a62e5ff
This commit is contained in:
Lucas Dupin
2020-03-16 15:26:55 -07:00
parent 12c8c244a6
commit 96aaa02edb
4 changed files with 14 additions and 3 deletions

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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();