Emergency SUPL when location is disabled

A cycle of native_init() and native_cleanup() is needed so that
callbacks are registered after bootup even when location is disabled.
This will allow Emergency SUPL to work even when location is disabled
before device restart.

Merged-In: I423d5a7142709fc0579be009bb8b14d3778aa090

BUG:38362097

Change-Id: I423d5a7142709fc0579be009bb8b14d3778aa090
(cherry picked from commit 9be64f128de20ca617297dabc2dbb56248361b03)
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index 3fd91dc..20711c0 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -778,6 +778,18 @@
                 return isEnabled();
             }
         };
+
+        /*
+        * A cycle of native_init() and native_cleanup() is needed so that callbacks are registered
+        * after bootup even when location is disabled. This will allow Emergency SUPL to work even
+        * when location is disabled before device restart.
+        * */
+        boolean isInitialized = native_init();
+        if(!isInitialized) {
+            Log.d(TAG, "Failed to initialize at bootup");
+        } else {
+            native_cleanup();
+        }
     }
 
     /**