From 194264a941d808f61fb8414f9c5e2f7c94bf55ab Mon Sep 17 00:00:00 2001 From: Weng Su Date: Sat, 7 Aug 2021 23:08:12 +0800 Subject: [PATCH] [Provider Model] Correct the connected Wi-Fi UI - Highlight the connected Wi-Fi with both default network and internet access attributes - Show Wi-Fi icon with exclamation mark if the connected Wi-Fi has no the internet access (e.g. Printer/GoPro cases). Bug: 195379439 Bug: 195728184 Test: manual test atest -c InternetAdapterTest \ InternetDialogControllerTest \ InternetDialogTest Change-Id: Ic80ed7f819ffb9f5821df244a3a4f7b2e5ac0379 --- .../qs/tiles/dialog/InternetAdapter.java | 17 +- .../qs/tiles/dialog/InternetDialog.java | 14 +- .../dialog/InternetDialogController.java | 27 +-- .../qs/tiles/dialog/InternetAdapterTest.java | 30 ++- .../dialog/InternetDialogControllerTest.java | 50 ++--- .../qs/tiles/dialog/InternetDialogTest.java | 176 ++++-------------- 6 files changed, 114 insertions(+), 200 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java index e346044e746de..91c81bc506c29 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java @@ -97,7 +97,8 @@ public class InternetAdapter extends RecyclerView.Adapter !wifiEntry.isDefaultNetwork()) + .filter(wifiEntry -> (!wifiEntry.isDefaultNetwork() + || !wifiEntry.hasInternetAccess())) .limit(getItemCount()) .collect(Collectors.toList()); } @@ -107,21 +108,21 @@ public class InternetAdapter extends RecyclerView.Adapter wifiEntries = new ArrayList(); - wifiEntries.add(mWifiEntry); - when(mInternetDialogController.getWifiEntryList()).thenReturn(wifiEntries); + // The preconditions WiFi ON and WiFi entries are already in setUp() mInternetDialog.updateDialog(); @@ -193,13 +181,9 @@ public class InternetDialogTest extends SysuiTestCase { } @Test - public void updateDialog_deviceLockedAndHasConnectedWifi_showHighlightWifiToggle() { + public void updateDialog_deviceLockedAndHasInternetWifi_showHighlightWifiToggle() { + // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); - when(mWifiEntry.getTitle()).thenReturn(WIFI_TITLE); - when(mWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); - when(mWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED); - when(mWifiEntry.isDefaultNetwork()).thenReturn(true); - mInternetDialog.mConnectedWifiEntry = mWifiEntry; mInternetDialog.updateDialog(); @@ -208,13 +192,9 @@ public class InternetDialogTest extends SysuiTestCase { } @Test - public void updateDialog_deviceLockedAndHasConnectedWifi_hideConnectedWifi() { + public void updateDialog_deviceLockedAndHasInternetWifi_hideConnectedWifi() { + // The preconditions WiFi ON and Internet WiFi are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); - when(mWifiEntry.getTitle()).thenReturn(WIFI_TITLE); - when(mWifiEntry.getSummary(false)).thenReturn(WIFI_SUMMARY); - when(mWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED); - when(mWifiEntry.isDefaultNetwork()).thenReturn(true); - mInternetDialog.mConnectedWifiEntry = mWifiEntry; mInternetDialog.updateDialog(); @@ -223,10 +203,8 @@ public class InternetDialogTest extends SysuiTestCase { @Test public void updateDialog_deviceLockedAndHasWifiList_hideWifiListAndSeeAll() { + // The preconditions WiFi entries are already in setUp() when(mInternetDialogController.isDeviceLocked()).thenReturn(true); - List wifiEntries = new ArrayList(); - wifiEntries.add(mWifiEntry); - when(mInternetDialogController.getWifiEntryList()).thenReturn(wifiEntries); mInternetDialog.updateDialog(); @@ -244,7 +222,7 @@ public class InternetDialogTest extends SysuiTestCase { @Test public void showProgressBar_wifiDisabled_hideProgressBar() { Mockito.reset(mHandler); - when(mMockWifiManager.isWifiEnabled()).thenReturn(false); + when(mWifiManager.isWifiEnabled()).thenReturn(false); mInternetDialog.showProgressBar(); @@ -266,10 +244,10 @@ public class InternetDialogTest extends SysuiTestCase { @Test public void showProgressBar_wifiEnabledWithWifiEntry_showProgressBarThenHide() { Mockito.reset(mHandler); - when(mMockWifiManager.isWifiEnabled()).thenReturn(true); + when(mWifiManager.isWifiEnabled()).thenReturn(true); List wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(1); - when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); + when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); @@ -288,10 +266,10 @@ public class InternetDialogTest extends SysuiTestCase { @Test public void showProgressBar_wifiEnabledWithoutWifiScanResults_showProgressBarThenHideSearch() { Mockito.reset(mHandler); - when(mMockWifiManager.isWifiEnabled()).thenReturn(true); + when(mWifiManager.isWifiEnabled()).thenReturn(true); List wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(0); - when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); + when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); @@ -307,78 +285,4 @@ public class InternetDialogTest extends SysuiTestCase { assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); assertThat(mInternetDialog.mIsSearchingHidden).isTrue(); } - - private class MockInternetDialog extends InternetDialog { - - private String mMobileNetworkTitle; - private String mMobileNetworkSummary; - private String mConnectedWifiTitle; - private String mConnectedWifiSummary; - - MockInternetDialog(Context context, InternetDialogFactory internetDialogFactory, - InternetDialogController internetDialogController, boolean canConfigMobileData, - boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) { - super(context, internetDialogFactory, internetDialogController, canConfigMobileData, - aboveStatusBar, uiEventLogger, handler); - mAdapter = mInternetAdapter; - mWifiManager = mMockWifiManager; - } - - @Override - String getMobileNetworkTitle() { - return mMobileNetworkTitle; - } - - @Override - String getMobileNetworkSummary() { - return mMobileNetworkSummary; - } - - void setMobileNetworkTitle(String title) { - mMobileNetworkTitle = title; - } - - void setMobileNetworkSummary(String summary) { - mMobileNetworkSummary = summary; - } - - @Override - String getConnectedWifiTitle() { - return mConnectedWifiTitle; - } - - @Override - String getConnectedWifiSummary() { - return mConnectedWifiSummary; - } - - void setConnectedWifiTitle(String title) { - mConnectedWifiTitle = title; - } - - void setConnectedWifiSummary(String summary) { - mConnectedWifiSummary = summary; - } - - @Override - public void onWifiStateReceived(Context context, Intent intent) { - setMobileNetworkTitle(MOBILE_NETWORK_TITLE); - setMobileNetworkSummary(MOBILE_NETWORK_SUMMARY); - } - } - - private class WifiReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { - return; - } - - if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { - mInternetDialog.updateDialog(); - } - } - } - }