summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinit Deshapnde <vinitd@google.com>2014-04-17 11:05:21 -0700
committerThe Android Automerger <android-build@google.com>2014-04-17 13:56:34 -0700
commitf02d7bf71a41a5258a6266d5fa3b25b55f803aed (patch)
treea0e5f03e37d1fc9d6f3469a4ab9446039092c724
parent9d6b121a4ededf003822bdfe7b12d7812a13d0ca (diff)
downloadbase-f02d7bf71a41a5258a6266d5fa3b25b55f803aed.tar.gz
Don't reset country code once it is persisted
This change simply ignores resetting of country code by cellular networks to avoid disconnecting existing wifi connections. It also defers setting newly found country code until after existing Wifi connection is torn down. Also removes some dead code related to resetting of country codes. Bug: 13894807 Change-Id: Ie2fcfdd4b3be8ba94542772c132fb1acb6a2c683
-rw-r--r--core/res/res/values/config.xml4
-rw-r--r--core/res/res/values/symbols.xml1
-rw-r--r--wifi/java/android/net/wifi/WifiStateMachine.java19
3 files changed, 10 insertions, 14 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 98ed72dc690e..6efb4a4a135d 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -352,10 +352,6 @@
<!-- Wifi driver supports batched scan -->
<bool translatable="false" name="config_wifi_batched_scan_supported">false</bool>
- <!-- Wifi driver's fallback country code; WS is ISO-Alpha2 code for Samoa which
- has restrictions on can be scanned; which may satisfy quite a few regulatory issues. -->
- <string translatable="false" name="config_wifi_unknown_country_code">WS</string>
-
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">false</bool>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 120027629a64..417135584de1 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -478,7 +478,6 @@
<java-symbol type="string" name="config_ntpServer" />
<java-symbol type="string" name="config_tether_apndata" />
<java-symbol type="string" name="config_useragentprofile_url" />
- <java-symbol type="string" name="config_wifi_unknown_country_code" />
<java-symbol type="string" name="config_wifi_p2p_device_type" />
<java-symbol type="string" name="contentServiceSync" />
<java-symbol type="string" name="contentServiceSyncNotificationTitle" />
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index d6b23ae692a9..9ea98b06ddcf 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -233,8 +233,6 @@ public class WifiStateMachine extends StateMachine {
private DhcpStateMachine mDhcpStateMachine;
private boolean mDhcpActive = false;
- // Delay in switching to null country code (non-null has no delay)
- private final int COUNTRY_CODE_DELAY_MS = 15000;
private final AtomicInteger mCountryCodeSequence = new AtomicInteger();
private class InterfaceObserver extends BaseNetworkObserver {
@@ -1538,15 +1536,13 @@ public class WifiStateMachine extends StateMachine {
* @param persist {@code true} if the setting should be remembered.
*/
public void setCountryCode(String countryCode, boolean persist) {
- // If it's a country code, apply immediately,
- // If it's empty, delay it in case it's a momentary dropout
+ // If it's a good country code, apply after the current
+ // wifi connection is terminated; ignore resetting of code
+ // for now (it is unclear what the chipset should do when
+ // country code is reset)
int countryCodeSequence = mCountryCodeSequence.incrementAndGet();
if (TextUtils.isEmpty(countryCode)) {
- String defaultCountryCode = mContext.getResources().getString(
- R.string.config_wifi_unknown_country_code);
-
- sendMessageDelayed(CMD_SET_COUNTRY_CODE, countryCodeSequence, persist ? 1 : 0,
- defaultCountryCode, COUNTRY_CODE_DELAY_MS);
+ log("Ignoring resetting of country code");
} else {
sendMessage(CMD_SET_COUNTRY_CODE, countryCodeSequence, persist ? 1 : 0, countryCode);
}
@@ -1661,6 +1657,8 @@ public class WifiStateMachine extends StateMachine {
pw.println("mSuspendOptNeedsDisabled " + mSuspendOptNeedsDisabled);
pw.println("Supplicant status " + mWifiNative.status());
pw.println("mEnableBackgroundScan " + mEnableBackgroundScan);
+ pw.println("mLastSetCountryCode " + mLastSetCountryCode);
+ pw.println("mPersistedCountryCode " + mPersistedCountryCode);
pw.println();
mWifiConfigStore.dump(fd, pw, args);
}
@@ -3679,6 +3677,9 @@ public class WifiStateMachine extends StateMachine {
deferMessage(message);
}
break;
+ case CMD_SET_COUNTRY_CODE:
+ deferMessage(message);
+ break;
case CMD_START_SCAN:
/* Do not attempt to connect when we are already connected */
noteScanStart(message.arg1, (WorkSource) message.obj);