Register AGPS request event after SSR

Bug: 111380734
Test: SUPL pass after SSR
Change-Id: I870e802de81dd81fb76eafa23116a98b82b8090a
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);