diff options
| author | 2023-02-06 18:54:06 +0800 | |
|---|---|---|
| committer | 2023-02-06 14:18:43 +0000 | |
| commit | 932b007b47b1e4dced38b462b901b638a37fda6f (patch) | |
| tree | 65e0822796a543578958d666615792e17edf21ef | |
| parent | d57a294101baeda2ef49c36bcbdbf6e564722280 (diff) | |
[SystemUI] Add the CarrierNetworkChange case into InternetDialog
Bug: 262927206
Test: atest InternetDialogControllerTest
Change-Id: I08590ccd02232f3f26cb44e195c1136d2f186196
3 files changed, 48 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java index 1ed18c3df332..c0e499504252 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java @@ -805,6 +805,11 @@ public class InternetDialog extends SystemUIDialog implements } @Override + public void onCarrierNetworkChange(boolean active) { + mHandler.post(() -> updateDialog(true /* shouldUpdateMobileNetwork */)); + } + + @Override @WorkerThread public void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries, @Nullable WifiEntry connectedEntry, boolean hasMoreWifiEntries) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java index 2e6ea0e28d86..557b718b6cb6 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java @@ -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, diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java index 6d2972d818fe..508327fbb64b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java @@ -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)); } |