Merge "Prevent NPE in CustomTile" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-02-28 18:01:02 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 0 deletions

View File

@@ -327,6 +327,7 @@ public class CustomTile extends QSTileImpl<State> implements TileChangeListener
final Drawable drawableF = drawable; final Drawable drawableF = drawable;
state.iconSupplier = () -> { state.iconSupplier = () -> {
if (drawableF == null) return null;
Drawable.ConstantState cs = drawableF.getConstantState(); Drawable.ConstantState cs = drawableF.getConstantState();
if (cs != null) { if (cs != null) {
return new DrawableIcon(cs.newDrawable()); return new DrawableIcon(cs.newDrawable());

View File

@@ -125,4 +125,12 @@ class CustomTileTest : SysuiTestCase() {
customTile.handleUpdateState(state, null) customTile.handleUpdateState(state, null)
assertFalse(state.value) assertFalse(state.value)
} }
@Test
fun testNoCrashOnNullDrawable() {
customTile.qsTile.icon = mock(Icon::class.java)
`when`(customTile.qsTile.icon.loadDrawable(any(Context::class.java)))
.thenReturn(null)
customTile.handleUpdateState(customTile.newTileState(), null)
}
} }