Merge "Expose peer LLCP version in NDEF callbacks."
This commit is contained in:
@@ -18445,6 +18445,7 @@ package android.nfc {
|
|||||||
|
|
||||||
public final class NfcEvent {
|
public final class NfcEvent {
|
||||||
field public final android.nfc.NfcAdapter nfcAdapter;
|
field public final android.nfc.NfcAdapter nfcAdapter;
|
||||||
|
field public final byte peerLlcpVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class NfcManager {
|
public final class NfcManager {
|
||||||
|
|||||||
@@ -20029,6 +20029,7 @@ package android.nfc {
|
|||||||
|
|
||||||
public final class NfcEvent {
|
public final class NfcEvent {
|
||||||
field public final android.nfc.NfcAdapter nfcAdapter;
|
field public final android.nfc.NfcAdapter nfcAdapter;
|
||||||
|
field public final byte peerLlcpVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class NfcManager {
|
public final class NfcManager {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import android.nfc.Tag;
|
|||||||
*/
|
*/
|
||||||
interface IAppCallback
|
interface IAppCallback
|
||||||
{
|
{
|
||||||
BeamShareData createBeamShareData();
|
BeamShareData createBeamShareData(byte peerLlcpVersion);
|
||||||
void onNdefPushComplete();
|
void onNdefPushComplete(byte peerLlcpVersion);
|
||||||
void onTagDiscovered(in Tag tag);
|
void onTagDiscovered(in Tag tag);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ public final class NfcActivityManager extends IAppCallback.Stub
|
|||||||
static final Boolean DBG = false;
|
static final Boolean DBG = false;
|
||||||
|
|
||||||
final NfcAdapter mAdapter;
|
final NfcAdapter mAdapter;
|
||||||
final NfcEvent mDefaultEvent; // cached NfcEvent (its currently always the same)
|
|
||||||
|
|
||||||
// All objects in the lists are protected by this
|
// All objects in the lists are protected by this
|
||||||
final List<NfcApplicationState> mApps; // Application(s) that have NFC state. Usually one
|
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;
|
mAdapter = adapter;
|
||||||
mActivities = new LinkedList<NfcActivityState>();
|
mActivities = new LinkedList<NfcActivityState>();
|
||||||
mApps = new ArrayList<NfcApplicationState>(1); // Android VM usually has 1 app
|
mApps = new ArrayList<NfcApplicationState>(1); // Android VM usually has 1 app
|
||||||
mDefaultEvent = new NfcEvent(mAdapter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enableReaderMode(Activity activity, ReaderCallback callback, int flags,
|
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 */
|
/** Callback from NFC service, usually on binder thread */
|
||||||
@Override
|
@Override
|
||||||
public BeamShareData createBeamShareData() {
|
public BeamShareData createBeamShareData(byte peerLlcpVersion) {
|
||||||
NfcAdapter.CreateNdefMessageCallback ndefCallback;
|
NfcAdapter.CreateNdefMessageCallback ndefCallback;
|
||||||
NfcAdapter.CreateBeamUrisCallback urisCallback;
|
NfcAdapter.CreateBeamUrisCallback urisCallback;
|
||||||
NdefMessage message;
|
NdefMessage message;
|
||||||
Activity activity;
|
Activity activity;
|
||||||
Uri[] uris;
|
Uri[] uris;
|
||||||
int flags;
|
int flags;
|
||||||
|
NfcEvent event = new NfcEvent(mAdapter, peerLlcpVersion);
|
||||||
synchronized (NfcActivityManager.this) {
|
synchronized (NfcActivityManager.this) {
|
||||||
NfcActivityState state = findResumedActivityState();
|
NfcActivityState state = findResumedActivityState();
|
||||||
if (state == null) return null;
|
if (state == null) return null;
|
||||||
@@ -375,10 +374,10 @@ public final class NfcActivityManager extends IAppCallback.Stub
|
|||||||
|
|
||||||
// Make callbacks without lock
|
// Make callbacks without lock
|
||||||
if (ndefCallback != null) {
|
if (ndefCallback != null) {
|
||||||
message = ndefCallback.createNdefMessage(mDefaultEvent);
|
message = ndefCallback.createNdefMessage(event);
|
||||||
}
|
}
|
||||||
if (urisCallback != null) {
|
if (urisCallback != null) {
|
||||||
uris = urisCallback.createBeamUris(mDefaultEvent);
|
uris = urisCallback.createBeamUris(event);
|
||||||
if (uris != null) {
|
if (uris != null) {
|
||||||
ArrayList<Uri> validUris = new ArrayList<Uri>();
|
ArrayList<Uri> validUris = new ArrayList<Uri>();
|
||||||
for (Uri uri : uris) {
|
for (Uri uri : uris) {
|
||||||
@@ -412,7 +411,7 @@ public final class NfcActivityManager extends IAppCallback.Stub
|
|||||||
|
|
||||||
/** Callback from NFC service, usually on binder thread */
|
/** Callback from NFC service, usually on binder thread */
|
||||||
@Override
|
@Override
|
||||||
public void onNdefPushComplete() {
|
public void onNdefPushComplete(byte peerLlcpVersion) {
|
||||||
NfcAdapter.OnNdefPushCompleteCallback callback;
|
NfcAdapter.OnNdefPushCompleteCallback callback;
|
||||||
synchronized (NfcActivityManager.this) {
|
synchronized (NfcActivityManager.this) {
|
||||||
NfcActivityState state = findResumedActivityState();
|
NfcActivityState state = findResumedActivityState();
|
||||||
@@ -420,10 +419,10 @@ public final class NfcActivityManager extends IAppCallback.Stub
|
|||||||
|
|
||||||
callback = state.onNdefPushCompleteCallback;
|
callback = state.onNdefPushCompleteCallback;
|
||||||
}
|
}
|
||||||
|
NfcEvent event = new NfcEvent(mAdapter, peerLlcpVersion);
|
||||||
// Make callback without lock
|
// Make callback without lock
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
callback.onNdefPushComplete(mDefaultEvent);
|
callback.onNdefPushComplete(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,14 @@ public final class NfcEvent {
|
|||||||
*/
|
*/
|
||||||
public final NfcAdapter nfcAdapter;
|
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.nfcAdapter = nfcAdapter;
|
||||||
|
this.peerLlcpVersion = peerLlcpVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user