Merge "Fix handling of hidden access points" into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b312163dde
@ -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();
|
||||||
|
Reference in New Issue
Block a user