diff options
5 files changed, 22 insertions, 15 deletions
diff --git a/wifi/java/android/net/wifi/nan/IWifiNanManager.aidl b/wifi/java/android/net/wifi/nan/IWifiNanManager.aidl index ff3d29f41545..ec9e4628d609 100644 --- a/wifi/java/android/net/wifi/nan/IWifiNanManager.aidl +++ b/wifi/java/android/net/wifi/nan/IWifiNanManager.aidl @@ -43,7 +43,8 @@ interface IWifiNanManager void publish(int sessionId, in PublishData publishData, in PublishSettings publishSettings); void subscribe(int sessionId, in SubscribeData subscribeData, in SubscribeSettings subscribeSettings); - void sendMessage(int sessionId, int peerId, in byte[] message, int messageLength); + void sendMessage(int sessionId, int peerId, in byte[] message, int messageLength, + int messageId); void stopSession(int sessionId); void destroySession(int sessionId); } diff --git a/wifi/java/android/net/wifi/nan/IWifiNanSessionListener.aidl b/wifi/java/android/net/wifi/nan/IWifiNanSessionListener.aidl index 773f83bc70dc..50c34d946918 100644 --- a/wifi/java/android/net/wifi/nan/IWifiNanSessionListener.aidl +++ b/wifi/java/android/net/wifi/nan/IWifiNanSessionListener.aidl @@ -32,7 +32,7 @@ oneway interface IWifiNanSessionListener void onMatch(int peerId, in byte[] serviceSpecificInfo, int serviceSpecificInfoLength, in byte[] matchFilter, int matchFilterLength); - void onMessageSendSuccess(); - void onMessageSendFail(int reason); + void onMessageSendSuccess(int messageId); + void onMessageSendFail(int messageId, int reason); void onMessageReceived(int peerId, in byte[] message, int messageLength); } diff --git a/wifi/java/android/net/wifi/nan/WifiNanManager.java b/wifi/java/android/net/wifi/nan/WifiNanManager.java index 877f9937bbb9..cb82268ec195 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanManager.java +++ b/wifi/java/android/net/wifi/nan/WifiNanManager.java @@ -319,13 +319,14 @@ public class WifiNanManager { /** * {@hide} */ - public void sendMessage(int sessionId, int peerId, byte[] message, int messageLength) { + public void sendMessage(int sessionId, int peerId, byte[] message, int messageLength, + int messageId) { try { if (VDBG) { Log.v(TAG, "sendMessage(): sessionId=" + sessionId + ", peerId=" + peerId - + ", messageLength=" + messageLength); + + ", messageLength=" + messageLength + ", messageId=" + messageId); } - mService.sendMessage(sessionId, peerId, message, messageLength); + mService.sendMessage(sessionId, peerId, message, messageLength, messageId); } catch (RemoteException e) { Log.w(TAG, "subscribe RemoteException (FYI - ignoring): " + e); } diff --git a/wifi/java/android/net/wifi/nan/WifiNanSession.java b/wifi/java/android/net/wifi/nan/WifiNanSession.java index c6b384e3ae00..d0a94109d0d8 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanSession.java +++ b/wifi/java/android/net/wifi/nan/WifiNanSession.java @@ -103,8 +103,11 @@ public class WifiNanSession { * @param message The message to be transmitted. * @param messageLength The number of bytes from the {@code message} to be * transmitted. + * @param messageId An arbitrary integer used by the caller to identify the + * message. The same integer ID will be returned in the callbacks + * indicated message send success or failure. */ - public void sendMessage(int peerId, byte[] message, int messageLength) { - mManager.sendMessage(mSessionId, peerId, message, messageLength); + public void sendMessage(int peerId, byte[] message, int messageLength, int messageId) { + mManager.sendMessage(mSessionId, peerId, message, messageLength, messageId); } } diff --git a/wifi/java/android/net/wifi/nan/WifiNanSessionListener.java b/wifi/java/android/net/wifi/nan/WifiNanSessionListener.java index c9d08c7610f3..d5e59f0edaf5 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanSessionListener.java +++ b/wifi/java/android/net/wifi/nan/WifiNanSessionListener.java @@ -210,10 +210,10 @@ public class WifiNanSessionListener { msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE2), msg.arg2); break; case LISTEN_MESSAGE_SEND_SUCCESS: - WifiNanSessionListener.this.onMessageSendSuccess(); + WifiNanSessionListener.this.onMessageSendSuccess(msg.arg1); break; case LISTEN_MESSAGE_SEND_FAIL: - WifiNanSessionListener.this.onMessageSendFail(msg.arg1); + WifiNanSessionListener.this.onMessageSendFail(msg.arg1, msg.arg2); break; case LISTEN_MESSAGE_RECEIVED: WifiNanSessionListener.this.onMessageReceived(msg.arg2, @@ -306,7 +306,7 @@ public class WifiNanSessionListener { * {@link WifiNanSessionListener#onMessageSendFail(int)} will be received - * never both. */ - public void onMessageSendSuccess() { + public void onMessageSendSuccess(int messageId) { if (VDBG) Log.v(TAG, "onMessageSendSuccess: called in stub - override if interested"); } @@ -325,7 +325,7 @@ public class WifiNanSessionListener { * @param reason The failure reason using {@code NanSessionListener.FAIL_*} * codes. */ - public void onMessageSendFail(int reason) { + public void onMessageSendFail(int messageId, int reason) { if (VDBG) Log.v(TAG, "onMessageSendFail: called in stub - override if interested"); } @@ -401,19 +401,21 @@ public class WifiNanSessionListener { } @Override - public void onMessageSendSuccess() { + public void onMessageSendSuccess(int messageId) { if (VDBG) Log.v(TAG, "onMessageSendSuccess"); Message msg = mHandler.obtainMessage(LISTEN_MESSAGE_SEND_SUCCESS); + msg.arg1 = messageId; mHandler.sendMessage(msg); } @Override - public void onMessageSendFail(int reason) { + public void onMessageSendFail(int messageId, int reason) { if (VDBG) Log.v(TAG, "onMessageSendFail: reason=" + reason); Message msg = mHandler.obtainMessage(LISTEN_MESSAGE_SEND_FAIL); - msg.arg1 = reason; + msg.arg1 = messageId; + msg.arg2 = reason; mHandler.sendMessage(msg); } |