Merge "[Provider Model] Adjust the design of "See all" (QS Internet Dialog)" into sc-v2-dev

This commit is contained in:
TreeHugger Robot
2021-12-08 13:34:46 +00:00
committed by Android (Google) Code Review
4 changed files with 62 additions and 30 deletions

View File

@@ -137,6 +137,8 @@ public class InternetDialog extends SystemUIDialog implements
protected WifiEntry mConnectedWifiEntry; protected WifiEntry mConnectedWifiEntry;
@VisibleForTesting @VisibleForTesting
protected int mWifiEntriesCount; protected int mWifiEntriesCount;
@VisibleForTesting
protected boolean mHasMoreEntry;
// Wi-Fi scanning progress bar // Wi-Fi scanning progress bar
protected boolean mIsProgressBarVisible; protected boolean mIsProgressBarVisible;
@@ -464,8 +466,7 @@ public class InternetDialog extends SystemUIDialog implements
} }
mWifiRecyclerView.setMinimumHeight(mWifiNetworkHeight * getWifiListMaxCount()); mWifiRecyclerView.setMinimumHeight(mWifiNetworkHeight * getWifiListMaxCount());
mWifiRecyclerView.setVisibility(View.VISIBLE); mWifiRecyclerView.setVisibility(View.VISIBLE);
final boolean showSeeAll = mConnectedWifiEntry != null || mWifiEntriesCount > 0; mSeeAllLayout.setVisibility(mHasMoreEntry ? View.VISIBLE : View.INVISIBLE);
mSeeAllLayout.setVisibility(showSeeAll ? View.VISIBLE : View.INVISIBLE);
} }
@VisibleForTesting @VisibleForTesting
@@ -655,13 +656,14 @@ public class InternetDialog extends SystemUIDialog implements
@Override @Override
@WorkerThread @WorkerThread
public void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries, 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. // Should update the carrier network layout when it is connected under airplane mode ON.
boolean shouldUpdateCarrierNetwork = mMobileNetworkLayout.getVisibility() == View.VISIBLE boolean shouldUpdateCarrierNetwork = mMobileNetworkLayout.getVisibility() == View.VISIBLE
&& mInternetDialogController.isAirplaneModeEnabled(); && mInternetDialogController.isAirplaneModeEnabled();
mHandler.post(() -> { mHandler.post(() -> {
mConnectedWifiEntry = connectedEntry; mConnectedWifiEntry = connectedEntry;
mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size(); mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
mHasMoreEntry = hasMoreEntry;
updateDialog(shouldUpdateCarrierNetwork /* shouldUpdateMobileNetwork */); updateDialog(shouldUpdateCarrierNetwork /* shouldUpdateMobileNetwork */);
mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount); mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
mAdapter.notifyDataSetChanged(); mAdapter.notifyDataSetChanged();

View File

@@ -883,11 +883,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
mConnectedEntry = null; mConnectedEntry = null;
mWifiEntriesCount = 0; mWifiEntriesCount = 0;
if (mCallback != null) { if (mCallback != null) {
mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */); mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */,
false /* hasMoreEntry */);
} }
return; return;
} }
boolean hasMoreEntry = false;
int count = MAX_WIFI_ENTRY_COUNT; int count = MAX_WIFI_ENTRY_COUNT;
if (mHasEthernet) { if (mHasEthernet) {
count -= 1; count -= 1;
@@ -895,8 +897,11 @@ public class InternetDialogController implements AccessPointController.AccessPoi
if (hasActiveSubId() || isCarrierNetworkActive()) { if (hasActiveSubId() || isCarrierNetworkActive()) {
count -= 1; count -= 1;
} }
if (count > accessPoints.size()) { final int wifiTotalCount = accessPoints.size();
count = accessPoints.size(); if (count > wifiTotalCount) {
count = wifiTotalCount;
} else if (count < wifiTotalCount) {
hasMoreEntry = true;
} }
WifiEntry connectedEntry = null; WifiEntry connectedEntry = null;
@@ -913,7 +918,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
mWifiEntriesCount = wifiEntries.size(); mWifiEntriesCount = wifiEntries.size();
if (mCallback != null) { if (mCallback != null) {
mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry); mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry, hasMoreEntry);
} }
} }
@@ -1064,7 +1069,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
void dismissDialog(); void dismissDialog();
void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries, void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,
@Nullable WifiEntry connectedEntry); @Nullable WifiEntry connectedEntry, boolean hasMoreEntry);
} }
void makeOverlayToast(int stringId) { void makeOverlayToast(int stringId) {

View File

@@ -410,7 +410,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */); mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any()); verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any(), anyBoolean());
} }
@Test @Test
@@ -419,8 +419,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */); mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(null /* wifiEntries */,
.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */); null /* connectedEntry */, false /* hasMoreEntry */);
} }
@Test @Test
@@ -433,7 +433,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(mAccessPoints); mInternetDialogController.onAccessPointsChanged(mAccessPoints);
mWifiEntries.clear(); mWifiEntries.clear();
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
false /* hasMoreEntry */);
} }
@Test @Test
@@ -447,8 +448,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.clear(); mWifiEntries.clear();
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); null /* connectedEntry */, false /* hasMoreEntry */);
} }
@Test @Test
@@ -463,7 +464,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.clear(); mWifiEntries.clear();
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
false /* hasMoreEntry */);
} }
@Test @Test
@@ -480,7 +482,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.clear(); mWifiEntries.clear();
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
mWifiEntries.add(mWifiEntry2); mWifiEntries.add(mWifiEntry2);
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
false /* hasMoreEntry */);
} }
@Test @Test
@@ -499,7 +502,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
mWifiEntries.add(mWifiEntry2); mWifiEntries.add(mWifiEntry2);
mWifiEntries.add(mWifiEntry3); 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. // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
reset(mInternetDialogCallback); reset(mInternetDialogCallback);
@@ -508,7 +512,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(mAccessPoints); mInternetDialogController.onAccessPointsChanged(mAccessPoints);
mWifiEntries.remove(mWifiEntry3); mWifiEntries.remove(mWifiEntry3);
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
true /* hasMoreEntry */);
} }
@Test @Test
@@ -528,7 +533,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
mWifiEntries.add(mWifiEntry2); mWifiEntries.add(mWifiEntry2);
mWifiEntries.add(mWifiEntry3); 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. // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
reset(mInternetDialogCallback); reset(mInternetDialogCallback);
@@ -537,7 +543,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(mAccessPoints); mInternetDialogController.onAccessPointsChanged(mAccessPoints);
mWifiEntries.remove(mWifiEntry3); mWifiEntries.remove(mWifiEntry3);
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry); verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
true /* hasMoreEntry */);
} }
@Test @Test
@@ -587,8 +594,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.add(mWifiEntry2); mWifiEntries.add(mWifiEntry2);
mWifiEntries.add(mWifiEntry3); mWifiEntries.add(mWifiEntry3);
mWifiEntries.add(mWifiEntry4); mWifiEntries.add(mWifiEntry4);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); null /* connectedEntry */, false /* hasMoreEntry */);
// If the Ethernet exists, then Wi-Fi entries will cut last one. // If the Ethernet exists, then Wi-Fi entries will cut last one.
reset(mInternetDialogCallback); reset(mInternetDialogCallback);
@@ -597,8 +604,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(mAccessPoints); mInternetDialogController.onAccessPointsChanged(mAccessPoints);
mWifiEntries.remove(mWifiEntry4); mWifiEntries.remove(mWifiEntry4);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); null /* connectedEntry */, true /* hasMoreEntry */);
// Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one. // Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
reset(mInternetDialogCallback); reset(mInternetDialogCallback);
@@ -607,8 +614,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mInternetDialogController.onAccessPointsChanged(mAccessPoints); mInternetDialogController.onAccessPointsChanged(mAccessPoints);
mWifiEntries.remove(mWifiEntry3); mWifiEntries.remove(mWifiEntry3);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); null /* connectedEntry */, true /* hasMoreEntry */);
} }
@Test @Test
@@ -624,8 +631,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
mWifiEntries.clear(); mWifiEntries.clear();
mWifiEntries.add(mWifiEntry1); mWifiEntries.add(mWifiEntry1);
verify(mInternetDialogCallback) verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */); null /* connectedEntry */, false /* hasMoreEntry */);
} }
@Test @Test

View File

@@ -315,6 +315,20 @@ public class InternetDialogTest extends SysuiTestCase {
assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE); 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 @Test
public void updateDialog_wifiOnAndHasConnectedWifi_showAllWifiAndSeeAllArea() { public void updateDialog_wifiOnAndHasConnectedWifi_showAllWifiAndSeeAllArea() {
// The preconditions WiFi ON and WiFi entries are already in setUp() // 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); assertThat(mConnectedWifi.getVisibility()).isEqualTo(View.VISIBLE);
// Show a blank block to fix the dialog height even if there is no WiFi list // Show a blank block to fix the dialog height even if there is no WiFi list
assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mWifiList.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(mSeeAll.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
} }
@Test @Test
public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() { public void updateDialog_wifiOnAndHasMaxWifiList_showWifiListAndSeeAll() {
// The preconditions WiFi ON and WiFi entries are already in setUp() // The preconditions WiFi ON and WiFi entries are already in setUp()
mInternetDialog.mConnectedWifiEntry = null; mInternetDialog.mConnectedWifiEntry = null;
mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT;
mInternetDialog.mHasMoreEntry = true;
mInternetDialog.updateDialog(false); mInternetDialog.updateDialog(false);
@@ -343,6 +359,8 @@ public class InternetDialogTest extends SysuiTestCase {
@Test @Test
public void updateDialog_wifiOnAndHasBothWifiEntry_showBothWifiEntryAndSeeAll() { public void updateDialog_wifiOnAndHasBothWifiEntry_showBothWifiEntryAndSeeAll() {
// The preconditions WiFi ON and WiFi entries are already in setUp() // The preconditions WiFi ON and WiFi entries are already in setUp()
mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT - 1;
mInternetDialog.mHasMoreEntry = true;
mInternetDialog.updateDialog(false); mInternetDialog.updateDialog(false);