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

Commit 427e2410 authored by Weng Su's avatar Weng Su
Browse files

[Provider Model] Adjust the design of "See all" (QS Internet Dialog)

- Show "See all" until there are results && there are more results than
can fit into the panel.

- See b/206061768#comment22 for a screenshot.

Bug: 206061768
Test: manual test
atest -c InternetDialogControllerTest \
         InternetDialogTest

Change-Id: If58364d865ea4497ea270fddbe8ba409f6069391
parent 535795b3
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -137,6 +137,8 @@ public class InternetDialog extends SystemUIDialog implements
    protected WifiEntry mConnectedWifiEntry;
    @VisibleForTesting
    protected int mWifiEntriesCount;
    @VisibleForTesting
    protected boolean mHasMoreEntry;

    // Wi-Fi scanning progress bar
    protected boolean mIsProgressBarVisible;
@@ -464,8 +466,7 @@ public class InternetDialog extends SystemUIDialog implements
        }
        mWifiRecyclerView.setMinimumHeight(mWifiNetworkHeight * getWifiListMaxCount());
        mWifiRecyclerView.setVisibility(View.VISIBLE);
        final boolean showSeeAll = mConnectedWifiEntry != null || mWifiEntriesCount > 0;
        mSeeAllLayout.setVisibility(showSeeAll ? View.VISIBLE : View.INVISIBLE);
        mSeeAllLayout.setVisibility(mHasMoreEntry ? View.VISIBLE : View.INVISIBLE);
    }

    @VisibleForTesting
@@ -651,13 +652,14 @@ public class InternetDialog extends SystemUIDialog implements
    @Override
    @WorkerThread
    public void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,
            @Nullable WifiEntry connectedEntry) {
            @Nullable WifiEntry connectedEntry, boolean hasMoreEntry) {
        // Should update the carrier network layout when it is connected under airplane mode ON.
        boolean shouldUpdateCarrierNetwork = mMobileNetworkLayout.getVisibility() == View.VISIBLE
                && mInternetDialogController.isAirplaneModeEnabled();
        mHandler.post(() -> {
            mConnectedWifiEntry = connectedEntry;
            mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
            mHasMoreEntry = hasMoreEntry;
            updateDialog(shouldUpdateCarrierNetwork /* shouldUpdateMobileNetwork */);
            mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
            mAdapter.notifyDataSetChanged();
+10 −5
Original line number Diff line number Diff line
@@ -879,11 +879,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
            mConnectedEntry = null;
            mWifiEntriesCount = 0;
            if (mCallback != null) {
                mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */);
                mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */,
                        false /* hasMoreEntry */);
            }
            return;
        }

        boolean hasMoreEntry = false;
        int count = MAX_WIFI_ENTRY_COUNT;
        if (mHasEthernet) {
            count -= 1;
@@ -891,8 +893,11 @@ public class InternetDialogController implements AccessPointController.AccessPoi
        if (hasActiveSubId()) {
            count -= 1;
        }
        if (count > accessPoints.size()) {
            count = accessPoints.size();
        final int wifiTotalCount = accessPoints.size();
        if (count > wifiTotalCount) {
            count = wifiTotalCount;
        } else if (count < wifiTotalCount) {
            hasMoreEntry = true;
        }

        WifiEntry connectedEntry = null;
@@ -909,7 +914,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
        mWifiEntriesCount = wifiEntries.size();

        if (mCallback != null) {
            mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry);
            mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry, hasMoreEntry);
        }
    }

@@ -1060,7 +1065,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
        void dismissDialog();

        void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,
                @Nullable WifiEntry connectedEntry);
                @Nullable WifiEntry connectedEntry, boolean hasMoreEntry);
    }

    void makeOverlayToast(int stringId) {
+27 −20
Original line number Diff line number Diff line
@@ -400,7 +400,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {

        mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);

        verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any());
        verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any(), anyBoolean());
    }

    @Test
@@ -409,8 +409,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {

        mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);

        verify(mInternetDialogCallback)
                .onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(null /* wifiEntries */,
                null /* connectedEntry */, false /* hasMoreEntry */);
    }

    @Test
@@ -423,7 +423,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mInternetDialogController.onAccessPointsChanged(mAccessPoints);

        mWifiEntries.clear();
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                false /* hasMoreEntry */);
    }

    @Test
@@ -437,8 +438,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {

        mWifiEntries.clear();
        mWifiEntries.add(mWifiEntry1);
        verify(mInternetDialogCallback)
                .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
                null /* connectedEntry */, false /* hasMoreEntry */);
    }

    @Test
@@ -453,7 +454,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {

        mWifiEntries.clear();
        mWifiEntries.add(mWifiEntry1);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                false /* hasMoreEntry */);
    }

    @Test
@@ -470,7 +472,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mWifiEntries.clear();
        mWifiEntries.add(mWifiEntry1);
        mWifiEntries.add(mWifiEntry2);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                false /* hasMoreEntry */);
    }

    @Test
@@ -489,7 +492,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mWifiEntries.add(mWifiEntry1);
        mWifiEntries.add(mWifiEntry2);
        mWifiEntries.add(mWifiEntry3);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                false /* hasMoreEntry */);

        // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
        reset(mInternetDialogCallback);
@@ -498,7 +502,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mInternetDialogController.onAccessPointsChanged(mAccessPoints);

        mWifiEntries.remove(mWifiEntry3);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                true /* hasMoreEntry */);
    }

    @Test
@@ -518,7 +523,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mWifiEntries.add(mWifiEntry1);
        mWifiEntries.add(mWifiEntry2);
        mWifiEntries.add(mWifiEntry3);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                true /* hasMoreEntry */);

        // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
        reset(mInternetDialogCallback);
@@ -527,7 +533,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mInternetDialogController.onAccessPointsChanged(mAccessPoints);

        mWifiEntries.remove(mWifiEntry3);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
                true /* hasMoreEntry */);
    }

    @Test
@@ -547,8 +554,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mWifiEntries.add(mWifiEntry2);
        mWifiEntries.add(mWifiEntry3);
        mWifiEntries.add(mWifiEntry4);
        verify(mInternetDialogCallback)
                .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
                null /* connectedEntry */, false /* hasMoreEntry */);

        // If the Ethernet exists, then Wi-Fi entries will cut last one.
        reset(mInternetDialogCallback);
@@ -557,8 +564,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mInternetDialogController.onAccessPointsChanged(mAccessPoints);

        mWifiEntries.remove(mWifiEntry4);
        verify(mInternetDialogCallback)
                .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
                null /* connectedEntry */, true /* hasMoreEntry */);

        // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
        reset(mInternetDialogCallback);
@@ -567,8 +574,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
        mInternetDialogController.onAccessPointsChanged(mAccessPoints);

        mWifiEntries.remove(mWifiEntry3);
        verify(mInternetDialogCallback)
                .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
                null /* connectedEntry */, true /* hasMoreEntry */);
    }

    @Test
@@ -584,8 +591,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {

        mWifiEntries.clear();
        mWifiEntries.add(mWifiEntry1);
        verify(mInternetDialogCallback)
                .onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
        verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
                null /* connectedEntry */, false /* hasMoreEntry */);
    }

    @Test
+20 −2
Original line number Diff line number Diff line
@@ -315,6 +315,20 @@ public class InternetDialogTest extends SysuiTestCase {
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
    }

    @Test
    public void updateDialog_wifiOnAndOneWifiEntry_showWifiListAndSeeAllArea() {
        // The precondition WiFi ON is already in setUp()
        mInternetDialog.mConnectedWifiEntry = null;
        mInternetDialog.mWifiEntriesCount = 1;

        mInternetDialog.updateDialog(false);

        assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.GONE);
        // Show a blank block to fix the dialog height even if there is no WiFi list
        assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
    }

    @Test
    public void updateDialog_wifiOnAndHasConnectedWifi_showAllWifiAndSeeAllArea() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
@@ -325,13 +339,15 @@ public class InternetDialogTest extends SysuiTestCase {
        assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
        // Show a blank block to fix the dialog height even if there is no WiFi list
        assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE);
        assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
    }

    @Test
    public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() {
    public void updateDialog_wifiOnAndHasMaxWifiList_showWifiListAndSeeAll() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
        mInternetDialog.mConnectedWifiEntry = null;
        mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT;
        mInternetDialog.mHasMoreEntry = true;

        mInternetDialog.updateDialog(false);

@@ -343,6 +359,8 @@ public class InternetDialogTest extends SysuiTestCase {
    @Test
    public void updateDialog_wifiOnAndHasBothWifiEntry_showBothWifiEntryAndSeeAll() {
        // The preconditions WiFi ON and WiFi entries are already in setUp()
        mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT - 1;
        mInternetDialog.mHasMoreEntry = true;

        mInternetDialog.updateDialog(false);