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

View File

@@ -98,4 +98,11 @@ public final class WifiSummaryUpdater extends SummaryUpdater {
com.android.settingslib.R.string.preference_summary_default_combination, com.android.settingslib.R.string.preference_summary_default_combination,
ssid, mWifiTracker.statusLabel); 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; 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.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@@ -57,6 +58,7 @@ import org.mockito.junit.MockitoRule;
public class InternetPreferenceControllerTest { public class InternetPreferenceControllerTest {
private static final String TEST_SUMMARY = "test summary"; private static final String TEST_SUMMARY = "test summary";
private static final String NOT_CONNECTED = "Not connected";
@Rule @Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule(); public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -117,13 +119,37 @@ public class InternetPreferenceControllerTest {
} }
@Test @Test
public void onSummaryChanged_shouldUpdatePreferenceSummary() { public void mustUseWiFiHelperSummary_internetWifi_updateSummary() {
mController.onInternetTypeChanged(INTERNET_WIFI); mController.onInternetTypeChanged(INTERNET_WIFI);
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
mController.onSummaryChanged(TEST_SUMMARY); mController.mustUseWiFiHelperSummary(true /* isWifiConnected */, TEST_SUMMARY);
assertThat(mPreference.getSummary()).isEqualTo(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 @Test