Snap for 4818534 from a2ea959366a264fffb4ee8254015d90161e93cd2 to pi-release
Change-Id: I05fc6c44e49f6e93ff06620c80c2bbb986d90a7f
diff --git a/nci/jni/NativeNfcManager.cpp b/nci/jni/NativeNfcManager.cpp
index a112501..6f3c569 100755
--- a/nci/jni/NativeNfcManager.cpp
+++ b/nci/jni/NativeNfcManager.cpp
@@ -907,7 +907,13 @@
**
*******************************************************************************/
static jboolean nfcManager_commitRouting(JNIEnv* e, jobject) {
- return RoutingManager::getInstance().commitRouting();
+ if (sRfEnabled) {
+ /*Update routing table only in Idle state.*/
+ startRfDiscovery(false);
+ }
+ jboolean commitStatus = RoutingManager::getInstance().commitRouting();
+ startRfDiscovery(true);
+ return commitStatus;
}
/*******************************************************************************
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp
index cc37431..ba2e3ab 100755
--- a/nci/jni/RoutingManager.cpp
+++ b/nci/jni/RoutingManager.cpp
@@ -84,6 +84,9 @@
}
}
+ mOffHostAidRoutingPowerState =
+ NfcConfig::getUnsigned(NAME_OFFHOST_AID_ROUTE_PWR_STATE, 0x01);
+
memset(&mEeInfo, 0, sizeof(mEeInfo));
mReceivedEeInfo = false;
mSeTechMask = 0x00;
@@ -143,6 +146,8 @@
(eeHandle == (mDefaultOffHostRoute | NFA_HANDLE_GROUP_EE))) {
if (mEeInfo.ee_disc_info[i].la_protocol != 0)
seTechMask |= NFA_TECHNOLOGY_MASK_A;
+ if (mEeInfo.ee_disc_info[i].lb_protocol != 0)
+ seTechMask |= NFA_TECHNOLOGY_MASK_B;
}
if ((mDefaultFelicaRoute != 0) &&
(eeHandle == (mDefaultFelicaRoute | NFA_HANDLE_GROUP_EE))) {
@@ -359,8 +364,10 @@
int route, int aidInfo) {
static const char fn[] = "RoutingManager::addAidRouting";
DLOG_IF(INFO, nfc_debug_enabled) << StringPrintf("%s: enter", fn);
+ uint8_t powerState =
+ (route == mDefaultOffHostRoute) ? mOffHostAidRoutingPowerState : 0x01;
tNFA_STATUS nfaStat =
- NFA_EeAddAidRouting(route, aidLen, (uint8_t*)aid, 0x01, aidInfo);
+ NFA_EeAddAidRouting(route, aidLen, (uint8_t*)aid, powerState, aidInfo);
if (nfaStat == NFA_STATUS_OK) {
DLOG_IF(INFO, nfc_debug_enabled) << StringPrintf("%s: routed AID", fn);
return true;
diff --git a/nci/jni/RoutingManager.h b/nci/jni/RoutingManager.h
index 843d490..2d3f315 100755
--- a/nci/jni/RoutingManager.h
+++ b/nci/jni/RoutingManager.h
@@ -89,6 +89,7 @@
uint16_t mDefaultSysCode;
uint16_t mDefaultSysCodeRoute;
uint8_t mDefaultSysCodePowerstate;
+ uint8_t mOffHostAidRoutingPowerState;
bool mReceivedEeInfo;
tNFA_EE_CBACK_DATA mCbEventData;
tNFA_EE_DISCOVER_REQ mEeInfo;