From 0946fe5be33eca9c728e5ad86869691f980590e2 Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Thu, 10 Nov 2011 13:18:53 -0800 Subject: [PATCH] Revert "Remove deprecated (hidden) enableForegroundNdefPush API's." (DO NOT MERGE). This reverts commit 562dfff65ac79590c0b7c50019cd3d107e8b4e0e. These API's are still used by GMM in the version that ships with MR1, so we need them to keep Beam working for GMM. Note that these APIs are hidden. From version 5.13 onwards GMM will use the new API's. Change-Id: I316a9c9b7d0052a14f6c1df70f2ed463bca61800 --- core/java/android/nfc/NfcAdapter.java | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index 33310dfd0ad88..fe0106dc52c4f 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -767,6 +767,61 @@ public final class NfcAdapter { mNfcActivityManager.setOnNdefPushCompleteCallback(activity, null); } + /** + * TODO: Remove this once pre-built apk's (Maps, Youtube etc) are updated + * @deprecated use {@link CreateNdefMessageCallback} or {@link OnNdefPushCompleteCallback} + * @hide + */ + @Deprecated + public interface NdefPushCallback { + /** + * @deprecated use {@link CreateNdefMessageCallback} instead + */ + @Deprecated + NdefMessage createMessage(); + /** + * @deprecated use{@link OnNdefPushCompleteCallback} instead + */ + @Deprecated + void onMessagePushed(); + } + + /** + * TODO: Remove this + * Converts new callbacks to old callbacks. + */ + static final class LegacyCallbackWrapper implements CreateNdefMessageCallback, + OnNdefPushCompleteCallback { + final NdefPushCallback mLegacyCallback; + LegacyCallbackWrapper(NdefPushCallback legacyCallback) { + mLegacyCallback = legacyCallback; + } + @Override + public void onNdefPushComplete(NfcEvent event) { + mLegacyCallback.onMessagePushed(); + } + @Override + public NdefMessage createNdefMessage(NfcEvent event) { + return mLegacyCallback.createMessage(); + } + } + + /** + * TODO: Remove this once pre-built apk's (Maps, Youtube etc) are updated + * @deprecated use {@link #setNdefPushMessageCallback} instead + * @hide + */ + @Deprecated + public void enableForegroundNdefPush(Activity activity, final NdefPushCallback callback) { + if (activity == null || callback == null) { + throw new NullPointerException(); + } + enforceResumed(activity); + LegacyCallbackWrapper callbackWrapper = new LegacyCallbackWrapper(callback); + mNfcActivityManager.setNdefPushMessageCallback(activity, callbackWrapper); + mNfcActivityManager.setOnNdefPushCompleteCallback(activity, callbackWrapper); + } + /** * Enable NDEF Push feature. *

This API is for the Settings application.