summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-04-25 18:43:03 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-04-25 18:43:03 +0000
commitb1a3a5f5821d3c428b11bea172514ea6973f9f90 (patch)
treeb31a83b48dd3ec7d991c763661a425dd65d44347
parent16c671dc9a0a7e90a16a2998f97fa605a7a63a67 (diff)
parent56fb9f8aa52d14006c2638a216c113c35b801e66 (diff)
Merge "Always copy SignalIconState when keeping a reference" into pi-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconHolder.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java6
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;