Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b6aeac0 authored by Weng Su's avatar Weng Su
Browse files

[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
parent 535795b3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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()) {
+30 −0
Original line number Diff line number Diff line
@@ -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);