Loading packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,9 @@ public class QSIconViewImpl extends QSIconView { : icon.getInvisibleDrawable(mContext) : null; int padding = icon != null ? icon.getPadding() : 0; if (d != null) { if (d.getConstantState() != null) { d = d.getConstantState().newDrawable(); } d.setAutoMirrored(false); d.setLayoutDirection(getLayoutDirection()); } Loading packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; Loading Loading @@ -73,6 +74,24 @@ public class QSIconViewImplTest extends SysuiTestCase { verify(s.icon, never()).getInvisibleDrawable(any()); } @Test public void testMutateIconDrawable() { SlashImageView iv = mock(SlashImageView.class); Drawable originalDrawable = mock(Drawable.class); Drawable otherDrawable = mock(Drawable.class); State s = new State(); s.icon = mock(Icon.class); when(s.icon.getInvisibleDrawable(eq(mContext))).thenReturn(originalDrawable); when(s.icon.getDrawable(eq(mContext))).thenReturn(originalDrawable); when(iv.isShown()).thenReturn(true); when(originalDrawable.getConstantState()).thenReturn(fakeConstantState(otherDrawable)); mIconView.updateIcon(iv, s, /* allowAnimations= */true); verify(iv).setState(any(), eq(otherDrawable)); } @Test public void testNoFirstFade() { ImageView iv = mock(ImageView.class); Loading Loading @@ -104,4 +123,18 @@ public class QSIconViewImplTest extends SysuiTestCase { public void testIconNotSet_toString() { assertFalse(mIconView.toString().contains("lastIcon")); } private static Drawable.ConstantState fakeConstantState(Drawable otherDrawable) { return new Drawable.ConstantState() { @Override public Drawable newDrawable() { return otherDrawable; } @Override public int getChangingConfigurations() { return 1; } }; } } Loading
packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSIconViewImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,9 @@ public class QSIconViewImpl extends QSIconView { : icon.getInvisibleDrawable(mContext) : null; int padding = icon != null ? icon.getPadding() : 0; if (d != null) { if (d.getConstantState() != null) { d = d.getConstantState().newDrawable(); } d.setAutoMirrored(false); d.setLayoutDirection(getLayoutDirection()); } Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tileimpl/QSIconViewImplTest.java +33 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; Loading Loading @@ -73,6 +74,24 @@ public class QSIconViewImplTest extends SysuiTestCase { verify(s.icon, never()).getInvisibleDrawable(any()); } @Test public void testMutateIconDrawable() { SlashImageView iv = mock(SlashImageView.class); Drawable originalDrawable = mock(Drawable.class); Drawable otherDrawable = mock(Drawable.class); State s = new State(); s.icon = mock(Icon.class); when(s.icon.getInvisibleDrawable(eq(mContext))).thenReturn(originalDrawable); when(s.icon.getDrawable(eq(mContext))).thenReturn(originalDrawable); when(iv.isShown()).thenReturn(true); when(originalDrawable.getConstantState()).thenReturn(fakeConstantState(otherDrawable)); mIconView.updateIcon(iv, s, /* allowAnimations= */true); verify(iv).setState(any(), eq(otherDrawable)); } @Test public void testNoFirstFade() { ImageView iv = mock(ImageView.class); Loading Loading @@ -104,4 +123,18 @@ public class QSIconViewImplTest extends SysuiTestCase { public void testIconNotSet_toString() { assertFalse(mIconView.toString().contains("lastIcon")); } private static Drawable.ConstantState fakeConstantState(Drawable otherDrawable) { return new Drawable.ConstantState() { @Override public Drawable newDrawable() { return otherDrawable; } @Override public int getChangingConfigurations() { return 1; } }; } }