Unhide new Beam push APIs.

Also added support for multiple Uris, removed mimeType argument.

Change-Id: Iad2c4d0e36a174080d7bc9c9c8ab893f90231d02
diff --git a/core/java/android/nfc/NfcActivityManager.java b/core/java/android/nfc/NfcActivityManager.java
index f80dae4..7ffa575 100644
--- a/core/java/android/nfc/NfcActivityManager.java
+++ b/core/java/android/nfc/NfcActivityManager.java
@@ -108,8 +108,8 @@
         NdefMessage ndefMessage = null;  // static NDEF message
         NfcAdapter.CreateNdefMessageCallback ndefMessageCallback = null;
         NfcAdapter.OnNdefPushCompleteCallback onNdefPushCompleteCallback = null;
-        Uri uri = null;
-        String mimeType = null;
+        NfcAdapter.CreateBeamUrisCallback uriCallback = null;
+        Uri[] uris = null;
         public NfcActivityState(Activity activity) {
             if (activity.getWindow().isDestroyed()) {
                 throw new IllegalStateException("activity is already destroyed");
@@ -128,14 +128,19 @@
             ndefMessage = null;
             ndefMessageCallback = null;
             onNdefPushCompleteCallback = null;
-            uri = null;
-            mimeType = null;
+            uriCallback = null;
+            uris = null;
         }
         @Override
         public String toString() {
             StringBuilder s = new StringBuilder("[").append(" ");
             s.append(ndefMessage).append(" ").append(ndefMessageCallback).append(" ");
-            s.append(onNdefPushCompleteCallback).append(" ").append(uri).append("]");
+            s.append(uriCallback).append(" ");
+            if (uris != null) {
+                for (Uri uri : uris) {
+                    s.append(onNdefPushCompleteCallback).append(" ").append(uri).append("]");
+                }
+            }
             return s.toString();
         }
     }
@@ -184,12 +189,25 @@
         mDefaultEvent = new NfcEvent(mAdapter);
     }
 
-    public void setNdefPushContentUri(Activity activity, String mimeType, Uri uri) {
+    public void setNdefPushContentUri(Activity activity, Uri[] uris) {
         boolean isResumed;
         synchronized (NfcActivityManager.this) {
             NfcActivityState state = getActivityState(activity);
-            state.uri = uri;
-            state.mimeType = mimeType;
+            state.uris = uris;
+            isResumed = state.resumed;
+        }
+        if (isResumed) {
+            requestNfcServiceCallback(true);
+        }
+    }
+
+
+    public void setNdefPushContentUriCallback(Activity activity,
+            NfcAdapter.CreateBeamUrisCallback callback) {
+        boolean isResumed;
+        synchronized (NfcActivityManager.this) {
+            NfcActivityState state = getActivityState(activity);
+            state.uriCallback = callback;
             isResumed = state.resumed;
         }
         if (isResumed) {
@@ -271,24 +289,22 @@
 
     /** Callback from NFC service, usually on binder thread */
     @Override
-    public Uri getUri() {
+    public Uri[] getUris() {
+        Uri[] uris;
+        NfcAdapter.CreateBeamUrisCallback callback;
         synchronized (NfcActivityManager.this) {
             NfcActivityState state = findResumedActivityState();
             if (state == null) return null;
-
-            return state.uri;
+            uris = state.uris;
+            callback = state.uriCallback;
+        }
+        if (callback != null) {
+            return callback.createBeamUris(mDefaultEvent);
+        } else {
+            return uris;
         }
     }
-    /** Callback from NFC service, usually on binder thread */
-    @Override
-    public String getMimeType() {
-        synchronized (NfcActivityManager.this) {
-            NfcActivityState state = findResumedActivityState();
-            if (state == null) return null;
 
-            return state.mimeType;
-        }
-    }
     /** Callback from NFC service, usually on binder thread */
     @Override
     public void onNdefPushComplete() {
@@ -358,4 +374,5 @@
             }
         }
     }
+
 }