Merge "[NAN] Use a hidden class for peer ID opaque handle"
am: e43c1a3e3e
Change-Id: Iac94c4b27f7bfc89c1b1f7779760512ee2a11e31
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package android.net.wifi.nan;
|
package android.net.wifi.nan;
|
||||||
|
|
||||||
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.annotation.SystemApi;
|
import android.annotation.SystemApi;
|
||||||
import android.net.wifi.RttManager;
|
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
|
* (note: no retransmissions are attempted in other failure cases). A value of 0
|
||||||
* indicates no retries. Max permitted value is {@link #getMaxSendRetryCount()}.
|
* 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) {
|
int retryCount) {
|
||||||
if (mTerminated) {
|
if (mTerminated) {
|
||||||
Log.w(TAG, "sendMessage: called on terminated session");
|
Log.w(TAG, "sendMessage: called on terminated session");
|
||||||
@@ -205,7 +206,7 @@ public class WifiNanDiscoveryBaseSession {
|
|||||||
* can be arbitrary and non-unique.
|
* can be arbitrary and non-unique.
|
||||||
* @param message The message to be transmitted.
|
* @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);
|
sendMessage(peerHandle, messageId, message, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,8 +271,8 @@ public class WifiNanDiscoveryBaseSession {
|
|||||||
* {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest,android.net.ConnectivityManager.NetworkCallback)}
|
* {@link android.net.ConnectivityManager#requestNetwork(android.net.NetworkRequest,android.net.ConnectivityManager.NetworkCallback)}
|
||||||
* [or other varieties of that API].
|
* [or other varieties of that API].
|
||||||
*/
|
*/
|
||||||
public String createNetworkSpecifier(@WifiNanManager.DataPathRole int role, Object peerHandle,
|
public String createNetworkSpecifier(@WifiNanManager.DataPathRole int role,
|
||||||
@Nullable byte[] token) {
|
@Nullable Object peerHandle, @Nullable byte[] token) {
|
||||||
if (mTerminated) {
|
if (mTerminated) {
|
||||||
Log.w(TAG, "createNetworkSpecifier: called on terminated session");
|
Log.w(TAG, "createNetworkSpecifier: called on terminated session");
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -459,15 +459,20 @@ public class WifiNanManager {
|
|||||||
/** @hide */
|
/** @hide */
|
||||||
public void sendMessage(int clientId, int sessionId, Object peerHandle, byte[] message,
|
public void sendMessage(int clientId, int sessionId, Object peerHandle, byte[] message,
|
||||||
int messageId, int retryCount) {
|
int messageId, int retryCount) {
|
||||||
|
if (peerHandle == null) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"sendMessage: invalid peerHandle - must be non-null");
|
||||||
|
}
|
||||||
|
|
||||||
if (VDBG) {
|
if (VDBG) {
|
||||||
Log.v(TAG, "sendMessage(): clientId=" + clientId + ", sessionId=" + sessionId
|
Log.v(TAG, "sendMessage(): clientId=" + clientId + ", sessionId=" + sessionId
|
||||||
+ ", peerHandle=" + peerHandle + ", messageId=" + messageId + ", retryCount="
|
+ ", peerHandle=" + ((OpaquePeerHandle) peerHandle).peerId + ", messageId="
|
||||||
+ retryCount);
|
+ messageId + ", retryCount=" + retryCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mService.sendMessage(clientId, sessionId, (Integer) peerHandle, message, messageId,
|
mService.sendMessage(clientId, sessionId, ((OpaquePeerHandle) peerHandle).peerId,
|
||||||
retryCount);
|
message, messageId, retryCount);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
@@ -499,7 +504,8 @@ public class WifiNanManager {
|
|||||||
byte[] token) {
|
byte[] token) {
|
||||||
if (VDBG) {
|
if (VDBG) {
|
||||||
Log.v(TAG, "createNetworkSpecifier: role=" + role + ", sessionId=" + sessionId
|
Log.v(TAG, "createNetworkSpecifier: role=" + role + ", sessionId=" + sessionId
|
||||||
+ ", peerHandle=" + peerHandle + ", token=" + token);
|
+ ", peerHandle=" + ((peerHandle == null) ? peerHandle
|
||||||
|
: ((OpaquePeerHandle) peerHandle).peerId) + ", token=" + token);
|
||||||
}
|
}
|
||||||
|
|
||||||
int type;
|
int type;
|
||||||
@@ -539,7 +545,7 @@ public class WifiNanManager {
|
|||||||
json.put(NETWORK_SPECIFIER_KEY_CLIENT_ID, clientId);
|
json.put(NETWORK_SPECIFIER_KEY_CLIENT_ID, clientId);
|
||||||
json.put(NETWORK_SPECIFIER_KEY_SESSION_ID, sessionId);
|
json.put(NETWORK_SPECIFIER_KEY_SESSION_ID, sessionId);
|
||||||
if (peerHandle != null) {
|
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) {
|
if (token != null) {
|
||||||
json.put(NETWORK_SPECIFIER_KEY_TOKEN,
|
json.put(NETWORK_SPECIFIER_KEY_TOKEN,
|
||||||
@@ -844,7 +850,7 @@ public class WifiNanManager {
|
|||||||
break;
|
break;
|
||||||
case CALLBACK_MATCH:
|
case CALLBACK_MATCH:
|
||||||
mOriginalCallback.onServiceDiscovered(
|
mOriginalCallback.onServiceDiscovered(
|
||||||
Integer.valueOf(msg.arg1),
|
new OpaquePeerHandle(msg.arg1),
|
||||||
msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE),
|
msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE),
|
||||||
msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE2));
|
msg.getData().getByteArray(MESSAGE_BUNDLE_KEY_MESSAGE2));
|
||||||
break;
|
break;
|
||||||
@@ -855,7 +861,7 @@ public class WifiNanManager {
|
|||||||
mOriginalCallback.onMessageSendFailed(msg.arg1);
|
mOriginalCallback.onMessageSendFailed(msg.arg1);
|
||||||
break;
|
break;
|
||||||
case CALLBACK_MESSAGE_RECEIVED:
|
case CALLBACK_MESSAGE_RECEIVED:
|
||||||
mOriginalCallback.onMessageReceived(Integer.valueOf(msg.arg1),
|
mOriginalCallback.onMessageReceived(new OpaquePeerHandle(msg.arg1),
|
||||||
(byte[]) msg.obj);
|
(byte[]) msg.obj);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -986,4 +992,13 @@ public class WifiNanManager {
|
|||||||
mOriginalCallback.onSessionTerminated(reason);
|
mOriginalCallback.onSessionTerminated(reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
public static class OpaquePeerHandle {
|
||||||
|
public OpaquePeerHandle(int peerId) {
|
||||||
|
this.peerId = peerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int peerId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user