Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d4d73b9 authored by Evan Laird's avatar Evan Laird
Browse files

Show mobile signal strength in QS edit panel

Apparently ImageView#setImageDrawable() will take the drawable you give
it and reset its level. Pre-empting that by setting the ImageView level
first fixes that.

Change-Id: I4233241df1e4425ad2c4f5c32599608354a10c30
Fixes: 63690824
Test: visual; runtest -x \
frameworks/base/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java
parent 8c8ae38e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ public class SlashImageView extends ImageView {
            mSlash = null;
            super.setImageDrawable(null);
        } else if (mSlash == null) {
            setImageLevel(drawable.getLevel());
            super.setImageDrawable(drawable);
        } else {
            mSlash.setAnimationEnabled(mAnimationEnabled);
+13 −0
Original line number Diff line number Diff line
@@ -76,6 +76,19 @@ public class SlashImageViewTest extends SysuiTestCase {
        assertTrue(mSlashView.getSlashDrawable() == null);
    }

    @Test
    public void testSetImageDrawableUsesDrawableLevel() {
        SlashImageView iv = new SlashImageView(mContext);
        Drawable mockDrawable = mock(Drawable.class);
        mockDrawable.setLevel(2);
        assertTrue(mockDrawable.getLevel() == 2);

        iv.setImageDrawable(mockDrawable);

        // Make sure setting the drawable didn't reset its level to 0
        assertTrue(mockDrawable.getLevel() == 2);
    }

    // Expose getSlashDrawable
    private static class TestableSlashImageView extends SlashImageView {
        TestableSlashImageView(Context c) {