Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e43c1a3e authored by Etan Cohen's avatar Etan Cohen Committed by Gerrit Code Review
Browse files

Merge "[NAN] Use a hidden class for peer ID opaque handle"

parents 00a19a37 f085c195
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -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;
+23 −8
Original line number Diff line number Diff line
@@ -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;
    }
}