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

Commit 7ea61d28 authored by Etan Cohen's avatar Etan Cohen Committed by android-build-merger
Browse files

Merge "[NAN] Refactor WifiNanManager to create separate sessions per connect."...

Merge "[NAN] Refactor WifiNanManager to create separate sessions per connect." am: 84b3d204 am: 337baf9d am: ebe497e4
am: 30757214

Change-Id: I2595b3dfca3bf67c3fd57a1fe04ca5614ad3bbb2
parents a015262c 30757214
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ package android.net.wifi.nan;
 */
oneway interface IWifiNanDiscoverySessionCallback
{
    void onSessionStarted(int sessionId);
    void onSessionStarted(int discoverySessionId);
    void onSessionConfigSuccess();
    void onSessionConfigFail(int reason);
    void onSessionTerminated(int reason);
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ import android.net.wifi.RttManager;
 */
oneway interface IWifiNanEventCallback
{
    void onConnectSuccess();
    void onConnectSuccess(int clientId);
    void onConnectFail(int reason);
    void onIdentityChanged(in byte[] mac);

+6 −6
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ interface IWifiNanManager
    boolean isUsageEnabled();

    // client API
    int connect(in IBinder binder, in String callingPackage, in IWifiNanEventCallback callback,
    void connect(in IBinder binder, in String callingPackage, in IWifiNanEventCallback callback,
            in ConfigRequest configRequest);
    void disconnect(int clientId, in IBinder binder);

@@ -48,10 +48,10 @@ interface IWifiNanManager
            in IWifiNanDiscoverySessionCallback callback);

    // session API
    void updatePublish(int clientId, int sessionId, in PublishConfig publishConfig);
    void updateSubscribe(int clientId, int sessionId, in SubscribeConfig subscribeConfig);
    void sendMessage(int clientId, int sessionId, int peerId, in byte[] message, int messageId,
    void updatePublish(int clientId, int discoverySessionId, in PublishConfig publishConfig);
    void updateSubscribe(int clientId, int discoverySessionId, in SubscribeConfig subscribeConfig);
    void sendMessage(int clientId, int discoverySessionId, int peerId, in byte[] message, int messageId,
        int retryCount);
    void terminateSession(int clientId, int sessionId);
    int startRanging(int clientId, int sessionId, in RttManager.ParcelableRttParams parms);
    void terminateSession(int clientId, int discoverySessionId);
    int startRanging(int clientId, int discoverySessionId, in RttManager.ParcelableRttParams parms);
}
+13 −7
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ public class WifiNanDiscoveryBaseSession {
    /** @hide */
    protected WeakReference<WifiNanManager> mMgr;
    /** @hide */
    protected final int mClientId;
    /** @hide */
    protected final int mSessionId;
    /** @hide */
    protected boolean mTerminated = false;
@@ -67,10 +69,14 @@ public class WifiNanDiscoveryBaseSession {
    }

    /** @hide */
    public WifiNanDiscoveryBaseSession(WifiNanManager manager, int sessionId) {
        if (VDBG) Log.v(TAG, "New client created: manager=" + manager + ", sessionId=" + sessionId);
    public WifiNanDiscoveryBaseSession(WifiNanManager manager, int clientId, int sessionId) {
        if (VDBG) {
            Log.v(TAG, "New discovery session created: manager=" + manager + ", clientId="
                    + clientId + ", sessionId=" + sessionId);
        }

        mMgr = new WeakReference<>(manager);
        mClientId = clientId;
        mSessionId = sessionId;

        mCloseGuard.open("terminate");
@@ -93,7 +99,7 @@ public class WifiNanDiscoveryBaseSession {
            Log.w(TAG, "terminate: called post GC on WifiNanManager");
            return;
        }
        mgr.terminateSession(mSessionId);
        mgr.terminateSession(mClientId, mSessionId);
        mTerminated = true;
        mMgr.clear();
        mCloseGuard.close();
@@ -166,7 +172,7 @@ public class WifiNanDiscoveryBaseSession {
                return;
            }

            mgr.sendMessage(mSessionId, peerId, message, messageId, retryCount);
            mgr.sendMessage(mClientId, mSessionId, peerId, message, messageId, retryCount);
        }
    }

@@ -223,7 +229,7 @@ public class WifiNanDiscoveryBaseSession {
                return;
            }

            mgr.startRanging(mSessionId, params, listener);
            mgr.startRanging(mClientId, mSessionId, params, listener);
        }
    }

@@ -237,7 +243,7 @@ public class WifiNanDiscoveryBaseSession {
     * discovery or communication (in such scenarios the MAC address of the peer is shielded by
     * an opaque peer ID handle). If a NAN connection is needed to a peer discovered using other
     * OOB (out-of-band) mechanism then use the alternative
     * {@link WifiNanManager#createNetworkSpecifier(int, byte[], byte[])} method - which uses the
     * {@link WifiNanSession#createNetworkSpecifier(int, byte[], byte[])} method - which uses the
     * peer's MAC address.
     *
     * @param role The role of this device:
@@ -272,7 +278,7 @@ public class WifiNanDiscoveryBaseSession {
                return null;
            }

            return mgr.createNetworkSpecifier(role, mSessionId, peerId, token);
            return mgr.createNetworkSpecifier(mClientId, role, mSessionId, peerId, token);
        }
    }
}
+4 −1
Original line number Diff line number Diff line
@@ -62,8 +62,11 @@ public class WifiNanEventCallback {
     * Called when NAN connect operation
     * {@link WifiNanManager#connect(android.os.Handler, WifiNanEventCallback)}
     * is completed and that we can now start discovery sessions or connections.
     *
     * @param session The NAN connection on which we can execute further NAN operations - e.g.
     *                discovery, connections.
     */
    public void onConnectSuccess() {
    public void onConnectSuccess(WifiNanSession session) {
        /* empty */
    }

Loading