From cd4d17814137b86306987ed435ebee1da34e129d Mon Sep 17 00:00:00 2001 From: yinxu Date: Wed, 27 Jan 2021 10:54:00 -0800 Subject: [PATCH] Only allows Carrier Merged WiFi when APM is on In the Provider Model, setMobileDataIndicators should be ignored by QS when APM is on except when it is triggered by Carrier Merged WiFi. The only way to know whether setMobileDataIndicators is triggered by Carrier Merged WiFi is to check the qsType. Bug: 178589126 Test: Unit tests, manual tests Change-Id: I7dd003e550263d9cc01b0560b3951dcef6bca86a --- .../src/com/android/systemui/qs/tiles/InternetTile.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java index 15232789cc64a..31576396b7c57 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java @@ -34,6 +34,7 @@ import android.widget.Switch; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.graph.SignalDrawable; +import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Background; @@ -178,6 +179,7 @@ public class InternetTile extends QSTileImpl { CharSequence mDataSubscriptionName; CharSequence mDataContentDescription; int mMobileSignalIconId; + int mQsTypeIcon; boolean mActivityIn; boolean mActivityOut; boolean mNoSim; @@ -194,6 +196,7 @@ public class InternetTile extends QSTileImpl { .append(",mDataSubscriptionName=").append(mDataSubscriptionName) .append(",mDataContentDescription=").append(mDataContentDescription) .append(",mMobileSignalIconId=").append(mMobileSignalIconId) + .append(",mQsTypeIcon=").append(mQsTypeIcon) .append(",mActivityIn=").append(mActivityIn) .append(",mActivityOut=").append(mActivityOut) .append(",mNoSim=").append(mNoSim) @@ -274,6 +277,7 @@ public class InternetTile extends QSTileImpl { mCellularInfo.mDataContentDescription = (description != null) ? typeContentDescriptionHtml : null; mCellularInfo.mMobileSignalIconId = qsIcon.icon; + mCellularInfo.mQsTypeIcon = qsType; mCellularInfo.mActivityIn = activityIn; mCellularInfo.mActivityOut = activityOut; mCellularInfo.mRoaming = roaming; @@ -292,6 +296,7 @@ public class InternetTile extends QSTileImpl { if (mCellularInfo.mNoSim) { // Make sure signal gets cleared out when no sims. mCellularInfo.mMobileSignalIconId = 0; + mCellularInfo.mQsTypeIcon = 0; } refreshState(mCellularInfo); } @@ -374,6 +379,7 @@ public class InternetTile extends QSTileImpl { state.label = r.getString(R.string.quick_settings_internet_label); if (cb.mAirplaneModeEnabled) { if (!state.value) { + state.state = Tile.STATE_INACTIVE; state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_airplane); state.secondaryLabel = r.getString(R.string.status_bar_airplane); } else if (!wifiConnected) { @@ -443,7 +449,8 @@ public class InternetTile extends QSTileImpl { state.activityOut = mobileDataEnabled && cb.mActivityOut; state.expandedAccessibilityClassName = Switch.class.getName(); - if (cb.mAirplaneModeEnabled && cb.mNoDefaultNetwork) { + if (cb.mAirplaneModeEnabled && cb.mQsTypeIcon != TelephonyIcons.ICON_CWF) { + state.state = Tile.STATE_INACTIVE; state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_airplane); state.secondaryLabel = r.getString(R.string.status_bar_airplane); } else if (cb.mNoDefaultNetwork && cb.mNoNetworksAvailable) {