Merge "NAN: add message ID to correlate message callbacks to original message" into mm-wireless-dev

This commit is contained in:
Etan Cohen
2016-01-28 18:36:29 +00:00
committed by Android Partner Code Review
5 changed files with 22 additions and 15 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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);
}