[Provider Model] Update Wi-Fi SSID in APM networks type

- Check Wi-Fi connected then update the SSID to summary

- Screenshot
  https://screenshot.googleplex.com/BWHAAqb7q8XaK9T

Bug: 178915286
Test: manual test
- atest InternetPreferenceControllerTest

Change-Id: I9efc2f62b7b241a4a63d0514158c8e76f0d6acc2
This commit is contained in:
Weng Su
2021-02-05 15:48:45 +08:00
parent c01232b16b
commit babcd4b5c0
3 changed files with 52 additions and 3 deletions

View File

@@ -103,6 +103,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i
if (mPreference == null) {
return;
}
final @IdRes int icon = sIconMap.get(mInternetType);
if (icon != 0) {
final Drawable drawable = mContext.getDrawable(icon);
@@ -112,10 +113,17 @@ public class InternetPreferenceController extends AbstractPreferenceController i
mPreference.setIcon(drawable);
}
}
if (mustUseWiFiHelperSummary(mSummaryHelper.isWifiConnected(),
mSummaryHelper.getSummary())) {
return;
}
if (mInternetType == INTERNET_CELLULAR) {
updateCellularSummary();
return;
}
final @IdRes int summary = sSummaryMap.get(mInternetType);
if (summary != 0) {
mPreference.setSummary(summary);
@@ -161,9 +169,17 @@ public class InternetPreferenceController extends AbstractPreferenceController i
@Override
public void onSummaryChanged(String summary) {
if (mPreference != null && mInternetType == INTERNET_WIFI) {
mustUseWiFiHelperSummary(mSummaryHelper.isWifiConnected(), summary);
}
@VisibleForTesting
boolean mustUseWiFiHelperSummary(boolean isWifiConnected, String summary) {
final boolean needUpdate = (mInternetType == INTERNET_WIFI)
|| (mInternetType == INTERNET_APM_NETWORKS && isWifiConnected);
if (needUpdate && mPreference != null) {
mPreference.setSummary(summary);
}
return needUpdate;
}
@VisibleForTesting

View File

@@ -98,4 +98,11 @@ public final class WifiSummaryUpdater extends SummaryUpdater {
com.android.settingslib.R.string.preference_summary_default_combination,
ssid, mWifiTracker.statusLabel);
}
/**
* return true if Wi-Fi connected.
*/
public boolean isWifiConnected() {
return mWifiTracker.connected;
}
}

View File

@@ -16,6 +16,7 @@
package com.android.settings.network;
import static com.android.settings.network.InternetUpdater.INTERNET_APM_NETWORKS;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat;
@@ -57,6 +58,7 @@ import org.mockito.junit.MockitoRule;
public class InternetPreferenceControllerTest {
private static final String TEST_SUMMARY = "test summary";
private static final String NOT_CONNECTED = "Not connected";
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -117,13 +119,37 @@ public class InternetPreferenceControllerTest {
}
@Test
public void onSummaryChanged_shouldUpdatePreferenceSummary() {
public void mustUseWiFiHelperSummary_internetWifi_updateSummary() {
mController.onInternetTypeChanged(INTERNET_WIFI);
mController.displayPreference(mScreen);
mController.onSummaryChanged(TEST_SUMMARY);
mController.mustUseWiFiHelperSummary(true /* isWifiConnected */, TEST_SUMMARY);
assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY);
mController.mustUseWiFiHelperSummary(false /* isWifiConnected */, NOT_CONNECTED);
assertThat(mPreference.getSummary()).isEqualTo(NOT_CONNECTED);
}
@Test
public void mustUseWiFiHelperSummary_internetApmNetworksWifiConnected_updateSummary() {
mController.onInternetTypeChanged(INTERNET_APM_NETWORKS);
mController.displayPreference(mScreen);
mController.mustUseWiFiHelperSummary(true /* isWifiConnected */, TEST_SUMMARY);
assertThat(mPreference.getSummary()).isEqualTo(TEST_SUMMARY);
}
@Test
public void mustUseWiFiHelperSummary_internetApmNetworksWifiDisconnected_notUpdateSummary() {
mController.onInternetTypeChanged(INTERNET_APM_NETWORKS);
mController.displayPreference(mScreen);
mController.mustUseWiFiHelperSummary(false /* isWifiConnected */, NOT_CONNECTED);
assertThat(mPreference.getSummary()).isNotEqualTo(NOT_CONNECTED);
}
@Test