diff options
author | Martijn Coenen <maco@google.com> | 2015-04-17 07:25:21 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-17 07:25:21 +0000 |
commit | 46c6f9cf5ef0b881006da34c73b4622cff148abd (patch) | |
tree | e1977b6cb06b8b2e1aa740f4e0040044f2d55f27 | |
parent | ea6c6c91450a21dae7a454c0496331a7282efa3b (diff) | |
parent | b6b45036607b0d40ef4071183ca6a21d38a05783 (diff) | |
download | android_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.cpp | 3 | ||||
-rwxr-xr-x | nci/src/com/android/nfc/dhimpl/NativeP2pDevice.java | 6 | ||||
-rwxr-xr-x | nxp/src/com/android/nfc/dhimpl/NativeP2pDevice.java | 6 | ||||
-rw-r--r-- | src/com/android/nfc/DeviceHost.java | 2 | ||||
-rwxr-xr-x | src/com/android/nfc/NfcService.java | 4 | ||||
-rwxr-xr-x | src/com/android/nfc/P2pLinkManager.java | 9 |
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()); } |