summaryrefslogtreecommitdiffstats
path: root/nxp
diff options
context:
space:
mode:
Diffstat (limited to 'nxp')
-rw-r--r--nxp/jni/com_android_nfc_NativeNfcManager.cpp80
-rwxr-xr-xnxp/src/com/android/nfc/dhimpl/NativeNfcManager.java39
2 files changed, 34 insertions, 85 deletions
diff --git a/nxp/jni/com_android_nfc_NativeNfcManager.cpp b/nxp/jni/com_android_nfc_NativeNfcManager.cpp
index 27061c57..489a615b 100644
--- a/nxp/jni/com_android_nfc_NativeNfcManager.cpp
+++ b/nxp/jni/com_android_nfc_NativeNfcManager.cpp
@@ -1356,7 +1356,7 @@ static void com_android_nfc_NfcManager_disableDiscovery(JNIEnv *e, jobject o)
// TODO: use enable_lptd
static void com_android_nfc_NfcManager_enableDiscovery(JNIEnv *e, jobject o, jint modes,
- jboolean enable_lptd)
+ jboolean, jboolean reader_mode, jboolean restart)
{
NFCSTATUS ret;
struct nfc_jni_native_data *nat;
@@ -1387,17 +1387,30 @@ static void com_android_nfc_NfcManager_enableDiscovery(JNIEnv *e, jobject o, jin
nat->registry_info.NFC==TRUE?"P2P":"",
nat->registry_info.ISO15693==TRUE?"R":"", ret);
+ if (modes != 0)
+ {
+ if (reader_mode)
+ {
+ nat->p2p_initiator_modes = 0;
+ nat->p2p_target_modes = 0;
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = TRUE;
+ nat->discovery_cfg.Duration = 200000; /* in ms */
+ }
+ else
+ {
+ nat->p2p_initiator_modes = phNfc_eP2P_ALL;
+ nat->p2p_target_modes = 0x0E; // All passive except 106, active
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = FALSE;
+ nat->discovery_cfg.Duration = 300000; /* in ms */
+ }
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A = (modes & 0x01) != 0;
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B = (modes & 0x02) != 0;
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212 = (modes & 0x04) != 0;
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424 = (modes & 0x04) != 0;
+ nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = (modes & 0x08) != 0;
+ }
- if (modes != 0)
- {
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A = (modes & 0x01) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B = (modes & 0x02) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212 = (modes & 0x04) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424 = (modes & 0x04) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = (modes & 0x08) != 0;
- }
-
- nfc_jni_start_discovery_locked(nat, false);
+ nfc_jni_start_discovery_locked(nat, restart);
clean_and_return:
CONCURRENCY_UNLOCK();
}
@@ -2196,43 +2209,6 @@ static void com_android_nfc_NfcManager_doAbort(JNIEnv*, jobject)
emergency_recovery(NULL);
}
-static void com_android_nfc_NfcManager_doEnableReaderMode(JNIEnv *e, jobject o,
- jint modes)
-{
- struct nfc_jni_native_data *nat = NULL;
- nat = nfc_jni_get_nat(e, o);
- CONCURRENCY_LOCK();
- nat->p2p_initiator_modes = 0;
- nat->p2p_target_modes = 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = TRUE;
- nat->discovery_cfg.Duration = 200000; /* in ms */
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A = (modes & 0x01) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B = (modes & 0x02) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212 = (modes & 0x04) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424 = (modes & 0x04) != 0;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = (modes & 0x08) != 0;
- nfc_jni_start_discovery_locked(nat, FALSE);
- CONCURRENCY_UNLOCK();
-}
-
-static void com_android_nfc_NfcManager_doDisableReaderMode(JNIEnv *e, jobject o)
-{
- struct nfc_jni_native_data *nat = NULL;
- nat = nfc_jni_get_nat(e, o);
- CONCURRENCY_LOCK();
- nat->p2p_initiator_modes = phNfc_eP2P_ALL;
- nat->p2p_target_modes = 0x0E; // All passive except 106, active
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = FALSE;
- nat->discovery_cfg.Duration = 300000; /* in ms */
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443A = TRUE;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso14443B = TRUE;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica212 = TRUE;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableFelica424 = TRUE;
- nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = TRUE;
- nfc_jni_start_discovery_locked(nat, FALSE);
- CONCURRENCY_UNLOCK();
-}
-
static void com_android_nfc_NfcManager_doSetP2pInitiatorModes(JNIEnv *e, jobject o,
jint modes)
{
@@ -2383,7 +2359,7 @@ static JNINativeMethod gMethods[] =
{"doDeinitialize", "()Z",
(void *)com_android_nfc_NfcManager_deinitialize},
- {"enableDiscovery", "(IZ)V",
+ {"doEnableDiscovery", "(IZZZ)V",
(void *)com_android_nfc_NfcManager_enableDiscovery},
{"doCheckLlcp", "()Z",
@@ -2425,12 +2401,6 @@ static JNINativeMethod gMethods[] =
{"doSetP2pTargetModes","(I)V",
(void *)com_android_nfc_NfcManager_doSetP2pTargetModes},
- {"doEnableReaderMode","(I)V",
- (void *)com_android_nfc_NfcManager_doEnableReaderMode},
-
- {"doDisableReaderMode","()V",
- (void *)com_android_nfc_NfcManager_doDisableReaderMode},
-
{"doDump", "()Ljava/lang/String;",
(void *)com_android_nfc_NfcManager_doDump},
};
diff --git a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
index a69e3b53..9d2ebeae 100755
--- a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
+++ b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java
@@ -27,6 +27,7 @@ import android.nfc.ErrorCodes;
import android.nfc.tech.Ndef;
import android.nfc.tech.TagTechnology;
import android.util.Log;
+import com.android.nfc.NfcDiscoveryParameters;
import java.io.File;
@@ -151,23 +152,18 @@ public class NativeNfcManager implements DeviceHost {
return false;
}
+ private native void doEnableDiscovery(int techMask,
+ boolean enableLowPowerPolling,
+ boolean enableReaderMode,
+ boolean restart);
@Override
- public native void enableDiscovery(int techMask, boolean enableLowPowerDiscovery);
-
- @Override
- public native void disableDiscovery();
-
- @Override
- public void enableRoutingToHost()
- {
-
+ public void enableDiscovery(NfcDiscoveryParameters params, boolean restart) {
+ doEnableDiscovery(params.getTechMask(), params.shouldEnableLowPowerDiscovery(),
+ params.shouldEnableReaderMode(), restart);
}
@Override
- public void disableRoutingToHost()
- {
-
- }
+ public native void disableDiscovery();
private native NativeLlcpConnectionlessSocket doCreateLlcpConnectionlessSocket(int nSap,
String sn);
@@ -315,18 +311,6 @@ public class NativeNfcManager implements DeviceHost {
doSetP2pTargetModes(modes);
}
- private native void doEnableReaderMode(int technologies);
- public boolean enableReaderMode(int technologies) {
- doEnableReaderMode(technologies);
- return true;
- }
-
- private native void doDisableReaderMode();
- public boolean disableReaderMode() {
- doDisableReaderMode();
- return true;
- }
-
@Override
public boolean enableScreenOffSuspend() {
// Snooze mode not supported on NXP silicon
@@ -348,11 +332,6 @@ public class NativeNfcManager implements DeviceHost {
}
@Override
- public boolean enablePN544Quirks() {
- return true;
- }
-
- @Override
public int getDefaultLlcpMiu() {
return DEFAULT_LLCP_MIU;
}