Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +21 −8 Original line number Diff line number Diff line Loading @@ -79,11 +79,11 @@ public class InternetDialog extends SystemUIDialog implements InternetDialogController.InternetDialogCallback, Window.Callback { private static final String TAG = "InternetDialog"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); static final long PROGRESS_DELAY_MS = 2000L; private final Handler mHandler; private final LinearLayoutManager mLayoutManager; private final Runnable mHideProgressBarRunnable = () -> { setProgressBarVisible(false); }; @VisibleForTesting protected InternetAdapter mAdapter; Loading Loading @@ -125,9 +125,19 @@ public class InternetDialog extends SystemUIDialog implements private WifiEntry mConnectedWifiEntry; private int mListMaxHeight; private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private boolean mIsProgressBarVisible; private boolean mCanConfigMobileData; // Wi-Fi scanning progress bar protected boolean mIsProgressBarVisible; protected boolean mIsSearchingHidden; protected final Runnable mHideProgressBarRunnable = () -> { setProgressBarVisible(false); }; protected Runnable mHideSearchingRunnable = () -> { mIsSearchingHidden = true; mInternetDialogSubTitle.setText(getSubtitleText()); }; private final ViewTreeObserver.OnGlobalLayoutListener mInternetListLayoutListener = () -> { // Set max height for list if (mInternetListLayout.getHeight() > mListMaxHeight) { Loading Loading @@ -243,6 +253,7 @@ public class InternetDialog extends SystemUIDialog implements Log.d(TAG, "onStop"); } mHandler.removeCallbacks(mHideProgressBarRunnable); mHandler.removeCallbacks(mHideSearchingRunnable); mMobileNetworkLayout.setOnClickListener(null); mMobileDataToggle.setOnCheckedChangeListener(null); mConnectedWifListLayout.setOnClickListener(null); Loading Loading @@ -374,7 +385,8 @@ public class InternetDialog extends SystemUIDialog implements } CharSequence getSubtitleText() { return mInternetDialogController.getSubtitleText(mIsProgressBarVisible); return mInternetDialogController.getSubtitleText( mIsProgressBarVisible && !mIsSearchingHidden); } private Drawable getConnectedWifiDrawable() { Loading Loading @@ -406,7 +418,7 @@ public class InternetDialog extends SystemUIDialog implements return mInternetDialogController.getConnectedWifiSummary(); } private void showProgressBar() { protected void showProgressBar() { if (mWifiManager == null || !mWifiManager.isWifiEnabled()) { setProgressBarVisible(false); return; Loading @@ -414,8 +426,9 @@ public class InternetDialog extends SystemUIDialog implements setProgressBarVisible(true); List<ScanResult> wifiScanResults = mWifiManager.getScanResults(); if (wifiScanResults != null && wifiScanResults.size() > 0) { mContext.getMainThreadHandler().postDelayed(mHideProgressBarRunnable, 2000 /* delay millis */); mHandler.postDelayed(mHideProgressBarRunnable, PROGRESS_DELAY_MS); } else if (!mIsSearchingHidden) { mHandler.postDelayed(mHideSearchingRunnable, PROGRESS_DELAY_MS); } } Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +5 −5 Original line number Diff line number Diff line Loading @@ -269,17 +269,17 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, return mContext.getText(SUBTITLE_TEXT_WIFI_IS_OFF); } final List<ScanResult> wifiList = mWifiManager.getScanResults(); if (wifiList != null && wifiList.size() != 0) { return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); } if (isProgressBarVisible) { // When the Wi-Fi scan result callback is received // Sub-Title: Searching for networks... return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS); } final List<ScanResult> wifiList = mWifiManager.getScanResults(); if (wifiList != null && wifiList.size() != 0) { return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); } // Sub-Title: // show non_carrier_network_unavailable // - while Wi-Fi on + no Wi-Fi item Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -138,9 +138,12 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void getSubtitleText_withWifiOn_returnSearchWifi() { public void getSubtitleText_withNoWifiEntry_returnSearchWifi() { mInternetDialogController.setAirplaneModeEnabled(false); when(mWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); doReturn(0).when(wifiScanResults).size(); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(true), getResourcesString("wifi_empty_list_wifi_on"))); Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +61 −0 Original line number Diff line number Diff line Loading @@ -2,8 +2,12 @@ package com.android.systemui.qs.tiles.dialog; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -11,6 +15,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Handler; Loading @@ -34,10 +39,13 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @SmallTest @RunWith(AndroidTestingRunner.class) Loading Loading @@ -170,6 +178,59 @@ public class InternetDialogTest extends SysuiTestCase { verify(mInternetDialogController).launchNetworkSetting(); } @Test public void showProgressBar_wifiDisabled_hideProgressBar() { when(mMockWifiManager.isWifiEnabled()).thenReturn(false); mInternetDialog.showProgressBar(); assertThat(mInternetDialog.mIsProgressBarVisible).isFalse(); verify(mHandler, never()).postDelayed(any(Runnable.class), anyLong()); } @Test public void showProgressBar_wifiEnabledWithWifiEntry_showProgressBarThenHide() { when(mMockWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(1); when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); // Show progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class); verify(mHandler).postDelayed(runnableCaptor.capture(), eq(InternetDialog.PROGRESS_DELAY_MS)); runnableCaptor.getValue().run(); // Then hide progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isFalse(); } @Test public void showProgressBar_wifiEnabledWithoutWifiScanResults_showProgressBarThenHideSearch() { when(mMockWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(0); when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); // Show progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class); verify(mHandler).postDelayed(runnableCaptor.capture(), eq(InternetDialog.PROGRESS_DELAY_MS)); runnableCaptor.getValue().run(); // Then hide searching sub-title only assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); assertThat(mInternetDialog.mIsSearchingHidden).isTrue(); } private class MockInternetDialog extends InternetDialog { private String mMobileNetworkTitle; Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +21 −8 Original line number Diff line number Diff line Loading @@ -79,11 +79,11 @@ public class InternetDialog extends SystemUIDialog implements InternetDialogController.InternetDialogCallback, Window.Callback { private static final String TAG = "InternetDialog"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); static final long PROGRESS_DELAY_MS = 2000L; private final Handler mHandler; private final LinearLayoutManager mLayoutManager; private final Runnable mHideProgressBarRunnable = () -> { setProgressBarVisible(false); }; @VisibleForTesting protected InternetAdapter mAdapter; Loading Loading @@ -125,9 +125,19 @@ public class InternetDialog extends SystemUIDialog implements private WifiEntry mConnectedWifiEntry; private int mListMaxHeight; private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private boolean mIsProgressBarVisible; private boolean mCanConfigMobileData; // Wi-Fi scanning progress bar protected boolean mIsProgressBarVisible; protected boolean mIsSearchingHidden; protected final Runnable mHideProgressBarRunnable = () -> { setProgressBarVisible(false); }; protected Runnable mHideSearchingRunnable = () -> { mIsSearchingHidden = true; mInternetDialogSubTitle.setText(getSubtitleText()); }; private final ViewTreeObserver.OnGlobalLayoutListener mInternetListLayoutListener = () -> { // Set max height for list if (mInternetListLayout.getHeight() > mListMaxHeight) { Loading Loading @@ -243,6 +253,7 @@ public class InternetDialog extends SystemUIDialog implements Log.d(TAG, "onStop"); } mHandler.removeCallbacks(mHideProgressBarRunnable); mHandler.removeCallbacks(mHideSearchingRunnable); mMobileNetworkLayout.setOnClickListener(null); mMobileDataToggle.setOnCheckedChangeListener(null); mConnectedWifListLayout.setOnClickListener(null); Loading Loading @@ -374,7 +385,8 @@ public class InternetDialog extends SystemUIDialog implements } CharSequence getSubtitleText() { return mInternetDialogController.getSubtitleText(mIsProgressBarVisible); return mInternetDialogController.getSubtitleText( mIsProgressBarVisible && !mIsSearchingHidden); } private Drawable getConnectedWifiDrawable() { Loading Loading @@ -406,7 +418,7 @@ public class InternetDialog extends SystemUIDialog implements return mInternetDialogController.getConnectedWifiSummary(); } private void showProgressBar() { protected void showProgressBar() { if (mWifiManager == null || !mWifiManager.isWifiEnabled()) { setProgressBarVisible(false); return; Loading @@ -414,8 +426,9 @@ public class InternetDialog extends SystemUIDialog implements setProgressBarVisible(true); List<ScanResult> wifiScanResults = mWifiManager.getScanResults(); if (wifiScanResults != null && wifiScanResults.size() > 0) { mContext.getMainThreadHandler().postDelayed(mHideProgressBarRunnable, 2000 /* delay millis */); mHandler.postDelayed(mHideProgressBarRunnable, PROGRESS_DELAY_MS); } else if (!mIsSearchingHidden) { mHandler.postDelayed(mHideSearchingRunnable, PROGRESS_DELAY_MS); } } Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +5 −5 Original line number Diff line number Diff line Loading @@ -269,17 +269,17 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback, return mContext.getText(SUBTITLE_TEXT_WIFI_IS_OFF); } final List<ScanResult> wifiList = mWifiManager.getScanResults(); if (wifiList != null && wifiList.size() != 0) { return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); } if (isProgressBarVisible) { // When the Wi-Fi scan result callback is received // Sub-Title: Searching for networks... return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS); } final List<ScanResult> wifiList = mWifiManager.getScanResults(); if (wifiList != null && wifiList.size() != 0) { return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); } // Sub-Title: // show non_carrier_network_unavailable // - while Wi-Fi on + no Wi-Fi item Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +4 −1 Original line number Diff line number Diff line Loading @@ -138,9 +138,12 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void getSubtitleText_withWifiOn_returnSearchWifi() { public void getSubtitleText_withNoWifiEntry_returnSearchWifi() { mInternetDialogController.setAirplaneModeEnabled(false); when(mWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); doReturn(0).when(wifiScanResults).size(); when(mWifiManager.getScanResults()).thenReturn(wifiScanResults); assertTrue(TextUtils.equals(mInternetDialogController.getSubtitleText(true), getResourcesString("wifi_empty_list_wifi_on"))); Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +61 −0 Original line number Diff line number Diff line Loading @@ -2,8 +2,12 @@ package com.android.systemui.qs.tiles.dialog; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -11,6 +15,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.wifi.ScanResult; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Handler; Loading @@ -34,10 +39,13 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @SmallTest @RunWith(AndroidTestingRunner.class) Loading Loading @@ -170,6 +178,59 @@ public class InternetDialogTest extends SysuiTestCase { verify(mInternetDialogController).launchNetworkSetting(); } @Test public void showProgressBar_wifiDisabled_hideProgressBar() { when(mMockWifiManager.isWifiEnabled()).thenReturn(false); mInternetDialog.showProgressBar(); assertThat(mInternetDialog.mIsProgressBarVisible).isFalse(); verify(mHandler, never()).postDelayed(any(Runnable.class), anyLong()); } @Test public void showProgressBar_wifiEnabledWithWifiEntry_showProgressBarThenHide() { when(mMockWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(1); when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); // Show progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class); verify(mHandler).postDelayed(runnableCaptor.capture(), eq(InternetDialog.PROGRESS_DELAY_MS)); runnableCaptor.getValue().run(); // Then hide progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isFalse(); } @Test public void showProgressBar_wifiEnabledWithoutWifiScanResults_showProgressBarThenHideSearch() { when(mMockWifiManager.isWifiEnabled()).thenReturn(true); List<ScanResult> wifiScanResults = mock(ArrayList.class); when(wifiScanResults.size()).thenReturn(0); when(mMockWifiManager.getScanResults()).thenReturn(wifiScanResults); mInternetDialog.showProgressBar(); // Show progress bar assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class); verify(mHandler).postDelayed(runnableCaptor.capture(), eq(InternetDialog.PROGRESS_DELAY_MS)); runnableCaptor.getValue().run(); // Then hide searching sub-title only assertThat(mInternetDialog.mIsProgressBarVisible).isTrue(); assertThat(mInternetDialog.mIsSearchingHidden).isTrue(); } private class MockInternetDialog extends InternetDialog { private String mMobileNetworkTitle; Loading