Loading nfc/api/current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -211,7 +211,7 @@ package android.nfc.cardemulation { method public boolean isDefaultServiceForCategory(android.content.ComponentName, String); method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public boolean isEuiccSupported(); method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>); method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener); method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); method public boolean removeAidsForService(android.content.ComponentName, String); Loading @@ -221,7 +221,7 @@ package android.nfc.cardemulation { method public boolean setPreferredService(android.app.Activity, android.content.ComponentName); method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean setShouldDefaultToObserveModeForService(@NonNull android.content.ComponentName, boolean); method public boolean supportsAidPrefixRegistration(); method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventListener(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener); method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventCallback(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean unsetOffHostForService(@NonNull android.content.ComponentName); method public boolean unsetPreferredService(android.app.Activity); field @Deprecated public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT"; Loading @@ -244,7 +244,7 @@ package android.nfc.cardemulation { field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0 } @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventListener { @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventCallback { method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidConflictOccurred(@NonNull String); method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidNotRouted(@NonNull String); method @FlaggedApi("android.nfc.nfc_event_listener") public default void onInternalErrorReported(int); Loading nfc/java/android/nfc/INfcCardEmulation.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package android.nfc; import android.content.ComponentName; import android.nfc.INfcEventListener; import android.nfc.INfcEventCallback; import android.nfc.cardemulation.AidGroup; import android.nfc.cardemulation.ApduServiceInfo; Loading Loading @@ -60,6 +60,6 @@ interface INfcCardEmulation List<String> getRoutingStatus(); void overwriteRoutingTable(int userHandle, String emptyAid, String protocol, String tech, String sc); void registerNfcEventListener(in INfcEventListener listener); void unregisterNfcEventListener(in INfcEventListener listener); void registerNfcEventCallback(in INfcEventCallback listener); void unregisterNfcEventCallback(in INfcEventCallback listener); } nfc/java/android/nfc/INfcEventListener.aidl→nfc/java/android/nfc/INfcEventCallback.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import android.nfc.ComponentNameAndUser; /** * @hide */ oneway interface INfcEventListener { oneway interface INfcEventCallback { void onPreferredServiceChanged(in ComponentNameAndUser ComponentNameAndUser); void onObserveModeStateChanged(boolean isEnabled); void onAidConflictOccurred(in String aid); Loading nfc/java/android/nfc/cardemulation/CardEmulation.java +20 −20 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import android.nfc.ComponentNameAndUser; import android.nfc.Constants; import android.nfc.Flags; import android.nfc.INfcCardEmulation; import android.nfc.INfcEventListener; import android.nfc.INfcEventCallback; import android.nfc.NfcAdapter; import android.os.Build; import android.os.RemoteException; Loading Loading @@ -1304,7 +1304,7 @@ public final class CardEmulation { /** Listener for preferred service state changes. */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public interface NfcEventListener { public interface NfcEventCallback { /** * This method is called when this package gains or loses preferred Nfc service status, * either the Default Wallet Role holder (see {@link Loading Loading @@ -1380,10 +1380,10 @@ public final class CardEmulation { default void onInternalErrorReported(@NfcInternalErrorType int errorType) {} } private final ArrayMap<NfcEventListener, Executor> mNfcEventListeners = new ArrayMap<>(); private final ArrayMap<NfcEventCallback, Executor> mNfcEventCallbacks = new ArrayMap<>(); final INfcEventListener mINfcEventListener = new INfcEventListener.Stub() { final INfcEventCallback mINfcEventCallback = new INfcEventCallback.Stub() { public void onPreferredServiceChanged(ComponentNameAndUser componentNameAndUser) { if (!android.nfc.Flags.nfcEventListener()) { return; Loading Loading @@ -1443,12 +1443,12 @@ public final class CardEmulation { } interface ListenerCall { void invoke(NfcEventListener listener); void invoke(NfcEventCallback listener); } private void callListeners(ListenerCall listenerCall) { synchronized (mNfcEventListeners) { mNfcEventListeners.forEach( synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.forEach( (listener, executor) -> { executor.execute(() -> listenerCall.invoke(listener)); }); Loading @@ -1463,34 +1463,34 @@ public final class CardEmulation { * @param listener The listener to register */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public void registerNfcEventListener( @NonNull @CallbackExecutor Executor executor, @NonNull NfcEventListener listener) { public void registerNfcEventCallback( @NonNull @CallbackExecutor Executor executor, @NonNull NfcEventCallback listener) { if (!android.nfc.Flags.nfcEventListener()) { return; } synchronized (mNfcEventListeners) { mNfcEventListeners.put(listener, executor); if (mNfcEventListeners.size() == 1) { callService(() -> sService.registerNfcEventListener(mINfcEventListener)); synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.put(listener, executor); if (mNfcEventCallbacks.size() == 1) { callService(() -> sService.registerNfcEventCallback(mINfcEventCallback)); } } } /** * Unregister a preferred service listener that was previously registered with {@link * #registerNfcEventListener(Executor, NfcEventListener)} * #registerNfcEventCallback(Executor, NfcEventCallback)} * * @param listener The previously registered listener to unregister */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public void unregisterNfcEventListener(@NonNull NfcEventListener listener) { public void unregisterNfcEventCallback(@NonNull NfcEventCallback listener) { if (!android.nfc.Flags.nfcEventListener()) { return; } synchronized (mNfcEventListeners) { mNfcEventListeners.remove(listener); if (mNfcEventListeners.size() == 0) { callService(() -> sService.unregisterNfcEventListener(mINfcEventListener)); synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.remove(listener); if (mNfcEventCallbacks.size() == 0) { callService(() -> sService.unregisterNfcEventCallback(mINfcEventCallback)); } } } Loading Loading
nfc/api/current.txt +3 −3 Original line number Diff line number Diff line Loading @@ -211,7 +211,7 @@ package android.nfc.cardemulation { method public boolean isDefaultServiceForCategory(android.content.ComponentName, String); method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public boolean isEuiccSupported(); method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>); method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener); method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); method public boolean removeAidsForService(android.content.ComponentName, String); Loading @@ -221,7 +221,7 @@ package android.nfc.cardemulation { method public boolean setPreferredService(android.app.Activity, android.content.ComponentName); method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean setShouldDefaultToObserveModeForService(@NonNull android.content.ComponentName, boolean); method public boolean supportsAidPrefixRegistration(); method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventListener(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener); method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventCallback(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean unsetOffHostForService(@NonNull android.content.ComponentName); method public boolean unsetPreferredService(android.app.Activity); field @Deprecated public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT"; Loading @@ -244,7 +244,7 @@ package android.nfc.cardemulation { field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0 } @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventListener { @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventCallback { method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidConflictOccurred(@NonNull String); method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidNotRouted(@NonNull String); method @FlaggedApi("android.nfc.nfc_event_listener") public default void onInternalErrorReported(int); Loading
nfc/java/android/nfc/INfcCardEmulation.aidl +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ package android.nfc; import android.content.ComponentName; import android.nfc.INfcEventListener; import android.nfc.INfcEventCallback; import android.nfc.cardemulation.AidGroup; import android.nfc.cardemulation.ApduServiceInfo; Loading Loading @@ -60,6 +60,6 @@ interface INfcCardEmulation List<String> getRoutingStatus(); void overwriteRoutingTable(int userHandle, String emptyAid, String protocol, String tech, String sc); void registerNfcEventListener(in INfcEventListener listener); void unregisterNfcEventListener(in INfcEventListener listener); void registerNfcEventCallback(in INfcEventCallback listener); void unregisterNfcEventCallback(in INfcEventCallback listener); }
nfc/java/android/nfc/INfcEventListener.aidl→nfc/java/android/nfc/INfcEventCallback.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import android.nfc.ComponentNameAndUser; /** * @hide */ oneway interface INfcEventListener { oneway interface INfcEventCallback { void onPreferredServiceChanged(in ComponentNameAndUser ComponentNameAndUser); void onObserveModeStateChanged(boolean isEnabled); void onAidConflictOccurred(in String aid); Loading
nfc/java/android/nfc/cardemulation/CardEmulation.java +20 −20 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import android.nfc.ComponentNameAndUser; import android.nfc.Constants; import android.nfc.Flags; import android.nfc.INfcCardEmulation; import android.nfc.INfcEventListener; import android.nfc.INfcEventCallback; import android.nfc.NfcAdapter; import android.os.Build; import android.os.RemoteException; Loading Loading @@ -1304,7 +1304,7 @@ public final class CardEmulation { /** Listener for preferred service state changes. */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public interface NfcEventListener { public interface NfcEventCallback { /** * This method is called when this package gains or loses preferred Nfc service status, * either the Default Wallet Role holder (see {@link Loading Loading @@ -1380,10 +1380,10 @@ public final class CardEmulation { default void onInternalErrorReported(@NfcInternalErrorType int errorType) {} } private final ArrayMap<NfcEventListener, Executor> mNfcEventListeners = new ArrayMap<>(); private final ArrayMap<NfcEventCallback, Executor> mNfcEventCallbacks = new ArrayMap<>(); final INfcEventListener mINfcEventListener = new INfcEventListener.Stub() { final INfcEventCallback mINfcEventCallback = new INfcEventCallback.Stub() { public void onPreferredServiceChanged(ComponentNameAndUser componentNameAndUser) { if (!android.nfc.Flags.nfcEventListener()) { return; Loading Loading @@ -1443,12 +1443,12 @@ public final class CardEmulation { } interface ListenerCall { void invoke(NfcEventListener listener); void invoke(NfcEventCallback listener); } private void callListeners(ListenerCall listenerCall) { synchronized (mNfcEventListeners) { mNfcEventListeners.forEach( synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.forEach( (listener, executor) -> { executor.execute(() -> listenerCall.invoke(listener)); }); Loading @@ -1463,34 +1463,34 @@ public final class CardEmulation { * @param listener The listener to register */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public void registerNfcEventListener( @NonNull @CallbackExecutor Executor executor, @NonNull NfcEventListener listener) { public void registerNfcEventCallback( @NonNull @CallbackExecutor Executor executor, @NonNull NfcEventCallback listener) { if (!android.nfc.Flags.nfcEventListener()) { return; } synchronized (mNfcEventListeners) { mNfcEventListeners.put(listener, executor); if (mNfcEventListeners.size() == 1) { callService(() -> sService.registerNfcEventListener(mINfcEventListener)); synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.put(listener, executor); if (mNfcEventCallbacks.size() == 1) { callService(() -> sService.registerNfcEventCallback(mINfcEventCallback)); } } } /** * Unregister a preferred service listener that was previously registered with {@link * #registerNfcEventListener(Executor, NfcEventListener)} * #registerNfcEventCallback(Executor, NfcEventCallback)} * * @param listener The previously registered listener to unregister */ @FlaggedApi(android.nfc.Flags.FLAG_NFC_EVENT_LISTENER) public void unregisterNfcEventListener(@NonNull NfcEventListener listener) { public void unregisterNfcEventCallback(@NonNull NfcEventCallback listener) { if (!android.nfc.Flags.nfcEventListener()) { return; } synchronized (mNfcEventListeners) { mNfcEventListeners.remove(listener); if (mNfcEventListeners.size() == 0) { callService(() -> sService.unregisterNfcEventListener(mINfcEventListener)); synchronized (mNfcEventCallbacks) { mNfcEventCallbacks.remove(listener); if (mNfcEventCallbacks.size() == 0) { callService(() -> sService.unregisterNfcEventCallback(mINfcEventCallback)); } } } Loading