diff options
| author | 2018-04-25 18:43:03 +0000 | |
|---|---|---|
| committer | 2018-04-25 18:43:03 +0000 | |
| commit | b1a3a5f5821d3c428b11bea172514ea6973f9f90 (patch) | |
| tree | b31a83b48dd3ec7d991c763661a425dd65d44347 | |
| parent | 16c671dc9a0a7e90a16a2998f97fa605a7a63a67 (diff) | |
| parent | 56fb9f8aa52d14006c2638a216c113c35b801e66 (diff) | |
Merge "Always copy SignalIconState when keeping a reference" into pi-dev
4 files changed, 21 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java index f4e4581215b5..5748ec9beef8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java @@ -100,13 +100,13 @@ public class StatusBarMobileView extends AlphaOptimizedLinearLayout implements D } if (mState == null) { - mState = state; + mState = state.copy(); initViewState(); return; } if (!mState.equals(state)) { - updateState(state); + updateState(state.copy()); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java index 0e2714d4f42b..bf94c1f8a98b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java @@ -64,6 +64,7 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, private WifiIconState mState; private String mSlot; private float mDarkIntensity = 0; + private int mVisibleState = -1; private ContextThemeWrapper mDarkContext; private ContextThemeWrapper mLightContext; @@ -73,6 +74,7 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, StatusBarWifiView v = (StatusBarWifiView) inflater.inflate(R.layout.status_bar_wifi_group, null); v.setSlot(slot); v.init(); + v.setVisibleState(STATE_ICON); return v; } @@ -123,6 +125,11 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, @Override public void setVisibleState(int state) { + if (state == mVisibleState) { + return; + } + mVisibleState = state; + switch (state) { case STATE_ICON: mWifiGroup.setVisibility(View.VISIBLE); @@ -139,12 +146,6 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, } } - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = MeasureSpec.getSize(widthMeasureSpec); - } - private void init() { int dualToneLightTheme = Utils.getThemeAttr(mContext, R.attr.lightIconTheme); int dualToneDarkTheme = Utils.getThemeAttr(mContext, R.attr.darkIconTheme); @@ -180,12 +181,12 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, } if (mState == null) { - mState = state; + mState = state.copy(); initViewState(); } if (!mState.equals(state)) { - updateState(state); + updateState(state.copy()); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java index e854dd0cd737..c4ff85fb7984 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java @@ -110,6 +110,10 @@ public class StatusBarIconHolder { } public void setVisible(boolean visible) { + if (isVisible() == visible) { + return; + } + switch (mType) { case TYPE_ICON: mIcon.visible = visible; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java index 669a8c83a6c5..7cd433a3868e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java @@ -388,6 +388,12 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba typeContentDescription); } + public MobileIconState copy() { + MobileIconState copy = new MobileIconState(this.subId); + copyTo(copy); + return copy; + } + public void copyTo(MobileIconState other) { super.copyTo(other); other.subId = subId; |