Merge "Call OffHostAidSelected only when RF_NFCEE_ACTION_NTF is triggered with AID" into main
diff --git a/NfcNci/nci/src/com/android/nfc/dhimpl/NativeNfcManager.java b/NfcNci/nci/src/com/android/nfc/dhimpl/NativeNfcManager.java
index 77e81a5..d525e8a 100644
--- a/NfcNci/nci/src/com/android/nfc/dhimpl/NativeNfcManager.java
+++ b/NfcNci/nci/src/com/android/nfc/dhimpl/NativeNfcManager.java
@@ -532,21 +532,21 @@
Log.i(TAG, "notifyEeAidSelected: AID= " + HexFormat.of().formatHex(aid) + " selected by "
+ eventSrc);
if (com.android.nfc.flags.Flags.eeAidSelect()) {
- mListener.onSeSelected();
+ mListener.onSeSelected(NfcService.SE_SELECTED_AID);
}
}
private void notifyEeProtocolSelected(int protocol, String eventSrc) {
Log.i(TAG, "notifyEeProtocolSelected: Protocol: " + protocol + " selected by " + eventSrc);
if (com.android.nfc.flags.Flags.eeAidSelect()) {
- mListener.onSeSelected();
+ mListener.onSeSelected(NfcService.SE_SELECTED_PROTOCOL);
}
}
private void notifyEeTechSelected(int tech, String eventSrc) {
Log.i(TAG, "notifyEeTechSelected: Tech: " + tech + " selected by " + eventSrc);
if (com.android.nfc.flags.Flags.eeAidSelect()) {
- mListener.onSeSelected();
+ mListener.onSeSelected(NfcService.SE_SELECTED_TECH);
}
}
diff --git a/NfcNci/src/com/android/nfc/DeviceHost.java b/NfcNci/src/com/android/nfc/DeviceHost.java
index 35df1bc..815bd90 100644
--- a/NfcNci/src/com/android/nfc/DeviceHost.java
+++ b/NfcNci/src/com/android/nfc/DeviceHost.java
@@ -64,7 +64,7 @@
public void onEeListenActivated(boolean isActivated);
- public void onSeSelected();
+ public void onSeSelected(int type);
public void onCommandTimeout();
diff --git a/NfcNci/src/com/android/nfc/NfcService.java b/NfcNci/src/com/android/nfc/NfcService.java
index 91833d9..4397aab 100644
--- a/NfcNci/src/com/android/nfc/NfcService.java
+++ b/NfcNci/src/com/android/nfc/NfcService.java
@@ -257,6 +257,11 @@
static final int TASK_ENABLE_ALWAYS_ON = 4;
static final int TASK_DISABLE_ALWAYS_ON = 5;
+ // SE selected types
+ public static final int SE_SELECTED_AID = 0x01;
+ public static final int SE_SELECTED_TECH = 0x02;
+ public static final int SE_SELECTED_PROTOCOL = 0x04;
+
// Polling technology masks
static final int NFC_POLL_A = 0x01;
static final int NFC_POLL_B = 0x02;
@@ -885,8 +890,8 @@
}
@Override
- public void onSeSelected() {
- sendMessage(MSG_SE_SELECTED_EVENT, null);
+ public void onSeSelected(int type) {
+ sendMessage(MSG_SE_SELECTED_EVENT, type);
}
@Override
@@ -5241,7 +5246,8 @@
case MSG_SE_SELECTED_EVENT:
Log.d(TAG, "handleMessage: MSG_SE_SELECTED_EVENT");
- if (mCardEmulationManager != null) {
+ int type = (int) msg.obj;
+ if (mCardEmulationManager != null && type == SE_SELECTED_AID) {
mCardEmulationManager.onOffHostAidSelected();
}
break;
diff --git a/NfcNci/tests/unit/src/com/android/nfc/NfcServiceTest.java b/NfcNci/tests/unit/src/com/android/nfc/NfcServiceTest.java
index 22b18a9..98b53f1 100644
--- a/NfcNci/tests/unit/src/com/android/nfc/NfcServiceTest.java
+++ b/NfcNci/tests/unit/src/com/android/nfc/NfcServiceTest.java
@@ -1375,7 +1375,7 @@
@Test
public void testOnSeSelected() {
- mNfcService.onSeSelected();
+ mNfcService.onSeSelected(NfcService.SE_SELECTED_AID);
mLooper.dispatchAll();
verify(mCardEmulationManager).onOffHostAidSelected();
}