Merge "Avoid flicker in Internet dialog" into sc-v2-dev

This commit is contained in:
Weng Su
2021-11-08 14:50:26 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 8 deletions

View File

@@ -128,7 +128,9 @@ public class InternetDialog extends SystemUIDialog implements
private boolean mCanConfigMobileData;
// Wi-Fi entries
@VisibleForTesting
protected WifiEntry mConnectedWifiEntry;
@VisibleForTesting
protected int mWifiEntriesCount;
// Wi-Fi scanning progress bar
@@ -334,6 +336,9 @@ public class InternetDialog extends SystemUIDialog implements
mSeeAllLayout.setOnClickListener(v -> onClickSeeMoreButton());
mWiFiToggle.setOnCheckedChangeListener(
(buttonView, isChecked) -> {
if (isChecked) {
mWifiScanNotifyLayout.setVisibility(View.GONE);
}
buttonView.setChecked(isChecked);
mWifiManager.setWifiEnabled(isChecked);
});
@@ -576,12 +581,12 @@ public class InternetDialog extends SystemUIDialog implements
@WorkerThread
public void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,
@Nullable WifiEntry connectedEntry) {
mConnectedWifiEntry = connectedEntry;
mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
mHandler.post(() -> {
mAdapter.notifyDataSetChanged();
mConnectedWifiEntry = connectedEntry;
mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
updateDialog(false /* shouldUpdateMobileNetwork */);
mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
mAdapter.notifyDataSetChanged();
});
}

View File

@@ -99,7 +99,8 @@ public class InternetDialogTest extends SysuiTestCase {
mInternetDialogController, true, true, true, mock(UiEventLogger.class), mHandler,
mBgExecutor);
mInternetDialog.mAdapter = mInternetAdapter;
mInternetDialog.onAccessPointsChanged(mWifiEntries, mInternetWifiEntry);
mInternetDialog.mConnectedWifiEntry = mInternetWifiEntry;
mInternetDialog.mWifiEntriesCount = mWifiEntries.size();
mInternetDialog.show();
mDialogView = mInternetDialog.mDialogView;
@@ -209,7 +210,7 @@ public class InternetDialogTest extends SysuiTestCase {
@Test
public void updateDialog_wifiOnAndNoConnectedWifi_hideConnectedWifi() {
// The precondition WiFi ON is already in setUp()
mInternetDialog.onAccessPointsChanged(mWifiEntries, null /* connectedEntry*/);
mInternetDialog.mConnectedWifiEntry = null;
doReturn(false).when(mInternetDialogController).activeNetworkIsCellular();
mInternetDialog.updateDialog(false);
@@ -220,7 +221,7 @@ public class InternetDialogTest extends SysuiTestCase {
@Test
public void updateDialog_wifiOnAndNoWifiList_hideWifiListAndSeeAll() {
// The precondition WiFi ON is already in setUp()
mInternetDialog.onAccessPointsChanged(null /* wifiEntries */, mInternetWifiEntry);
mInternetDialog.mWifiEntriesCount = 0;
mInternetDialog.updateDialog(false);
@@ -366,7 +367,8 @@ public class InternetDialogTest extends SysuiTestCase {
public void showProgressBar_wifiEnabledWithoutWifiEntries_showProgressBarThenHideSearch() {
Mockito.reset(mHandler);
when(mWifiManager.isWifiEnabled()).thenReturn(true);
mInternetDialog.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry*/);
mInternetDialog.mConnectedWifiEntry = null;
mInternetDialog.mWifiEntriesCount = 0;
mInternetDialog.showProgressBar();