Merge "[SystemUI] Add the CarrierNetworkChange case into InternetDialog" into tm-qpr-dev

This commit is contained in:
Zoey Chen
2023-02-07 10:59:46 +00:00
committed by Android (Google) Code Review
3 changed files with 48 additions and 6 deletions

View File

@@ -804,6 +804,11 @@ public class InternetDialog extends SystemUIDialog implements
mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
}
@Override
public void onCarrierNetworkChange(boolean active) {
mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */));
}
@Override
@WorkerThread
public void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,

View File

@@ -206,6 +206,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
protected boolean mHasEthernet = false;
@VisibleForTesting
protected ConnectedWifiInternetMonitor mConnectedWifiInternetMonitor;
@VisibleForTesting
protected boolean mCarrierNetworkChangeMode;
private final KeyguardUpdateMonitorCallback mKeyguardUpdateCallback =
new KeyguardUpdateMonitorCallback() {
@@ -507,10 +509,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
Drawable getSignalStrengthIcon(int subId, Context context, int level, int numLevels,
int iconType, boolean cutOut) {
boolean isForDds = subId == mDefaultDataSubId;
int levelDrawable =
mCarrierNetworkChangeMode ? SignalDrawable.getCarrierChangeState(numLevels)
: SignalDrawable.getState(level, numLevels, cutOut);
if (isForDds) {
mSignalDrawable.setLevel(SignalDrawable.getState(level, numLevels, cutOut));
mSignalDrawable.setLevel(levelDrawable);
} else {
mSecondarySignalDrawable.setLevel(SignalDrawable.getState(level, numLevels, cutOut));
mSecondarySignalDrawable.setLevel(levelDrawable);
}
// Make the network type drawable
@@ -672,10 +677,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
}
int resId = Objects.requireNonNull(mapIconSets(config).get(iconKey)).dataContentDescription;
SignalIcon.MobileIconGroup iconGroup;
if (isCarrierNetworkActive()) {
SignalIcon.MobileIconGroup carrierMergedWifiIconGroup =
TelephonyIcons.CARRIER_MERGED_WIFI;
resId = carrierMergedWifiIconGroup.dataContentDescription;
iconGroup = TelephonyIcons.CARRIER_MERGED_WIFI;
resId = iconGroup.dataContentDescription;
} else if (mCarrierNetworkChangeMode) {
iconGroup = TelephonyIcons.CARRIER_NETWORK_CHANGE;
resId = iconGroup.dataContentDescription;
}
return resId != 0
@@ -1066,7 +1074,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
TelephonyCallback.DisplayInfoListener,
TelephonyCallback.ServiceStateListener,
TelephonyCallback.SignalStrengthsListener,
TelephonyCallback.UserMobileDataStateListener {
TelephonyCallback.UserMobileDataStateListener,
TelephonyCallback.CarrierNetworkListener{
private final int mSubId;
private InternetTelephonyCallback(int subId) {
@@ -1098,6 +1107,12 @@ public class InternetDialogController implements AccessPointController.AccessPoi
public void onUserMobileDataStateChanged(boolean enabled) {
mCallback.onUserMobileDataStateChanged(enabled);
}
@Override
public void onCarrierNetworkChange(boolean active) {
mCarrierNetworkChangeMode = active;
mCallback.onCarrierNetworkChange(active);
}
}
private class InternetOnSubscriptionChangedListener
@@ -1267,6 +1282,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo);
void onCarrierNetworkChange(boolean active);
void dismissDialog();
void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,

View File

@@ -879,6 +879,26 @@ public class InternetDialogControllerTest extends SysuiTestCase {
}
}
@Test
public void getMobileNetworkSummary_withCarrierNetworkChange() {
Resources res = mock(Resources.class);
doReturn("Carrier network changing").when(res).getString(anyInt());
when(SubscriptionManager.getResourcesForSubId(any(), eq(SUB_ID))).thenReturn(res);
InternetDialogController spyController = spy(mInternetDialogController);
Map<Integer, TelephonyDisplayInfo> mSubIdTelephonyDisplayInfoMap =
spyController.mSubIdTelephonyDisplayInfoMap;
TelephonyDisplayInfo info = new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_LTE,
TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
mSubIdTelephonyDisplayInfoMap.put(SUB_ID, info);
doReturn(true).when(spyController).isMobileDataEnabled();
doReturn(true).when(spyController).activeNetworkIsCellular();
spyController.mCarrierNetworkChangeMode = true;
String dds = spyController.getMobileNetworkSummary(SUB_ID);
assertThat(dds).contains(mContext.getString(R.string.carrier_network_change_mode));
}
private String getResourcesString(String name) {
return mContext.getResources().getString(getResourcesId(name));
}