Update dm_disc_poll/listen_mask_dfl in nfa_dm_act_change_discovery_tech()

nfa_dm_get_tech_route_block() is called before
nfa_dm_get_rf_discover_config(), meaning the value of
dm_disc_poll/listen_mask_dfl might not be up to date when used.

Bug: 374687433
Test: manual
Change-Id: I45df200a0bc078372177b7bdd648d58afc6908ae
diff --git a/libnfc-nci/src/nfa/dm/nfa_dm_act.cc b/libnfc-nci/src/nfa/dm/nfa_dm_act.cc
index dd4ec60..7afcafb 100644
--- a/libnfc-nci/src/nfa/dm/nfa_dm_act.cc
+++ b/libnfc-nci/src/nfa/dm/nfa_dm_act.cc
@@ -50,6 +50,9 @@
 #define NFA_DM_DISABLE_TIMEOUT_VAL 1000
 #endif
 
+extern tNFA_TECHNOLOGY_MASK dm_disc_listen_mask_dfl;
+extern tNFA_TECHNOLOGY_MASK dm_disc_poll_mask_dfl;
+
 static void nfa_dm_set_init_nci_params(void);
 static tNFA_STATUS nfa_dm_start_polling(void);
 static bool nfa_dm_deactivate_polling(void);
@@ -1724,6 +1727,22 @@
   nfa_dm_cb.change_poll_mask = p_data->change_discovery_tech.change_poll_mask;
   nfa_dm_cb.change_listen_mask =
       p_data->change_discovery_tech.change_listen_mask;
+
+  if (nfa_dm_cb.flags & NFA_DM_FLAGS_DEFAULT_TECH_CHANGED) {
+    if (nfa_dm_cb.flags & NFA_DM_FLAGS_LISTEN_TECH_CHANGED) {
+      dm_disc_listen_mask_dfl = nfa_dm_cb.change_listen_mask;
+    } else if (nfa_dm_cb.change_listen_mask == 0xff) {
+      dm_disc_listen_mask_dfl = 0;
+    }
+    LOG(DEBUG) << StringPrintf("%s; dm_disc_listen_mask_dfl: 0x%x", __func__,
+                               dm_disc_listen_mask_dfl);
+    if (nfa_dm_cb.flags & NFA_DM_FLAGS_POLL_TECH_CHANGED) {
+      dm_disc_poll_mask_dfl = nfa_dm_cb.change_poll_mask;
+    } else if (nfa_dm_cb.change_poll_mask == 0xff) {
+      dm_disc_poll_mask_dfl = 0;
+    }
+  }
+
   evt_data.status = NFA_STATUS_OK;
   nfa_dm_conn_cback_event_notify(NFA_LISTEN_ENABLED_EVT, &evt_data);
 
diff --git a/libnfc-nci/src/nfa/dm/nfa_dm_discover.cc b/libnfc-nci/src/nfa/dm/nfa_dm_discover.cc
index 13fa63d..285b090 100644
--- a/libnfc-nci/src/nfa/dm/nfa_dm_discover.cc
+++ b/libnfc-nci/src/nfa/dm/nfa_dm_discover.cc
@@ -68,8 +68,8 @@
 /*
 ** static parameters
 */
-static tNFA_TECHNOLOGY_MASK dm_disc_listen_mask_dfl = 0;
-static tNFA_TECHNOLOGY_MASK dm_disc_poll_mask_dfl = 0;
+tNFA_TECHNOLOGY_MASK dm_disc_listen_mask_dfl = 0;
+tNFA_TECHNOLOGY_MASK dm_disc_poll_mask_dfl = 0;
 
 tNFA_DM_DISC_TECH_PROTO_MASK nfa_dm_change_listen_mask(
     tNFA_DM_DISC_TECH_PROTO_MASK dm_disc_mask,
@@ -162,19 +162,6 @@
     dm_disc_mask &= NFA_DM_DISC_MASK_POLL;
   }
 
-  if (nfa_dm_cb.flags & NFA_DM_FLAGS_DEFAULT_TECH_CHANGED) {
-    if (nfa_dm_cb.flags & NFA_DM_FLAGS_LISTEN_TECH_CHANGED) {
-      dm_disc_listen_mask_dfl = nfa_dm_cb.change_listen_mask;
-    } else if (nfa_dm_cb.change_listen_mask == 0xff) {
-      dm_disc_listen_mask_dfl = 0;
-    }
-    if (nfa_dm_cb.flags & NFA_DM_FLAGS_POLL_TECH_CHANGED) {
-      dm_disc_poll_mask_dfl = nfa_dm_cb.change_poll_mask;
-    } else if (nfa_dm_cb.change_poll_mask == 0xff) {
-      dm_disc_poll_mask_dfl = 0;
-    }
-  }
-
   if (nfa_dm_cb.flags & NFA_DM_FLAGS_LISTEN_TECH_CHANGED) {
     dm_disc_mask =
         nfa_dm_change_listen_mask(dm_disc_mask, nfa_dm_cb.change_listen_mask);