From 7b6aeac0502b194fefb834ee411f8727af8d15e2 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Mon, 6 Dec 2021 16:13:01 +0800 Subject: [Provider Model] Reduce WiFi list in airplane mode (QS Internet Dialog) - Usually Carrier Network does not appear in airplane mode is turned on, but it is an exception if it is connected to carrier WiFi(W+). - In the above case, one of the WiFi lists needs to be reduced. - See b/207741548#comment3 for a screenshot. Bug: 207741548 Test: manual test atest -c InternetDialogControllerTest Change-Id: I056b085baba03945543237783733188de689f7b8 --- .../qs/tiles/dialog/InternetDialogController.java | 2 +- .../tiles/dialog/InternetDialogControllerTest.java | 30 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) 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 6f63a08c6c0f..e60c28d0bd43 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 @@ -888,7 +888,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi if (mHasEthernet) { count -= 1; } - if (hasActiveSubId()) { + if (hasActiveSubId() || isCarrierNetworkActive()) { count -= 1; } if (count > accessPoints.size()) { 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 95e7a98c0a60..f5a3be0f2c08 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 @@ -530,6 +530,36 @@ public class InternetDialogControllerTest extends SysuiTestCase { verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); } + @Test + public void onAccessPointsChanged_oneCarrierWifiAndFourOthers_callbackCutMore() { + reset(mInternetDialogCallback); + fakeAirplaneModeEnabled(true); + when(mMergedCarrierEntry.isDefaultNetwork()).thenReturn(true); + mAccessPoints.clear(); + mAccessPoints.add(mWifiEntry1); + mAccessPoints.add(mWifiEntry2); + mAccessPoints.add(mWifiEntry3); + mAccessPoints.add(mWifiEntry4); + + mInternetDialogController.onAccessPointsChanged(mAccessPoints); + + mWifiEntries.clear(); + mWifiEntries.add(mWifiEntry1); + mWifiEntries.add(mWifiEntry2); + mWifiEntries.add(mWifiEntry3); + verify(mInternetDialogCallback) + .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); + + // Turn off airplane mode to has carrier WiFi, then Wi-Fi entries will keep the same. + reset(mInternetDialogCallback); + fakeAirplaneModeEnabled(false); + + mInternetDialogController.onAccessPointsChanged(mAccessPoints); + + verify(mInternetDialogCallback) + .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); + } + @Test public void onAccessPointsChanged_fourWifiEntries_callbackCutMore() { reset(mInternetDialogCallback); -- cgit v1.2.3-59-g8ed1b