Merge "[Provider Model] Update Wi-Fi SSID in APM networks type" into sc-dev
diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java
index 25ec912..24fe284 100644
--- a/src/com/android/settings/network/InternetPreferenceController.java
+++ b/src/com/android/settings/network/InternetPreferenceController.java
@@ -103,6 +103,7 @@
if (mPreference == null) {
return;
}
+
final @IdRes int icon = sIconMap.get(mInternetType);
if (icon != 0) {
final Drawable drawable = mContext.getDrawable(icon);
@@ -112,10 +113,17 @@
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 @@
@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
diff --git a/src/com/android/settings/wifi/WifiSummaryUpdater.java b/src/com/android/settings/wifi/WifiSummaryUpdater.java
index c559e7d..79bab36 100644
--- a/src/com/android/settings/wifi/WifiSummaryUpdater.java
+++ b/src/com/android/settings/wifi/WifiSummaryUpdater.java
@@ -98,4 +98,11 @@
com.android.settingslib.R.string.preference_summary_default_combination,
ssid, mWifiTracker.statusLabel);
}
+
+ /**
+ * return true if Wi-Fi connected.
+ */
+ public boolean isWifiConnected() {
+ return mWifiTracker.connected;
+ }
}
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index be8bf27..ad07953 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -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 @@
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 @@
}
@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