summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java23
2 files changed, 28 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java b/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
index 4c7d82e99d06..5a9c360e3104 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSCarrier.java
@@ -30,6 +30,8 @@ import com.android.settingslib.graph.SignalDrawable;
import com.android.systemui.DualToneHandler;
import com.android.systemui.R;
+import java.util.Objects;
+
public class QSCarrier extends LinearLayout {
private View mMobileGroup;
@@ -39,6 +41,7 @@ public class QSCarrier extends LinearLayout {
private DualToneHandler mDualToneHandler;
private ColorStateList mColorForegroundStateList;
private float mColorForegroundIntensity;
+ private QSCarrierGroupController.CellSignalState mLastSignalState;
public QSCarrier(Context context) {
super(context);
@@ -74,6 +77,8 @@ public class QSCarrier extends LinearLayout {
}
public void updateState(QSCarrierGroupController.CellSignalState state) {
+ if (Objects.equals(state, mLastSignalState)) return;
+ mLastSignalState = state;
mMobileGroup.setVisibility(state.visible ? View.VISIBLE : View.GONE);
if (state.visible) {
mMobileRoaming.setVisibility(state.roaming ? View.VISIBLE : View.GONE);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
index fb106425ec63..86fccd7f9d52 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSCarrierGroupController.java
@@ -29,6 +29,7 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
+import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.keyguard.CarrierTextController;
@@ -37,6 +38,7 @@ import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.statusbar.policy.NetworkController;
+import java.util.Objects;
import java.util.function.Consumer;
import javax.inject.Inject;
@@ -297,6 +299,27 @@ public class QSCarrierGroupController {
String contentDescription;
String typeContentDescription;
boolean roaming;
+
+ @Override
+ public boolean equals(@Nullable Object obj) {
+ if (this == obj) return true;
+ if (!(obj instanceof CellSignalState)) return false;
+ CellSignalState other = (CellSignalState) obj;
+ return this.visible == other.visible
+ && this.mobileSignalIconId == other.mobileSignalIconId
+ && Objects.equals(this.contentDescription, other.contentDescription)
+ && Objects.equals(this.typeContentDescription, other.typeContentDescription)
+ && this.roaming == other.roaming;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(visible,
+ mobileSignalIconId,
+ contentDescription,
+ typeContentDescription,
+ roaming);
+ }
}
public static class Builder {