[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
This commit is contained in:
Weng Su
2021-12-06 16:13:01 +08:00
parent 535795b36d
commit 7b6aeac050
2 changed files with 31 additions and 1 deletions

View File

@@ -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()) {

View File

@@ -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);