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

Commit fd70bb13 authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Expose peer LLCP version in NDEF callbacks.

Change-Id: I98b9a9764b66345f842c1f845c8a386161d965f5
parent 1be312df
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -18444,6 +18444,7 @@ package android.nfc {
  public final class NfcEvent {
    field public final android.nfc.NfcAdapter nfcAdapter;
    field public final byte peerLlcpVersion;
  }
  public final class NfcManager {
+1 −0
Original line number Diff line number Diff line
@@ -20028,6 +20028,7 @@ package android.nfc {
  public final class NfcEvent {
    field public final android.nfc.NfcAdapter nfcAdapter;
    field public final byte peerLlcpVersion;
  }
  public final class NfcManager {
+2 −2
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import android.nfc.Tag;
 */
interface IAppCallback
{
    BeamShareData createBeamShareData();
    void onNdefPushComplete();
    BeamShareData createBeamShareData(byte peerLlcpVersion);
    void onNdefPushComplete(byte peerLlcpVersion);
    void onTagDiscovered(in Tag tag);
}
+7 −8
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ public final class NfcActivityManager extends IAppCallback.Stub
    static final Boolean DBG = false;

    final NfcAdapter mAdapter;
    final NfcEvent mDefaultEvent;  // cached NfcEvent (its currently always the same)

    // All objects in the lists are protected by this
    final List<NfcApplicationState> mApps;  // Application(s) that have NFC state. Usually one
@@ -200,7 +199,6 @@ public final class NfcActivityManager extends IAppCallback.Stub
        mAdapter = adapter;
        mActivities = new LinkedList<NfcActivityState>();
        mApps = new ArrayList<NfcApplicationState>(1);  // Android VM usually has 1 app
        mDefaultEvent = new NfcEvent(mAdapter);
    }

    public void enableReaderMode(Activity activity, ReaderCallback callback, int flags,
@@ -354,13 +352,14 @@ public final class NfcActivityManager extends IAppCallback.Stub

    /** Callback from NFC service, usually on binder thread */
    @Override
    public BeamShareData createBeamShareData() {
    public BeamShareData createBeamShareData(byte peerLlcpVersion) {
        NfcAdapter.CreateNdefMessageCallback ndefCallback;
        NfcAdapter.CreateBeamUrisCallback urisCallback;
        NdefMessage message;
        Activity activity;
        Uri[] uris;
        int flags;
        NfcEvent event = new NfcEvent(mAdapter, peerLlcpVersion);
        synchronized (NfcActivityManager.this) {
            NfcActivityState state = findResumedActivityState();
            if (state == null) return null;
@@ -375,10 +374,10 @@ public final class NfcActivityManager extends IAppCallback.Stub

        // Make callbacks without lock
        if (ndefCallback != null) {
            message  = ndefCallback.createNdefMessage(mDefaultEvent);
            message  = ndefCallback.createNdefMessage(event);
        }
        if (urisCallback != null) {
            uris = urisCallback.createBeamUris(mDefaultEvent);
            uris = urisCallback.createBeamUris(event);
            if (uris != null) {
                ArrayList<Uri> validUris = new ArrayList<Uri>();
                for (Uri uri : uris) {
@@ -412,7 +411,7 @@ public final class NfcActivityManager extends IAppCallback.Stub

    /** Callback from NFC service, usually on binder thread */
    @Override
    public void onNdefPushComplete() {
    public void onNdefPushComplete(byte peerLlcpVersion) {
        NfcAdapter.OnNdefPushCompleteCallback callback;
        synchronized (NfcActivityManager.this) {
            NfcActivityState state = findResumedActivityState();
@@ -420,10 +419,10 @@ public final class NfcActivityManager extends IAppCallback.Stub

            callback = state.onNdefPushCompleteCallback;
        }

        NfcEvent event = new NfcEvent(mAdapter, peerLlcpVersion);
        // Make callback without lock
        if (callback != null) {
            callback.onNdefPushComplete(mDefaultEvent);
            callback.onNdefPushComplete(event);
        }
    }

+8 −1
Original line number Diff line number Diff line
@@ -38,7 +38,14 @@ public final class NfcEvent {
     */
    public final NfcAdapter nfcAdapter;

    NfcEvent(NfcAdapter nfcAdapter) {
    /**
     * The LLCP version of the peer associated with the NFC event.
     * The major version is in the top nibble, the minor version is in the bottom nibble.
     */
    public final byte peerLlcpVersion;

    NfcEvent(NfcAdapter nfcAdapter, byte peerLlcpVersion) {
        this.nfcAdapter = nfcAdapter;
        this.peerLlcpVersion = peerLlcpVersion;
    }
}