diff options
Diffstat (limited to 'gnss/GnssAdapter.cpp')
-rw-r--r-- | gnss/GnssAdapter.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp index 31cd886..a6d82bf 100644 --- a/gnss/GnssAdapter.cpp +++ b/gnss/GnssAdapter.cpp @@ -3409,16 +3409,20 @@ GnssAdapter::requestNiNotifyEvent(const GnssNiNotification ¬ify, const void* mNotify(notify), mData(data) {} inline virtual void proc() const { - if (GNSS_NI_TYPE_EMERGENCY_SUPL == mNotify.type || - GNSS_NI_TYPE_CONTROL_PLANE == mNotify.type) { + if (GNSS_NI_TYPE_EMERGENCY_SUPL == mNotify.type) { if (mAdapter.getE911State() || - ((GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_NO == ContextBase::mGps_conf.SUPL_ES) && - (GNSS_NI_TYPE_EMERGENCY_SUPL == mNotify.type))) { + (GNSS_CONFIG_SUPL_EMERGENCY_SERVICES_NO == ContextBase::mGps_conf.SUPL_ES)) { mApi.informNiResponse(GNSS_NI_RESPONSE_ACCEPT, mData); - } - else { + } else { mApi.informNiResponse(GNSS_NI_RESPONSE_DENY, mData); } + } else if (GNSS_NI_TYPE_CONTROL_PLANE == mNotify.type) { + if (mAdapter.getE911State() && + (1 == ContextBase::mGps_conf.CP_MTLR_ES)) { + mApi.informNiResponse(GNSS_NI_RESPONSE_ACCEPT, mData); + } else { + mAdapter.requestNiNotify(mNotify, mData); + } } else { mAdapter.requestNiNotify(mNotify, mData); } |