OSDN Git Service

When wifi wants ASCII lowercasing, it needs to ask for it.
authorElliott Hughes <enh@google.com>
Fri, 2 Aug 2013 16:07:54 +0000 (09:07 -0700)
committerElliott Hughes <enh@google.com>
Fri, 2 Aug 2013 16:07:54 +0000 (09:07 -0700)
http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Ibf25d0bbc76015cf8353ec01ab2b743cbc2bde67

wifi/java/android/net/wifi/WifiInfo.java
wifi/java/android/net/wifi/WifiStateMachine.java
wifi/java/android/net/wifi/p2p/nsd/WifiP2pDnsSdServiceInfo.java
wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceRequest.java

index 502d1ab..5d130c6 100644 (file)
@@ -26,6 +26,7 @@ import java.net.InetAddress;
 import java.net.Inet4Address;
 import java.net.UnknownHostException;
 import java.util.EnumMap;
+import java.util.Locale;
 
 /**
  * Describes the state of any Wifi connection that is active or
@@ -275,7 +276,7 @@ public class WifiInfo implements Parcelable {
             return SupplicantState.FOUR_WAY_HANDSHAKE;
         else {
             try {
-                return SupplicantState.valueOf(stateName.toUpperCase());
+                return SupplicantState.valueOf(stateName.toUpperCase(Locale.ROOT));
             } catch (IllegalArgumentException e) {
                 return SupplicantState.INVALID;
             }
index 520ac20..ebc94e0 100644 (file)
@@ -82,6 +82,7 @@ import java.io.PrintWriter;
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.Iterator;
@@ -2496,7 +2497,7 @@ public class WifiStateMachine extends StateMachine {
                 case CMD_SET_COUNTRY_CODE:
                     String country = (String) message.obj;
                     if (DBG) log("set country code " + country);
-                    if (!mWifiNative.setCountryCode(country.toUpperCase())) {
+                    if (!mWifiNative.setCountryCode(country.toUpperCase(Locale.ROOT))) {
                         loge("Failed to set country code " + country);
                     }
                     break;
index bc1d3c6..9879d4e 100644 (file)
@@ -22,6 +22,7 @@ import android.text.TextUtils;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -183,7 +184,7 @@ public class WifiP2pDnsSdServiceInfo extends WifiP2pServiceInfo {
          * |   Type (2)           | Version (1) |
          */
         if (dnsType == WifiP2pDnsSdServiceInfo.DNS_TYPE_TXT) {
-            dnsName = dnsName.toLowerCase();
+            dnsName = dnsName.toLowerCase(Locale.ROOT); // TODO: is this right?
         }
         sb.append(compressDnsName(dnsName));
         sb.append(String.format("%04x", dnsType));
index c7f0e5f..eabd8e5 100644 (file)
@@ -20,6 +20,8 @@ import android.net.wifi.p2p.WifiP2pManager;
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import java.util.Locale;
+
 /**
  * A class for creating a service discovery request for use with
  * {@link WifiP2pManager#addServiceRequest} and {@link WifiP2pManager#removeServiceRequest}
@@ -167,7 +169,7 @@ public class WifiP2pServiceRequest implements Parcelable {
         }
 
         // check whether query is hex string.
-        query = query.toLowerCase();
+        query = query.toLowerCase(Locale.ROOT);
         char[] chars = query.toCharArray();
         for (char c: chars) {
             if (!((c >= '0' && c <= '9') ||