summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartijn Coenen <maco@google.com>2015-04-17 07:25:21 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-17 07:25:21 +0000
commit46c6f9cf5ef0b881006da34c73b4622cff148abd (patch)
treee1977b6cb06b8b2e1aa740f4e0040044f2d55f27
parentea6c6c91450a21dae7a454c0496331a7282efa3b (diff)
parentb6b45036607b0d40ef4071183ca6a21d38a05783 (diff)
downloadandroid_packages_apps_Nfc-46c6f9cf5ef0b881006da34c73b4622cff148abd.tar.gz
android_packages_apps_Nfc-46c6f9cf5ef0b881006da34c73b4622cff148abd.tar.bz2
android_packages_apps_Nfc-46c6f9cf5ef0b881006da34c73b4622cff148abd.zip
am b6b45036: Merge "Expose peer LLCP version to apps."
* commit 'b6b45036607b0d40ef4071183ca6a21d38a05783': Expose peer LLCP version to apps.
-rw-r--r--nci/jni/PeerToPeer.cpp3
-rwxr-xr-xnci/src/com/android/nfc/dhimpl/NativeP2pDevice.java6
-rwxr-xr-xnxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java6
-rw-r--r--src/com/android/nfc/DeviceHost.java2
-rwxr-xr-xsrc/com/android/nfc/NfcService.java4
-rwxr-xr-xsrc/com/android/nfc/P2pLinkManager.java9
6 files changed, 24 insertions, 6 deletions
diff --git a/nci/jni/PeerToPeer.cpp b/nci/jni/PeerToPeer.cpp
index 8940264d..17d252cc 100644
--- a/nci/jni/PeerToPeer.cpp
+++ b/nci/jni/PeerToPeer.cpp
@@ -337,6 +337,9 @@ void PeerToPeer::llcpActivatedHandler (nfc_jni_native_data* nat, tNFA_LLCP_ACTIV
ALOGD ("%s: p2p target", fn);
e->SetIntField(tag.get(), f, (jint) MODE_P2P_TARGET);
}
+ /* Set LLCP version */
+ f = e->GetFieldID(tag_cls.get(), "mLlcpVersion", "B");
+ e->SetByteField(tag.get(), f, (jbyte) activated.remote_version);
/* Set tag handle */
f = e->GetFieldID(tag_cls.get(), "mHandle", "I");
diff --git a/nci/src/com/android/nfc/dhimpl/NativeP2pDevice.java b/nci/src/com/android/nfc/dhimpl/NativeP2pDevice.java
index 094f46a5..34ef1386 100755
--- a/nci/src/com/android/nfc/dhimpl/NativeP2pDevice.java
+++ b/nci/src/com/android/nfc/dhimpl/NativeP2pDevice.java
@@ -29,6 +29,8 @@ public class NativeP2pDevice implements NfcDepEndpoint {
private byte[] mGeneralBytes;
+ private byte mLlcpVersion;
+
private native byte[] doReceive();
@Override
public byte[] receive() {
@@ -74,4 +76,8 @@ public class NativeP2pDevice implements NfcDepEndpoint {
return mGeneralBytes;
}
+ @Override
+ public byte getLlcpVersion() {
+ return mLlcpVersion;
+ }
}
diff --git a/nxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java b/nxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java
index 094f46a5..143f6586 100755
--- a/nxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java
+++ b/nxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java
@@ -27,6 +27,8 @@ public class NativeP2pDevice implements NfcDepEndpoint {
private int mMode;
+ private byte mLlcpVersion;
+
private byte[] mGeneralBytes;
private native byte[] doReceive();
@@ -74,4 +76,8 @@ public class NativeP2pDevice implements NfcDepEndpoint {
return mGeneralBytes;
}
+ @Override
+ public byte getLlcpVersion() {
+ return mLlcpVersion;
+ }
}
diff --git a/src/com/android/nfc/DeviceHost.java b/src/com/android/nfc/DeviceHost.java
index 07710119..21d720e1 100644
--- a/src/com/android/nfc/DeviceHost.java
+++ b/src/com/android/nfc/DeviceHost.java
@@ -116,6 +116,8 @@ public interface DeviceHost {
public int getMode();
public byte[] getGeneralBytes();
+
+ public byte getLlcpVersion();
}
public interface LlcpSocket {
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index 911daf9a..a7a7a506 100755
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -1864,7 +1864,7 @@ public class NfcService implements DeviceHostListener {
// Register P2P device
mObjectMap.put(device.getHandle(), device);
}
- mP2pLinkManager.onLlcpActivated();
+ mP2pLinkManager.onLlcpActivated(device.getLlcpVersion());
return true;
} else {
/* should not happen */
@@ -1893,7 +1893,7 @@ public class NfcService implements DeviceHostListener {
// Register P2P device
mObjectMap.put(device.getHandle(), device);
}
- mP2pLinkManager.onLlcpActivated();
+ mP2pLinkManager.onLlcpActivated(device.getLlcpVersion());
return true;
}
} else {
diff --git a/src/com/android/nfc/P2pLinkManager.java b/src/com/android/nfc/P2pLinkManager.java
index 13c65ef9..c9d0caed 100755
--- a/src/com/android/nfc/P2pLinkManager.java
+++ b/src/com/android/nfc/P2pLinkManager.java
@@ -244,6 +244,7 @@ class P2pLinkManager implements Handler.Callback, P2pEventListener.Callback {
boolean mLlcpServicesConnected;
boolean mLlcpConnectDelayed;
long mLastLlcpActivationTime;
+ byte mPeerLlcpVersion;
public P2pLinkManager(Context context, HandoverDataParser handoverDataParser, int defaultMiu,
int defaultRwSize) {
@@ -357,15 +358,15 @@ class P2pLinkManager implements Handler.Callback, P2pEventListener.Callback {
/**
* Must be called on UI Thread.
*/
- public void onLlcpActivated() {
+ public void onLlcpActivated(byte peerLlcpVersion) {
Log.i(TAG, "LLCP activated");
-
synchronized (P2pLinkManager.this) {
if (mEchoServer != null) {
mEchoServer.onLlcpActivated();
}
mLastLlcpActivationTime = SystemClock.elapsedRealtime();
mLlcpConnectDelayed = false;
+ mPeerLlcpVersion = peerLlcpVersion;
switch (mLinkState) {
case LINK_STATE_DOWN:
if (DBG) Log.d(TAG, "onP2pInRange()");
@@ -479,7 +480,7 @@ class P2pLinkManager implements Handler.Callback, P2pEventListener.Callback {
if (mCallbackNdef != null) {
if (foregroundUids.contains(mNdefCallbackUid)) {
try {
- BeamShareData shareData = mCallbackNdef.createBeamShareData();
+ BeamShareData shareData = mCallbackNdef.createBeamShareData(mPeerLlcpVersion);
mMessageToSend = shareData.ndefMessage;
mUrisToSend = shareData.uris;
mUserHandle = shareData.userHandle;
@@ -1033,7 +1034,7 @@ class P2pLinkManager implements Handler.Callback, P2pEventListener.Callback {
mEventListener.onP2pSendComplete();
if (mCallbackNdef != null) {
try {
- mCallbackNdef.onNdefPushComplete();
+ mCallbackNdef.onNdefPushComplete(mPeerLlcpVersion);
} catch (Exception e) {
Log.e(TAG, "Failed NDEF completed callback: " + e.getMessage());
}