diff options
author | 2016-09-28 05:31:39 +0000 | |
---|---|---|
committer | 2016-09-28 05:31:39 +0000 | |
commit | ca58352b878825cd7f86965c38ff11726d2d1f04 (patch) | |
tree | 788cc56d3756546f2eca216a6928c81b4c2bfb18 | |
parent | 1ff47d5d723e50a92dbca41f54b5aa5fc3fa3dc9 (diff) | |
parent | 5d09ab4812323ab4eabaa9928678d0746ae8a03b (diff) |
Merge "[NAN] Use a hidden class for peer ID opaque handle" am: e43c1a3e3e am: 66741c2c0f am: a96c6e222b
am: 5d09ab4812
Change-Id: I974612e889f581d7361dadc69f176c6912661cca
-rw-r--r-- | wifi/java/android/net/wifi/nan/WifiNanDiscoveryBaseSession.java | 9 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/nan/WifiNanManager.java | 31 |
2 files changed, 28 insertions, 12 deletions
diff --git a/wifi/java/android/net/wifi/nan/WifiNanDiscoveryBaseSession.java b/wifi/java/android/net/wifi/nan/WifiNanDiscoveryBaseSession.java index 5b84eb27dc84..17e974b14657 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanDiscoveryBaseSession.java +++ b/wifi/java/android/net/wifi/nan/WifiNanDiscoveryBaseSession.java @@ -16,6 +16,7 @@ package android.net.wifi.nan; +import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.net.wifi.RttManager; @@ -163,7 +164,7 @@ public class WifiNanDiscoveryBaseSession { * (note: no retransmissions are attempted in other failure cases). A value of 0 * indicates no retries. Max permitted value is {@link #getMaxSendRetryCount()}. */ - public void sendMessage(Object peerHandle, int messageId, @Nullable byte[] message, + public void sendMessage(@NonNull Object peerHandle, int messageId, @Nullable byte[] message, int retryCount) { if (mTerminated) { Log.w(TAG, "sendMessage: called on terminated session"); @@ -205,7 +206,7 @@ public class WifiNanDiscoveryBaseSession { * can be arbitrary and non-unique. * @param message The message to be transmitted. */ - public void sendMessage(Object peerHandle, int messageId, @Nullable byte[] message) { + public void sendMessage(@NonNull Object peerHandle, int messageId, @Nullable byte[] message) { sendMessage(peerHandle, messageId, message, 0); } @@ -270,8 +271,8 @@ public class WifiNanDiscoveryBaseSession { * {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest,android.net.ConnectivityManager.NetworkCallback)} * [or other varieties of that API]. */ - public String createNetworkSpecifier(@WifiNanManager.DataPathRole int role, Object peerHandle, - @Nullable byte[] token) { + public String createNetworkSpecifier(@WifiNanManager.DataPathRole int role, + @Nullable Object peerHandle, @Nullable byte[] token) { if (mTerminated) { Log.w(TAG, "createNetworkSpecifier: called on terminated session"); return null; diff --git a/wifi/java/android/net/wifi/nan/WifiNanManager.java b/wifi/java/android/net/wifi/nan/WifiNanManager.java index 815defbbff85..705ba4a5a4bd 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanManager.java +++ b/wifi/java/android/net/wifi/nan/WifiNanManager.java @@ -459,15 +459,20 @@ public class WifiNanManager { /** @hide */ public void sendMessage(int clientId, int sessionId, Object peerHandle, byte[] message, int messageId, int retryCount) { + if (peerHandle == null) { + throw new IllegalArgumentException( + "sendMessage: invalid peerHandle - must be non-null"); + } + if (VDBG) { Log.v(TAG, "sendMessage(): clientId=" + clientId + ", sessionId=" + sessionId - + ", peerHandle=" + peerHandle + ", messageId=" + messageId + ", retryCount=" - + retryCount); + + ", peerHandle=" + ((OpaquePeerHandle) peerHandle).peerId + ", messageId=" + + messageId + ", retryCount=" + retryCount); } try { - mService.sendMessage(clientId, sessionId, (Integer) peerHandle, message, messageId, - retryCount); + mService.sendMessage(clientId, sessionId, ((OpaquePeerHandle) peerHandle).peerId, + message, messageId, retryCount); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -499,7 +504,8 @@ public class WifiNanManager { byte[] token) { if (VDBG) { Log.v(TAG, "createNetworkSpecifier: role=" + role + ", sessionId=" + sessionId - + ", peerHandle=" + peerHandle + ", token=" + token); + + ", peerHandle=" + ((peerHandle == null) ? peerHandle + : ((OpaquePeerHandle) peerHandle).peerId) + ", token=" + token); } int type; @@ -539,7 +545,7 @@ public class WifiNanManager { json.put(NETWORK_SPECIFIER_KEY_CLIENT_ID, clientId); json.put(NETWORK_SPECIFIER_KEY_SESSION_ID, sessionId); if (peerHandle != null) { - json.put(NETWORK_SPECIFIER_KEY_PEER_ID, (Integer) peerHandle); + json.put(NETWORK_SPECIFIER_KEY_PEER_ID, ((OpaquePeerHandle) peerHandle).peerId); } if (token != null) { json.put(NETWORK_SPECIFIER_KEY_TOKEN, @@ -844,7 +850,7 @@ public class WifiNanManager { break; case CALLBACK_MATCH: mOriginalCallback.onServiceDiscovered( - Integer.valueOf(msg.arg1), + new OpaquePeerHandle(msg.arg1), msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE), msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE2)); break; @@ -855,7 +861,7 @@ public class WifiNanManager { mOriginalCallback.onMessageSendFailed(msg.arg1); break; case CALLBACK_MESSAGE_RECEIVED: - mOriginalCallback.onMessageReceived(Integer.valueOf(msg.arg1), + mOriginalCallback.onMessageReceived(new OpaquePeerHandle(msg.arg1), (byte[]) msg.obj); break; } @@ -986,4 +992,13 @@ public class WifiNanManager { mOriginalCallback.onSessionTerminated(reason); } } + + /** @hide */ + public static class OpaquePeerHandle { + public OpaquePeerHandle(int peerId) { + this.peerId = peerId; + } + + public int peerId; + } } |