[NAN] Provide inteface MAC address to app.

Expose NAN discovery interface MAC address to app. Required
to enable OOB discovery with other NAN functionality
(e.g. data-path).

Bug: 30000035
Change-Id: Id3c336a61a36522d7011557c805bc3c5307747a1
(cherry picked from commit d097f8a4e520378b9e15f294e773b033ea920268)
diff --git a/wifi/java/android/net/wifi/nan/IWifiNanEventCallback.aidl b/wifi/java/android/net/wifi/nan/IWifiNanEventCallback.aidl
index b95140e..a4e590b 100644
--- a/wifi/java/android/net/wifi/nan/IWifiNanEventCallback.aidl
+++ b/wifi/java/android/net/wifi/nan/IWifiNanEventCallback.aidl
@@ -28,7 +28,7 @@
 {
     void onConnectSuccess();
     void onConnectFail(int reason);
-    void onIdentityChanged();
+    void onIdentityChanged(in byte[] mac);
 
     void onRangingSuccess(int rangingId, in RttManager.ParcelableRttResults results);
     void onRangingFailure(int rangingId, int reason, in String description);
diff --git a/wifi/java/android/net/wifi/nan/WifiNanEventCallback.java b/wifi/java/android/net/wifi/nan/WifiNanEventCallback.java
index 2b9a5fa..148307d 100644
--- a/wifi/java/android/net/wifi/nan/WifiNanEventCallback.java
+++ b/wifi/java/android/net/wifi/nan/WifiNanEventCallback.java
@@ -62,7 +62,7 @@
      * Called when NAN connect operation
      * {@link WifiNanManager#connect(android.os.Looper, WifiNanEventCallback)}
      * is completed. Doesn't necessarily mean that have joined or started a NAN
-     * cluster. An indication is provided by {@link #onIdentityChanged()}.
+     * cluster. An indication is provided by {@link #onIdentityChanged(byte[])}.
      */
     public void onConnectSuccess() {
         /* empty */
@@ -81,12 +81,14 @@
     }
 
     /**
-     * Called when NAN identity has changed. This may be due to joining a
-     * cluster, starting a cluster, or discovery interface change. The
-     * implication is that peers you've been communicating with may no longer
-     * recognize you and you need to re-establish your identity.
+     * Called when NAN identity has changed and after {@link #onConnectSuccess()}. Call may be
+     * due to joining a cluster, starting a cluster, or discovery interface change. The
+     * implication is that peers you've been communicating with may no longer recognize you and
+     * you need to re-establish your identity.
+     * @param mac The MAC address of the NAN discovery interface. Depending on the permission
+     *            model may be all 0's.
      */
-    public void onIdentityChanged() {
+    public void onIdentityChanged(byte[] mac) {
         /* empty */
     }
 }
diff --git a/wifi/java/android/net/wifi/nan/WifiNanManager.java b/wifi/java/android/net/wifi/nan/WifiNanManager.java
index 58cf082..a6e17af 100644
--- a/wifi/java/android/net/wifi/nan/WifiNanManager.java
+++ b/wifi/java/android/net/wifi/nan/WifiNanManager.java
@@ -819,7 +819,7 @@
                             originalCallback.onConnectFail(msg.arg1);
                             break;
                         case CALLBACK_IDENTITY_CHANGED:
-                            originalCallback.onIdentityChanged();
+                            originalCallback.onIdentityChanged((byte[]) msg.obj);
                             break;
                         case CALLBACK_RANGING_SUCCESS: {
                             RttManager.RttListener listener = getAndRemoveRangingListener(msg.arg1);
@@ -875,10 +875,11 @@
         }
 
         @Override
-        public void onIdentityChanged() {
-            if (VDBG) Log.v(TAG, "onIdentityChanged");
+        public void onIdentityChanged(byte[] mac) {
+            if (VDBG) Log.v(TAG, "onIdentityChanged: mac=" + new String(HexEncoding.encode(mac)));
 
             Message msg = mHandler.obtainMessage(CALLBACK_IDENTITY_CHANGED);
+            msg.obj = mac;
             mHandler.sendMessage(msg);
         }