diff --git a/res/values/strings.xml b/res/values/strings.xml
index 57986ac055d..c0842b4116d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3176,10 +3176,18 @@
Wireless display certification
Enable WiFi Verbose Logging
+
+ Aggressive Wifi to Cellular handover
+
+ Always allow Wifi Roam Scans
Show options for wireless display certification
-
+
Increase Wifi logging level, show per SSID RSSI in WiFi Picker
+
+ When enabled, Wifi will be more aggressive in handing over the data connection to Cellular, when Wifi signal is low
+
+ Allow/Disallow Wifi Roam Scans based on the amount of data traffic present at the interface
Logger buffer sizes
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 98397bf90b4..f30cd077f49 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -111,6 +111,16 @@
android:title="@string/wifi_verbose_logging" />
android:summary="@string/wifi_verbose_logging_summary"/>
+
+ android:summary="@string/wifi_aggressive_handover_summary"/>
+
+
+ android:summary="@string/wifi_allow_scan_with_traffic_summary"/>
+
0;
+ updateCheckBox(mWifiAggressiveHandover, enabled);
+ }
+
+ private void writeWifiAggressiveHandoverOptions() {
+ mWifiManager.enableAggressiveHandover(mWifiAggressiveHandover.isChecked() ? 1 : 0);
+ }
+
+ private void updateWifiAllowScansWithTrafficOptions() {
+ boolean enabled = mWifiManager.getAllowScansWithTraffic() > 0;
+ updateCheckBox(mWifiAllowScansWithTraffic, enabled);
+ }
+
+ private void writeWifiAllowScansWithTrafficOptions() {
+ mWifiManager.setAllowScansWithTraffic(mWifiAllowScansWithTraffic.isChecked() ? 1 : 0);
+ }
+
private void updateLogdSizeValues() {
if (mLogdSize != null) {
String currentValue = SystemProperties.get(SELECT_LOGD_SIZE_PROPERTY);
@@ -1394,6 +1420,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
writeWifiDisplayCertificationOptions();
} else if (preference == mWifiVerboseLogging) {
writeWifiVerboseLoggingOptions();
+ } else if (preference == mWifiAggressiveHandover) {
+ writeWifiAggressiveHandoverOptions();
+ } else if (preference == mWifiAllowScansWithTraffic) {
+ writeWifiAllowScansWithTrafficOptions();
} else if (preference == mUseNuplayer) {
writeUseNuplayerOptions();
} else {