diff --git a/src/com/android/settings/widget/UsageGraph.java b/src/com/android/settings/widget/UsageGraph.java index 7cef66f79d2..505dc58b2cb 100644 --- a/src/com/android/settings/widget/UsageGraph.java +++ b/src/com/android/settings/widget/UsageGraph.java @@ -288,7 +288,11 @@ public class UsageGraph extends View { canvas.drawPath(mPath, paint); } - private void drawFilledPath(Canvas canvas, SparseIntArray localPaths, Paint paint) { + @VisibleForTesting + void drawFilledPath(Canvas canvas, SparseIntArray localPaths, Paint paint) { + if (localPaths.size() == 0) { + return; + } mPath.reset(); float lastStartX = localPaths.keyAt(0); mPath.moveTo(localPaths.keyAt(0), localPaths.valueAt(0)); diff --git a/tests/robotests/src/com/android/settings/widget/UsageGraphTest.java b/tests/robotests/src/com/android/settings/widget/UsageGraphTest.java index 7f09c3b88fb..ebb496c319a 100644 --- a/tests/robotests/src/com/android/settings/widget/UsageGraphTest.java +++ b/tests/robotests/src/com/android/settings/widget/UsageGraphTest.java @@ -24,6 +24,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; +import android.graphics.Canvas; +import android.graphics.Paint; import android.util.SparseIntArray; import com.android.settingslib.R; @@ -177,4 +179,14 @@ public class UsageGraphTest { assertThat(localPaths.keyAt(5)).isEqualTo(1001); assertThat(localPaths.valueAt(5)).isEqualTo(-1); } + + @Test + public void drawFilledPath_emptyPath_shouldNotCrash() { + final Canvas canvas = new Canvas(); + final SparseIntArray localPaths = new SparseIntArray(); + final Paint paint = new Paint(); + + // Should not crash + mGraph.drawFilledPath(canvas, localPaths, paint); + } }