Merge "Fix handling of hidden access points" into jb-mr1-dev

This commit is contained in:
Irfan Sheriff
2012-10-09 11:11:29 -07:00
committed by Android (Google) Code Review

View File

@ -156,7 +156,11 @@ public class WifiSsid implements Parcelable {
@Override @Override
public String toString() { public String toString() {
if (octets.size() <= 0) return ""; byte[] ssidBytes = octets.toByteArray();
// Supplicant returns \x00\x00\x00\x00\x00\x00\x00\x00 hex string
// for a hidden access point. Make sure we maintain the previous
// behavior of returning empty string for this case.
if (octets.size() <= 0 || isArrayAllZeroes(ssidBytes)) return "";
// TODO: Handle conversion to other charsets upon failure // TODO: Handle conversion to other charsets upon failure
Charset charset = Charset.forName("UTF-8"); Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder() CharsetDecoder decoder = charset.newDecoder()
@ -164,7 +168,7 @@ public class WifiSsid implements Parcelable {
.onUnmappableCharacter(CodingErrorAction.REPLACE); .onUnmappableCharacter(CodingErrorAction.REPLACE);
CharBuffer out = CharBuffer.allocate(32); CharBuffer out = CharBuffer.allocate(32);
CoderResult result = decoder.decode(ByteBuffer.wrap(octets.toByteArray()), out, true); CoderResult result = decoder.decode(ByteBuffer.wrap(ssidBytes), out, true);
out.flip(); out.flip();
if (result.isError()) { if (result.isError()) {
return NONE; return NONE;
@ -172,6 +176,13 @@ public class WifiSsid implements Parcelable {
return out.toString(); return out.toString();
} }
private boolean isArrayAllZeroes(byte[] ssidBytes) {
for (int i = 0; i< ssidBytes.length; i++) {
if (ssidBytes[i] != 0) return false;
}
return true;
}
/** @hide */ /** @hide */
public byte[] getOctets() { public byte[] getOctets() {
return octets.toByteArray(); return octets.toByteArray();