diff options
author | Jizhou Liao <Jizhou.Liao@nxp.com> | 2015-08-24 09:52:49 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-08-24 09:52:49 +0000 |
commit | e66316f6bdcd8932019a08019aa7283bb6a89f29 (patch) | |
tree | 4cfbc6083f3c76ec46a6c334952c744b616bae2f | |
parent | c132ac7230054cabf02634c0db44fcb43d3d77a0 (diff) | |
parent | c5eec3c659d60a469259340608d7403c73fd6865 (diff) | |
download | android_packages_apps_Nfc-e66316f6bdcd8932019a08019aa7283bb6a89f29.tar.gz android_packages_apps_Nfc-e66316f6bdcd8932019a08019aa7283bb6a89f29.tar.bz2 android_packages_apps_Nfc-e66316f6bdcd8932019a08019aa7283bb6a89f29.zip |
am c5eec3c6: Fix peer-to-peer server register error if RF discovery is started.
* commit 'c5eec3c659d60a469259340608d7403c73fd6865':
Fix peer-to-peer server register error if RF discovery is started.
-rwxr-xr-x | nci/jni/NativeNfcManager.cpp | 16 | ||||
-rw-r--r-- | nci/jni/PeerToPeer.cpp | 13 |
2 files changed, 29 insertions, 0 deletions
diff --git a/nci/jni/NativeNfcManager.cpp b/nci/jni/NativeNfcManager.cpp index e08b42cc..fbf3cd2f 100755 --- a/nci/jni/NativeNfcManager.cpp +++ b/nci/jni/NativeNfcManager.cpp @@ -95,6 +95,7 @@ namespace android void doStartupConfig (); void startStopPolling (bool isStartPolling); void startRfDiscovery (bool isStart); + bool isDiscoveryStarted (); } @@ -1728,6 +1729,21 @@ void startRfDiscovery(bool isStart) /******************************************************************************* ** +** Function: isDiscoveryStarted +** +** Description: Indicates whether the discovery is started. +** +** Returns: True if discovery is started +** +*******************************************************************************/ +bool isDiscoveryStarted () +{ + return sRfEnabled; +} + + +/******************************************************************************* +** ** Function: doStartupConfig ** ** Description: Configure the NFC controller. diff --git a/nci/jni/PeerToPeer.cpp b/nci/jni/PeerToPeer.cpp index 17d252cc..da4cf30d 100644 --- a/nci/jni/PeerToPeer.cpp +++ b/nci/jni/PeerToPeer.cpp @@ -40,6 +40,8 @@ namespace android { extern void nativeNfcTag_registerNdefTypeHandler (); extern void nativeNfcTag_deregisterNdefTypeHandler (); + extern void startRfDiscovery (bool isStart); + extern bool isDiscoveryStarted (); } @@ -475,6 +477,7 @@ bool PeerToPeer::deregisterServer (tJNI_HANDLE jniHandle) ALOGD ("%s: enter; JNI handle: %u", fn, jniHandle); tNFA_STATUS nfaStat = NFA_STATUS_FAILED; sp<P2pServer> pSrv = NULL; + bool isPollingTempStopped = false; mMutex.lock(); if ((pSrv = findServerLocked (jniHandle)) == NULL) @@ -484,6 +487,11 @@ bool PeerToPeer::deregisterServer (tJNI_HANDLE jniHandle) return (false); } mMutex.unlock(); + if (isDiscoveryStarted ()) + { + isPollingTempStopped = true; + startRfDiscovery (false); + } { // Server does not call NFA_P2pDisconnect(), so unblock the accept() @@ -499,6 +507,11 @@ bool PeerToPeer::deregisterServer (tJNI_HANDLE jniHandle) removeServer (jniHandle); + if (isPollingTempStopped) + { + startRfDiscovery (true); + } + ALOGD ("%s: exit", fn); return true; } |