diff --git a/res/values/strings.xml b/res/values/strings.xml
index d06e8af2556..ed9b5059177 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2508,9 +2508,11 @@
When no devices are connected
- Maximize compatibility
-
- This may reduce speed for devices connected to this hotspot and use more power
+ Extend compatibility
+
+ Helps other devices find this hotspot. Reduces hotspot connection speed.
+
+ Helps other devices find this hotspot. Increases battery usage.
Turning hotspot on\u2026
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index 8648cff0f43..21f347bb021 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -44,6 +44,5 @@
+ android:title="@string/wifi_hotspot_maximize_compatibility"/>
diff --git a/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
index 41532d00e70..67d1f49a5f9 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceController.java
@@ -24,6 +24,8 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
+import com.android.settings.R;
+
/**
* This controller helps to manage the state of maximize compatibility switch preference.
*/
@@ -53,6 +55,9 @@ public class WifiTetherMaximizeCompatibilityPreferenceController extends
}
mPreference.setEnabled(is5GhzBandSupported());
((SwitchPreference) mPreference).setChecked(mIsChecked);
+ mPreference.setSummary(mWifiManager.isBridgedApConcurrencySupported()
+ ? R.string.wifi_hotspot_maximize_compatibility_dual_ap_summary
+ : R.string.wifi_hotspot_maximize_compatibility_single_ap_summary);
}
@Override
diff --git a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceControllerTest.java
index 072978040b9..0ee9e70fe71 100644
--- a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherMaximizeCompatibilityPreferenceControllerTest.java
@@ -34,6 +34,8 @@ import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import com.android.settings.testutils.ResourcesUtils;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -52,29 +54,30 @@ public class WifiTetherMaximizeCompatibilityPreferenceControllerTest {
@Mock
private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
+ private Context mContext;
private WifiTetherMaximizeCompatibilityPreferenceController mController;
private SwitchPreference mPreference;
private SoftApConfiguration mConfig;
@Before
public void setUp() {
- final Context context = spy(ApplicationProvider.getApplicationContext());
+ mContext = spy(ApplicationProvider.getApplicationContext());
mConfig = new SoftApConfiguration.Builder()
.setSsid("test_Ssid")
.setPassphrase(null, SoftApConfiguration.SECURITY_TYPE_OPEN)
.setBridgedModeOpportunisticShutdownEnabled(true)
.build();
- doReturn(mWifiManager).when(context).getSystemService(Context.WIFI_SERVICE);
+ doReturn(mWifiManager).when(mContext).getSystemService(Context.WIFI_SERVICE);
doReturn(true).when(mWifiManager).isBridgedApConcurrencySupported();
doReturn(mConfig).when(mWifiManager).getSoftApConfiguration();
- mController = new WifiTetherMaximizeCompatibilityPreferenceController(context, mListener);
+ mController = new WifiTetherMaximizeCompatibilityPreferenceController(mContext, mListener);
if (Looper.myLooper() == null) {
Looper.prepare();
}
- final PreferenceManager preferenceManager = new PreferenceManager(context);
- final PreferenceScreen screen = preferenceManager.createPreferenceScreen(context);
- mPreference = new SwitchPreference(context);
+ final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+ final PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext);
+ mPreference = new SwitchPreference(mContext);
mPreference.setKey(WifiTetherMaximizeCompatibilityPreferenceController.PREF_KEY);
screen.addPreference(mPreference);
mController.displayPreference(screen);
@@ -104,6 +107,26 @@ public class WifiTetherMaximizeCompatibilityPreferenceControllerTest {
assertThat(mPreference.isEnabled()).isEqualTo(false);
}
+ @Test
+ public void updateDisplay_notSupportedBridgedApConcurrency_setSingleApSummary() {
+ doReturn(false).when(mWifiManager).isBridgedApConcurrencySupported();
+
+ mController.updateDisplay();
+
+ assertThat(mPreference.getSummary()).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+ "wifi_hotspot_maximize_compatibility_single_ap_summary"));
+ }
+
+ @Test
+ public void updateDisplay_supportedBridgedApConcurrency_setDualApSummary() {
+ doReturn(true).when(mWifiManager).isBridgedApConcurrencySupported();
+
+ mController.updateDisplay();
+
+ assertThat(mPreference.getSummary()).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+ "wifi_hotspot_maximize_compatibility_dual_ap_summary"));
+ }
+
@Test
public void updateDisplay_supported5GHzBandAndCountryCodeIsNotNull_setPreferenceEnabled() {
doReturn(true).when(mWifiManager).is5GHzBandSupported();