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

Commit b3101ce1 authored by Weng Su's avatar Weng Su Committed by Automerger Merge Worker
Browse files

[Provider Model] Correct the connected Wi-Fi UI am: 151d93fd

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15611714

Change-Id: I2e86f4149761cd2f0205bae380b3148f6824f0e8
parents 26832eed 151d93fd
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -97,7 +97,8 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
        }

        return mInternetDialogController.getWifiEntryList().stream()
                .filter(wifiEntry -> !wifiEntry.isDefaultNetwork())
                .filter(wifiEntry -> (!wifiEntry.isDefaultNetwork()
                        || !wifiEntry.hasInternetAccess()))
                .limit(getItemCount())
                .collect(Collectors.toList());
    }
@@ -107,21 +108,21 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
     * {@link InternetDialog}.
     *
     * Airplane mode is ON (mobile network is gone):
     *   Return four Wi-Fi's entries if no default Wi-Fi.
     *   Return three Wi-Fi's entries if one default Wi-Fi.
     *   Return four Wi-Fi's entries if no internet Wi-Fi.
     *   Return three Wi-Fi's entries if one internet Wi-Fi.
     * Airplane mode is OFF (mobile network is visible):
     *   Return three Wi-Fi's entries if no default Wi-Fi.
     *   Return two Wi-Fi's entries if one default Wi-Fi.
     *   Return three Wi-Fi's entries if no internet Wi-Fi.
     *   Return two Wi-Fi's entries if one internet Wi-Fi.
     *
     * @return The total number of networks.
     */
    @Override
    public int getItemCount() {
        final boolean hasDefaultWifi = mInternetDialogController.getDefaultWifiEntry() != null;
        final boolean hasInternetWifi = mInternetDialogController.getInternetWifiEntry() != null;
        if (mInternetDialogController.isAirplaneModeEnabled()) {
            return hasDefaultWifi ? 3 : 4;
            return hasInternetWifi ? 3 : 4;
        } else {
            return hasDefaultWifi ? 2 : 3;
            return hasInternetWifi ? 2 : 3;
        }
    }

+3 −11
Original line number Diff line number Diff line
@@ -379,10 +379,10 @@ public class InternetDialog extends SystemUIDialog implements
            return;
        }
        mConnectedWifListLayout.setVisibility(View.VISIBLE);
        mConnectedWifiTitleText.setText(getConnectedWifiTitle());
        mConnectedWifiSummaryText.setText(getConnectedWifiSummary());
        mConnectedWifiTitleText.setText(mInternetDialogController.getInternetWifiTitle());
        mConnectedWifiSummaryText.setText(mInternetDialogController.getInternetWifiSummary());
        mConnectedWifiIcon.setImageDrawable(
                mInternetDialogController.getConnectedWifiDrawable(mConnectedWifiEntry));
                mInternetDialogController.getInternetWifiDrawable(mConnectedWifiEntry));
        if (mInternetDialogController.isNightMode()) {
            mConnectedWifiTitleText.setTextColor(
                    mContext.getColor(R.color.connected_network_primary_color));
@@ -423,14 +423,6 @@ public class InternetDialog extends SystemUIDialog implements
        return mInternetDialogController.getMobileNetworkSummary();
    }

    String getConnectedWifiTitle() {
        return mInternetDialogController.getDefaultWifiTitle();
    }

    String getConnectedWifiSummary() {
        return mInternetDialogController.getDefaultWifiSummary();
    }

    protected void showProgressBar() {
        if (mWifiManager == null || !mWifiManager.isWifiEnabled()
                || mInternetDialogController.isDeviceLocked()) {
+14 −13
Original line number Diff line number Diff line
@@ -334,9 +334,9 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        return mContext.getText(SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE);
    }

    Drawable getConnectedWifiDrawable(@NonNull WifiEntry wifiEntry) {
    Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) {
        final Drawable drawable =
                mWifiIconInjector.getIcon(false /* noInternet*/, wifiEntry.getLevel());
                mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(), wifiEntry.getLevel());
        if (drawable == null) {
            return null;
        }
@@ -549,24 +549,24 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        return summary;
    }

    String getDefaultWifiTitle() {
        if (getDefaultWifiEntry() == null) {
    String getInternetWifiTitle() {
        if (getInternetWifiEntry() == null) {
            if (DEBUG) {
                Log.d(TAG, "connected entry is null");
            }
            return "";
        }
        return getDefaultWifiEntry().getTitle();
        return getInternetWifiEntry().getTitle();
    }

    String getDefaultWifiSummary() {
        if (getDefaultWifiEntry() == null) {
    String getInternetWifiSummary() {
        if (getInternetWifiEntry() == null) {
            if (DEBUG) {
                Log.d(TAG, "connected entry is null");
            }
            return "";
        }
        return getDefaultWifiEntry().getSummary(false);
        return getInternetWifiEntry().getSummary(false);
    }

    void launchNetworkSetting() {
@@ -594,12 +594,13 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        return mWifiEntry;
    }

    WifiEntry getDefaultWifiEntry() {
        if (mConnectedEntry != null && mConnectedEntry.isDefaultNetwork()) {
            return mConnectedEntry;
        }
    WifiEntry getInternetWifiEntry() {
        if (mConnectedEntry == null || !mConnectedEntry.isDefaultNetwork()
                || !mConnectedEntry.hasInternetAccess()) {
            return null;
        }
        return mConnectedEntry;
    }

    WifiManager getWifiManager() {
        return mWifiManager;
@@ -801,7 +802,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            mConnectedEntry = null;
        }

        mCallback.onAccessPointsChanged(mWifiEntry, getDefaultWifiEntry());
        mCallback.onAccessPointsChanged(mWifiEntry, getInternetWifiEntry());
    }

    @Override
+20 −10
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ public class InternetAdapterTest extends SysuiTestCase {
    private static final String WIFI_TITLE = "Wi-Fi Title";
    private static final String WIFI_SUMMARY = "Wi-Fi Summary";

    @Mock
    private WifiEntry mInternetWifiEntry;
    @Mock
    private WifiEntry mWifiEntry;
    @Mock
@@ -45,41 +47,49 @@ public class InternetAdapterTest extends SysuiTestCase {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mInternetAdapter = new InternetAdapter(mInternetDialogController);
        mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mContext), 0);
        when(mInternetWifiEntry.getTitle()).thenReturn(WIFI_TITLE);
        when(mInternetWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY);
        when(mInternetWifiEntry.isDefaultNetwork()).thenReturn(true);
        when(mInternetWifiEntry.hasInternetAccess()).thenReturn(true);
        when(mWifiEntry.getTitle()).thenReturn(WIFI_TITLE);
        when(mWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY);

        mInternetAdapter = new InternetAdapter(mInternetDialogController);
        mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mContext), 0);
        when(mInternetDialogController.getInternetWifiEntry()).thenReturn(mInternetWifiEntry);
        when(mInternetDialogController.getWifiEntryList()).thenReturn(Arrays.asList(mWifiEntry));
        mViewHolder.mWifiIconInjector = mWifiIconInjector;
    }

    @Test
    public void getItemCount_withApmOnWifiOnNoDefaultWifi_returnFour() {
    public void getItemCount_withApmOnWifiOnNoInternetWifi_returnFour() {
        // The preconditions WiFi ON is already in setUp()
        when(mInternetDialogController.getInternetWifiEntry()).thenReturn(null);
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);

        assertThat(mInternetAdapter.getItemCount()).isEqualTo(4);
    }

    @Test
    public void getItemCount_withApmOnWifiOnHasDefaultWifi_returnThree() {
        when(mWifiEntry.isDefaultNetwork()).thenReturn(true);
        when(mInternetDialogController.getDefaultWifiEntry()).thenReturn(mWifiEntry);
    public void getItemCount_withApmOnWifiOnHasInternetWifi_returnThree() {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(true);

        assertThat(mInternetAdapter.getItemCount()).isEqualTo(3);
    }

    @Test
    public void getItemCount_withApmOffWifiOnNoDefaultWifi_returnThree() {
    public void getItemCount_withApmOffWifiOnNoInternetWifi_returnThree() {
        // The preconditions WiFi ON is already in setUp()
        when(mInternetDialogController.getInternetWifiEntry()).thenReturn(null);
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);

        assertThat(mInternetAdapter.getItemCount()).isEqualTo(3);
    }

    @Test
    public void getItemCount_withApmOffWifiOnHasDefaultWifi_returnTwo() {
        when(mWifiEntry.isDefaultNetwork()).thenReturn(true);
        when(mInternetDialogController.getDefaultWifiEntry()).thenReturn(mWifiEntry);
    public void getItemCount_withApmOffWifiOnHasInternetWifi_returnTwo() {
        // The preconditions WiFi ON and Internet WiFi are already in setUp()
        when(mInternetDialogController.isAirplaneModeEnabled()).thenReturn(false);

        assertThat(mInternetAdapter.getItemCount()).isEqualTo(2);
+28 −22
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.telephony.ServiceState;
@@ -85,8 +84,6 @@ public class InternetDialogControllerTest extends SysuiTestCase {
    @Mock
    private WifiEntry mConnectedEntry;
    @Mock
    private WifiInfo mWifiInfo;
    @Mock
    private ServiceState mServiceState;
    @Mock
    private BroadcastDispatcher mBroadcastDispatcher;
@@ -100,9 +97,9 @@ public class InternetDialogControllerTest extends SysuiTestCase {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
        when(mWifiManager.getConnectionInfo()).thenReturn(mWifiInfo);
        when(mKeyguardStateController.isUnlocked()).thenReturn(true);
        when(mConnectedEntry.isDefaultNetwork()).thenReturn(true);
        when(mConnectedEntry.hasInternetAccess()).thenReturn(true);

        mInternetDialogController = new MockInternetDialogController(mContext,
                mock(UiEventLogger.class), mock(ActivityStarter.class), mAccessPointController,
@@ -222,53 +219,62 @@ public class InternetDialogControllerTest extends SysuiTestCase {
    }

    @Test
    public void getDefaultWifiEntry_connectedEntryIsNull_returnNull() {
    public void getInternetWifiEntry_connectedEntryIsNull_returnNull() {
        mInternetDialogController.mConnectedEntry = null;

        assertThat(mInternetDialogController.getDefaultWifiEntry()).isNull();
        assertThat(mInternetDialogController.getInternetWifiEntry()).isNull();
    }

    @Test
    public void getDefaultWifiEntry_connectedEntryIsNotDefault_returnNull() {
    public void getInternetWifiEntry_connectedWifiIsNotDefaultNetwork_returnNull() {
        when(mConnectedEntry.isDefaultNetwork()).thenReturn(false);

        assertThat(mInternetDialogController.getDefaultWifiEntry()).isNull();
        assertThat(mInternetDialogController.getInternetWifiEntry()).isNull();
    }

    @Test
    public void getInternetWifiEntry_connectedWifiHasNotInternetAccess_returnNull() {
        when(mConnectedEntry.hasInternetAccess()).thenReturn(false);

        assertThat(mInternetDialogController.getInternetWifiEntry()).isNull();
    }

    @Test
    public void getDefaultWifiEntry_connectedEntryIsDefault_returnConnectedEntry() {
        // The default conditions have been set in setUp().
        //   - The connected Wi-Fi entry with the default network condition.
    public void getInternetWifiEntry_connectedEntryIsInternetWifi_returnConnectedEntry() {
        // The preconditions have been set in setUp().
        //   - The connected Wi-Fi entry have both default network and internet access conditions.

        assertThat(mInternetDialogController.getDefaultWifiEntry()).isEqualTo(mConnectedEntry);
        assertThat(mInternetDialogController.getInternetWifiEntry()).isEqualTo(mConnectedEntry);
    }

    @Test
    public void getDefaultWifiTitle_withNoDefaultEntry_returnEmpty() {
    public void getInternetWifiTitle_withNoConnectedWifiEntry_returnEmpty() {
        mInternetDialogController.mConnectedEntry = null;

        assertThat(mInternetDialogController.getDefaultWifiTitle()).isEmpty();
        assertThat(mInternetDialogController.getInternetWifiTitle()).isEmpty();
    }

    @Test
    public void getDefaultWifiTitle_withDefaultEntry_returnTitle() {
    public void getInternetWifiTitle_withInternetWifi_returnTitle() {
        // The preconditions have been set in setUp().
        //   - The connected Wi-Fi entry have both default network and internet access conditions.
        when(mConnectedEntry.getTitle()).thenReturn(CONNECTED_TITLE);

        assertThat(mInternetDialogController.getDefaultWifiTitle()).isEqualTo(CONNECTED_TITLE);
        assertThat(mInternetDialogController.getInternetWifiTitle()).isEqualTo(CONNECTED_TITLE);
    }

    @Test
    public void getDefaultWifiSummary_withNoDefaultEntry_returnEmpty() {
    public void getInternetWifiSummary_withNoConnectedWifiEntry_returnEmpty() {
        mInternetDialogController.mConnectedEntry = null;

        assertThat(mInternetDialogController.getDefaultWifiSummary()).isEmpty();
        assertThat(mInternetDialogController.getInternetWifiSummary()).isEmpty();
    }

    @Test
    public void getDefaultWifiSummary_withDefaultEntry_returnSummary() {
    public void getInternetWifiSummary_withInternetWifi_returnSummary() {
        when(mConnectedEntry.getSummary(false)).thenReturn(CONNECTED_SUMMARY);

        assertThat(mInternetDialogController.getDefaultWifiSummary()).isEqualTo(CONNECTED_SUMMARY);
        assertThat(mInternetDialogController.getInternetWifiSummary()).isEqualTo(CONNECTED_SUMMARY);
    }

    @Test
@@ -293,11 +299,11 @@ public class InternetDialogControllerTest extends SysuiTestCase {
    }

    @Test
    public void getWifiConnectedDrawable_withConnectedEntry_returnIntentIconWithColorAccent() {
    public void getWifiDrawable_withConnectedEntry_returnIntentIconWithCorrectColor() {
        final Drawable drawable = mock(Drawable.class);
        when(mWifiIconInjector.getIcon(anyBoolean(), anyInt())).thenReturn(drawable);

        mInternetDialogController.getConnectedWifiDrawable(mConnectedEntry);
        mInternetDialogController.getInternetWifiDrawable(mConnectedEntry);

        verify(mWifiIconInjector).getIcon(eq(false), anyInt());
        verify(drawable).setTint(mContext.getColor(R.color.connected_network_primary_color));
Loading