Merge "Register AGPS request event after SSR" into pi-dev
diff --git a/msm8998/gnss/GnssAdapter.cpp b/msm8998/gnss/GnssAdapter.cpp
index e14cf28..1896108 100644
--- a/msm8998/gnss/GnssAdapter.cpp
+++ b/msm8998/gnss/GnssAdapter.cpp
@@ -64,7 +64,8 @@
mControlCallbacks(),
mPowerVoteId(0),
mNiData(),
- mAgpsManager()
+ mAgpsManager(),
+ mAgpsInitialized(false)
{
LOC_LOGD("%s]: Constructor %p", __func__, this);
mUlpPositionMode.mode = LOC_POSITION_MODE_INVALID;
@@ -1004,6 +1005,9 @@
mask |= LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT;
}
}
+ if (true == getAgpsInitialized()) {
+ mask |= LOC_API_ADAPTER_BIT_LOCATION_SERVER_REQUEST;
+ }
updateEvtMask(mask, LOC_REGISTRATION_MASK_SET);
}
@@ -2392,6 +2396,7 @@
mAgpsManager->createAgpsStateMachines();
+ mAdapter.setAgpsInitialized(true);
/* Register for AGPS event mask */
mAdapter.updateEvtMask(LOC_API_ADAPTER_BIT_LOCATION_SERVER_REQUEST,
LOC_REGISTRATION_MASK_ENABLED);
diff --git a/msm8998/gnss/GnssAdapter.h b/msm8998/gnss/GnssAdapter.h
index d857558..e8cebd5 100644
--- a/msm8998/gnss/GnssAdapter.h
+++ b/msm8998/gnss/GnssAdapter.h
@@ -99,6 +99,7 @@
/* ==== AGPS ========================================================*/
// This must be initialized via initAgps()
AgpsManager mAgpsManager;
+ bool mAgpsInitialized;
/*==== CONVERSION ===================================================================*/
static void convertOptions(LocPosMode& out, const LocationOptions& options);
@@ -191,6 +192,8 @@
const char* apnName, int apnLen, LocApnIpType ipType);
void dataConnClosedCommand(AGpsExtType agpsType);
void dataConnFailedCommand(AGpsExtType agpsType);
+ inline void setAgpsInitialized(bool value) { mAgpsInitialized = value; }
+ inline bool getAgpsInitialized() { return mAgpsInitialized; }
/* ======== RESPONSES ================================================================== */
void reportResponse(LocationError err, uint32_t sessionId);