summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJizhou Liao <Jizhou.Liao@nxp.com>2015-08-24 09:57:49 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-08-24 09:57:49 +0000
commitfb015c0d8129c15e3a4e5c54fad9a767650b76f0 (patch)
tree00cd4491393bb23b77209ec0c709c589d4321ac4
parent91c48c5daebeac318d76d130d938d045ed34b0f7 (diff)
parente66316f6bdcd8932019a08019aa7283bb6a89f29 (diff)
downloadandroid_packages_apps_Nfc-fb015c0d8129c15e3a4e5c54fad9a767650b76f0.tar.gz
android_packages_apps_Nfc-fb015c0d8129c15e3a4e5c54fad9a767650b76f0.tar.bz2
android_packages_apps_Nfc-fb015c0d8129c15e3a4e5c54fad9a767650b76f0.zip
am e66316f6: am c5eec3c6: Fix peer-to-peer server register error if RF discovery is started.
* commit 'e66316f6bdcd8932019a08019aa7283bb6a89f29': Fix peer-to-peer server register error if RF discovery is started.
-rwxr-xr-xnci/jni/NativeNfcManager.cpp16
-rw-r--r--nci/jni/PeerToPeer.cpp13
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;
}