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

Commit e386f7f5 authored by Martijn Coenen's avatar Martijn Coenen Committed by Gerrit Code Review
Browse files

Merge "Expose peer LLCP version in NDEF callbacks."

parents e5e49a17 fd70bb13
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -18445,6 +18445,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
@@ -20029,6 +20029,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;
    }
}