diff options
author | Vinit Deshpande <vinitd@google.com> | 2014-06-03 15:55:36 -0700 |
---|---|---|
committer | Vinit Deshpande <vinitd@google.com> | 2014-06-12 08:34:44 -0700 |
commit | e344cb226885b071c0aad5dd034518fca5002841 (patch) | |
tree | e95833afa128b76f9cf8adfc6267a74df1d39660 /wifi/java/android/net/wifi/WifiScanner.java | |
parent | 4604abc97d7dd757bb76ff9b7fcf343dc4a15212 (diff) | |
download | frameworks_base-e344cb226885b071c0aad5dd034518fca5002841.zip frameworks_base-e344cb226885b071c0aad5dd034518fca5002841.tar.gz frameworks_base-e344cb226885b071c0aad5dd034518fca5002841.tar.bz2 |
Fix an NPE in WifiScanner while reporting description
Change-Id: Ie9d12e19e0b8ca98c6ec4c6fa5222a2f28983e64
Diffstat (limited to 'wifi/java/android/net/wifi/WifiScanner.java')
-rw-r--r-- | wifi/java/android/net/wifi/WifiScanner.java | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java index 3b65ca8..a145d67 100644 --- a/wifi/java/android/net/wifi/WifiScanner.java +++ b/wifi/java/android/net/wifi/WifiScanner.java @@ -680,6 +680,42 @@ public class WifiScanner { } } + /** @hide */ + public static class OperationResult implements Parcelable { + public int reason; + public String description; + + public OperationResult(int reason, String description) { + this.reason = reason; + this.description = description; + } + + /** Implement the Parcelable interface {@hide} */ + public int describeContents() { + return 0; + } + + /** Implement the Parcelable interface {@hide} */ + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(reason); + dest.writeString(description); + } + + /** Implement the Parcelable interface {@hide} */ + public static final Creator<OperationResult> CREATOR = + new Creator<OperationResult>() { + public OperationResult createFromParcel(Parcel in) { + int reason = in.readInt(); + String description = in.readString(); + return new OperationResult(reason, description); + } + + public OperationResult[] newArray(int size) { + return new OperationResult[size]; + } + }; + } + private static class ServiceHandler extends Handler { ServiceHandler(Looper looper) { super(looper); @@ -717,9 +753,11 @@ public class WifiScanner { case CMD_OP_SUCCEEDED : ((ActionListener) listener).onSuccess(); break; - case CMD_OP_FAILED : - ((ActionListener) listener).onFailure(msg.arg1, (String)msg.obj); - removeListener(msg.arg2); + case CMD_OP_FAILED : { + OperationResult result = (OperationResult)msg.obj; + ((ActionListener) listener).onFailure(result.reason, result.description); + removeListener(msg.arg2); + } break; case CMD_SCAN_RESULT : ((ScanListener) listener).onResults( |