OSDN Git Service

DO NOT MERGE - SUPL ES Extension - Safer Init and Not After Boot
authorWyattRiley <wyattriley@google.com>
Thu, 28 Feb 2019 20:05:56 +0000 (12:05 -0800)
committerManjae Park <manjaepark@google.com>
Wed, 13 Mar 2019 02:33:49 +0000 (19:33 -0700)
Safe order of pointer setting and background thread start
Verifying mCallEndElapsedRealtimeMillis is not the initial value

Bug: 112159033
Bug: 115361555
Bug: 125124724
Test: Verified not-after-boot with test code b/115361555#comment14
Test: Reproed NPE with test thread sleep and verify fix
Change-Id: I25dcd5a5b36c218ea8b7ab88d6909382709fd7ab
(cherry picked from commit fbcb41f9fbc4e91e023f3103a391182600312ef7)

location/java/com/android/internal/location/GpsNetInitiatedHandler.java
services/core/java/com/android/server/location/GnssLocationProvider.java

index 9bd5994..35562cd 100644 (file)
@@ -16,8 +16,6 @@
 
 package com.android.internal.location;
 
-import java.io.UnsupportedEncodingException;
-
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -25,21 +23,21 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.location.LocationManager;
 import android.location.INetInitiatedListener;
-import android.telephony.TelephonyManager;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.PhoneStateListener;
+import android.location.LocationManager;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.os.UserHandle;
 import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
 import android.util.Log;
-
-import com.android.internal.notification.SystemNotificationChannels;
 import com.android.internal.R;
+import com.android.internal.notification.SystemNotificationChannels;
 import com.android.internal.telephony.GsmAlphabet;
 import com.android.internal.telephony.TelephonyProperties;
+import java.io.UnsupportedEncodingException;
 
 /**
  * A GPS Network-initiated Handler class used by LocationManager.
index 8d730b4..a3749d7 100644 (file)
@@ -799,12 +799,11 @@ public class GnssLocationProvider implements LocationProviderInterface, InjectNt
         // while IO initialization and registration is delegated to our internal handler
         // this approach is just fine because events are posted to our handler anyway
         mProperties = new Properties();
-        sendMessage(INITIALIZE_HANDLER, 0, null);
-
-        // Create a GPS net-initiated handler.
+        // Create a GPS net-initiated handler (also needed by handleInitialize)
         mNIHandler = new GpsNetInitiatedHandler(context,
                 mNetInitiatedListener,
                 mSuplEsEnabled);
+        sendMessage(INITIALIZE_HANDLER, 0, null);
 
         mListenerHelper = new GnssStatusListenerHelper(mHandler) {
             @Override