Fix incorrect error code in case of invalid file identifier
diff --git a/nci/SN100x/jni/NativeT4tNfcee.cpp b/nci/SN100x/jni/NativeT4tNfcee.cpp
index e428d19..5cd51a1 100644
--- a/nci/SN100x/jni/NativeT4tNfcee.cpp
+++ b/nci/SN100x/jni/NativeT4tNfcee.cpp
@@ -114,13 +114,16 @@
if (mT4tNfcEeRWEvent.wait(T4TNFCEE_TIMEOUT) == false)
t4tWriteReturn = STATUS_FAILED;
else {
- if (mWriteStatus == NFA_STATUS_OK) {
+ if (mT4tOpStatus == NFA_STATUS_OK) {
/*if status is success then return length of data written*/
t4tWriteReturn = mReadData.len;
- } else if (mWriteStatus == NFA_STATUS_REJECTED) {
+ } else if (mT4tOpStatus == NFA_STATUS_REJECTED) {
t4tWriteReturn = ERROR_NDEF_VALIDATION_FAILED;
- } else
+ } else if (mT4tOpStatus == NFA_T4T_STATUS_INVALID_FILE_ID){
+ t4tWriteReturn = ERROR_INVALID_FILE_ID;
+ } else {
t4tWriteReturn = STATUS_FAILED;
+ }
}
}
}
@@ -191,7 +194,7 @@
__func__);
}
sRxDataBuffer.clear();
- } else {
+ } else if (mT4tOpStatus == NFA_T4T_STATUS_INVALID_FILE_ID){
char data[1] = {0xFF};
result.reset(e->NewByteArray(0x01));
e->SetByteArrayRegion(result.get(), 0, 0x01, (jbyte*)data);
@@ -356,7 +359,7 @@
**
*******************************************************************************/
void NativeT4tNfcee::t4tReadComplete(tNFA_STATUS status, tNFA_RX_DATA data) {
-
+ mT4tOpStatus = status;
if (status == NFA_STATUS_OK) {
if(data.len > 0) {
sRxDataBuffer.append(data.p_data, data.len);
@@ -381,7 +384,7 @@
mReadData.len = 0x00;
DLOG_IF(INFO, nfc_debug_enabled) << StringPrintf("%s: Enter", __func__);
if (status == NFA_STATUS_OK) mReadData.len = data.len;
- mWriteStatus = status;
+ mT4tOpStatus = status;
SyncEventGuard g(mT4tNfcEeRWEvent);
mT4tNfcEeRWEvent.notifyOne();
}
diff --git a/nci/SN100x/jni/NativeT4tNfcee.h b/nci/SN100x/jni/NativeT4tNfcee.h
index 77c7575..64412ed 100644
--- a/nci/SN100x/jni/NativeT4tNfcee.h
+++ b/nci/SN100x/jni/NativeT4tNfcee.h
@@ -179,7 +179,7 @@
SyncEvent mT4tNfcEeWriteEvent;
SyncEvent mT4tNfcEeEvent;
tNFA_RX_DATA mReadData;
- tNFA_STATUS mWriteStatus;
+ tNFA_STATUS mT4tOpStatus;
tNFA_STATUS mT4tNfcEeEventStat = NFA_STATUS_FAILED;
std::basic_string<uint8_t> sRxDataBuffer;
NativeT4tNfcee();