summaryrefslogtreecommitdiffstats
path: root/wifi/java/android/net/wifi/WifiScanner.java
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2014-06-03 15:55:36 -0700
committerVinit Deshpande <vinitd@google.com>2014-06-12 08:34:44 -0700
commite344cb226885b071c0aad5dd034518fca5002841 (patch)
treee95833afa128b76f9cf8adfc6267a74df1d39660 /wifi/java/android/net/wifi/WifiScanner.java
parent4604abc97d7dd757bb76ff9b7fcf343dc4a15212 (diff)
downloadframeworks_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.java44
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(