From 9d4d73b9cc6a0dd834e7e123f219a103f77797be Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Tue, 12 Sep 2017 11:03:15 -0400 Subject: [PATCH] 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 --- .../com/android/systemui/qs/tileimpl/SlashImageView.java | 1 + .../src/com/android/systemui/qs/SlashImageViewTest.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/SlashImageView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/SlashImageView.java index 13912fe0c16d..97e9c3dfd82c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/SlashImageView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/SlashImageView.java @@ -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); diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java index 9fe3e10b752e..98ca1b4fc799 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/SlashImageViewTest.java @@ -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) { -- 2.11.0