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

Commit b41fe36b authored by Roshan Pius's avatar Roshan Pius
Browse files

OEM action when readerOptionChanged feature request

Bug: 362436740
Test: CTS test

Change-Id: If8a4ada0e079851d25f8f5e48e46b38a3b0f186c
parent 8672d4c4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ package android.nfc {
    method public void onEnableStarted();
    method public void onHceEventReceived(int);
    method public void onNdefRead(@NonNull java.util.function.Consumer<java.lang.Boolean>);
    method public void onReaderOptionChanged(boolean);
    method public void onRfDiscoveryStarted(boolean);
    method public void onRfFieldActivated(boolean);
    method public void onRoutingChanged();
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ interface INfcOemExtensionCallback {
   void onTagDispatch(in ResultReceiver isSkipped);
   void onRoutingChanged();
   void onHceEventReceived(int action);
   void onReaderOptionChanged(boolean enabled);
   void onCardEmulationActivated(boolean isActivated);
   void onRfFieldActivated(boolean isActivated);
   void onRfDiscoveryStarted(boolean isDiscoveryStarted);
+13 −0
Original line number Diff line number Diff line
@@ -222,6 +222,13 @@ public final class NfcOemExtension {
         */
        void onHceEventReceived(@HostCardEmulationAction int action);

        /**
         * API to notify when reader option has been changed using
         * {@link NfcAdapter#enableReaderOption(boolean)} by some app.
         * @param enabled Flag indicating ReaderMode enabled/disabled
         */
        void onReaderOptionChanged(boolean enabled);

        /**
        * Notifies NFC is activated in listen mode.
        * NFC Forum NCI-2.3 ch.5.2.6 specification
@@ -488,6 +495,12 @@ public final class NfcOemExtension {
                    handleVoidCallback(action, cb::onHceEventReceived, ex));
        }

        @Override
        public void onReaderOptionChanged(boolean enabled) throws RemoteException {
            mCallbackMap.forEach((cb, ex) ->
                    handleVoidCallback(enabled, cb::onReaderOptionChanged, ex));
        }

        private <T> void handleVoidCallback(
                T input, Consumer<T> callbackMethod, Executor executor) {
            synchronized (mLock) {