[Provider Model] Adjust the design of "See all" (QS Internet Dialog)
- Show "See all" until there are results && there are more results than
can fit into the panel.
- See b/206061768#comment22 for a screenshot.
Bug: 206061768
Test: manual test
atest -c InternetDialogControllerTest \
InternetDialogTest
Change-Id: If58364d865ea4497ea270fddbe8ba409f6069391
This commit is contained in:
@@ -137,6 +137,8 @@ public class InternetDialog extends SystemUIDialog implements
|
||||
protected WifiEntry mConnectedWifiEntry;
|
||||
@VisibleForTesting
|
||||
protected int mWifiEntriesCount;
|
||||
@VisibleForTesting
|
||||
protected boolean mHasMoreEntry;
|
||||
|
||||
// Wi-Fi scanning progress bar
|
||||
protected boolean mIsProgressBarVisible;
|
||||
@@ -464,8 +466,7 @@ public class InternetDialog extends SystemUIDialog implements
|
||||
}
|
||||
mWifiRecyclerView.setMinimumHeight(mWifiNetworkHeight * getWifiListMaxCount());
|
||||
mWifiRecyclerView.setVisibility(View.VISIBLE);
|
||||
final boolean showSeeAll = mConnectedWifiEntry != null || mWifiEntriesCount > 0;
|
||||
mSeeAllLayout.setVisibility(showSeeAll ? View.VISIBLE : View.INVISIBLE);
|
||||
mSeeAllLayout.setVisibility(mHasMoreEntry ? View.VISIBLE : View.INVISIBLE);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -651,13 +652,14 @@ public class InternetDialog extends SystemUIDialog implements
|
||||
@Override
|
||||
@WorkerThread
|
||||
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.
|
||||
boolean shouldUpdateCarrierNetwork = mMobileNetworkLayout.getVisibility() == View.VISIBLE
|
||||
&& mInternetDialogController.isAirplaneModeEnabled();
|
||||
mHandler.post(() -> {
|
||||
mConnectedWifiEntry = connectedEntry;
|
||||
mWifiEntriesCount = wifiEntries == null ? 0 : wifiEntries.size();
|
||||
mHasMoreEntry = hasMoreEntry;
|
||||
updateDialog(shouldUpdateCarrierNetwork /* shouldUpdateMobileNetwork */);
|
||||
mAdapter.setWifiEntries(wifiEntries, mWifiEntriesCount);
|
||||
mAdapter.notifyDataSetChanged();
|
||||
|
||||
@@ -879,11 +879,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
||||
mConnectedEntry = null;
|
||||
mWifiEntriesCount = 0;
|
||||
if (mCallback != null) {
|
||||
mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */);
|
||||
mCallback.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */,
|
||||
false /* hasMoreEntry */);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
boolean hasMoreEntry = false;
|
||||
int count = MAX_WIFI_ENTRY_COUNT;
|
||||
if (mHasEthernet) {
|
||||
count -= 1;
|
||||
@@ -891,8 +893,11 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
||||
if (hasActiveSubId()) {
|
||||
count -= 1;
|
||||
}
|
||||
if (count > accessPoints.size()) {
|
||||
count = accessPoints.size();
|
||||
final int wifiTotalCount = accessPoints.size();
|
||||
if (count > wifiTotalCount) {
|
||||
count = wifiTotalCount;
|
||||
} else if (count < wifiTotalCount) {
|
||||
hasMoreEntry = true;
|
||||
}
|
||||
|
||||
WifiEntry connectedEntry = null;
|
||||
@@ -909,7 +914,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
||||
mWifiEntriesCount = wifiEntries.size();
|
||||
|
||||
if (mCallback != null) {
|
||||
mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry);
|
||||
mCallback.onAccessPointsChanged(wifiEntries, mConnectedEntry, hasMoreEntry);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1060,7 +1065,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
|
||||
void dismissDialog();
|
||||
|
||||
void onAccessPointsChanged(@Nullable List<WifiEntry> wifiEntries,
|
||||
@Nullable WifiEntry connectedEntry);
|
||||
@Nullable WifiEntry connectedEntry, boolean hasMoreEntry);
|
||||
}
|
||||
|
||||
void makeOverlayToast(int stringId) {
|
||||
|
||||
@@ -400,7 +400,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
|
||||
|
||||
verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any());
|
||||
verify(mInternetDialogCallback, never()).onAccessPointsChanged(any(), any(), anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -409,8 +409,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
|
||||
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(null /* wifiEntries */, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(null /* wifiEntries */,
|
||||
null /* connectedEntry */, false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -423,7 +423,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.clear();
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
|
||||
false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -437,8 +438,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
mWifiEntries.clear();
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
|
||||
null /* connectedEntry */, false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -453,7 +454,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
mWifiEntries.clear();
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
|
||||
false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -470,7 +472,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mWifiEntries.clear();
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
mWifiEntries.add(mWifiEntry2);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
|
||||
false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -489,7 +492,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
mWifiEntries.add(mWifiEntry2);
|
||||
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.
|
||||
reset(mInternetDialogCallback);
|
||||
@@ -498,7 +502,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.remove(mWifiEntry3);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
|
||||
true /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -518,7 +523,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
mWifiEntries.add(mWifiEntry2);
|
||||
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.
|
||||
reset(mInternetDialogCallback);
|
||||
@@ -527,7 +533,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.remove(mWifiEntry3);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries, mConnectedEntry,
|
||||
true /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -547,8 +554,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mWifiEntries.add(mWifiEntry2);
|
||||
mWifiEntries.add(mWifiEntry3);
|
||||
mWifiEntries.add(mWifiEntry4);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
|
||||
null /* connectedEntry */, false /* hasMoreEntry */);
|
||||
|
||||
// If the Ethernet exists, then Wi-Fi entries will cut last one.
|
||||
reset(mInternetDialogCallback);
|
||||
@@ -557,8 +564,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.remove(mWifiEntry4);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
|
||||
null /* connectedEntry */, true /* hasMoreEntry */);
|
||||
|
||||
// Turn off airplane mode to has carrier network, then Wi-Fi entries will cut last one.
|
||||
reset(mInternetDialogCallback);
|
||||
@@ -567,8 +574,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
mInternetDialogController.onAccessPointsChanged(mAccessPoints);
|
||||
|
||||
mWifiEntries.remove(mWifiEntry3);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
|
||||
null /* connectedEntry */, true /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -584,8 +591,8 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
|
||||
mWifiEntries.clear();
|
||||
mWifiEntries.add(mWifiEntry1);
|
||||
verify(mInternetDialogCallback)
|
||||
.onAccessPointsChanged(mWifiEntries, null /* connectedEntry */);
|
||||
verify(mInternetDialogCallback).onAccessPointsChanged(mWifiEntries,
|
||||
null /* connectedEntry */, false /* hasMoreEntry */);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -315,6 +315,20 @@ public class InternetDialogTest extends SysuiTestCase {
|
||||
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
|
||||
public void updateDialog_wifiOnAndHasConnectedWifi_showAllWifiAndSeeAllArea() {
|
||||
// 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);
|
||||
// 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.VISIBLE);
|
||||
assertThat(mSeeAll.getVisibility()).isEqualTo(View.INVISIBLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateDialog_wifiOnAndHasWifiList_showWifiListAndSeeAll() {
|
||||
public void updateDialog_wifiOnAndHasMaxWifiList_showWifiListAndSeeAll() {
|
||||
// The preconditions WiFi ON and WiFi entries are already in setUp()
|
||||
mInternetDialog.mConnectedWifiEntry = null;
|
||||
mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT;
|
||||
mInternetDialog.mHasMoreEntry = true;
|
||||
|
||||
mInternetDialog.updateDialog(false);
|
||||
|
||||
@@ -343,6 +359,8 @@ public class InternetDialogTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void updateDialog_wifiOnAndHasBothWifiEntry_showBothWifiEntryAndSeeAll() {
|
||||
// The preconditions WiFi ON and WiFi entries are already in setUp()
|
||||
mInternetDialog.mWifiEntriesCount = MAX_WIFI_ENTRY_COUNT - 1;
|
||||
mInternetDialog.mHasMoreEntry = true;
|
||||
|
||||
mInternetDialog.updateDialog(false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user