Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46db504d authored by Mike Lockwood's avatar Mike Lockwood
Browse files

Don't start location providers until the system is ready.



Change-Id: Id545e95705e59ffbaaab8a679a1b7df488813101
BUG: 2461320

Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent 2f6a0185
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -485,14 +485,17 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
        super();
        mContext = context;

        Thread thread = new Thread(null, this, "LocationManagerService");
        thread.start();

        if (LOCAL_LOGV) {
            Log.v(TAG, "Constructed LocationManager Service");
        }
    }

    void systemReady() {
        // we defer starting up the service until the system is ready 
        Thread thread = new Thread(null, this, "LocationManagerService");
        thread.start();
    }

    private void initialize() {
        // Create a wake lock, needs to be done before calling loadProviders() below
        PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+5 −2
Original line number Diff line number Diff line
@@ -209,6 +209,7 @@ class ServerThread extends Thread {
        AppWidgetService appWidget = null;
        NotificationManagerService notification = null;
        WallpaperManagerService wallpaper = null;
        LocationManagerService location = null;

        if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
            try {
@@ -303,8 +304,8 @@ class ServerThread extends Thread {

            try {
                Log.i(TAG, "Location Manager");
                ServiceManager.addService(Context.LOCATION_SERVICE,
                        new LocationManagerService(context));
                location = new LocationManagerService(context);
                ServiceManager.addService(Context.LOCATION_SERVICE, location);
            } catch (Throwable e) {
                Log.e(TAG, "Failure starting Location Manager", e);
            }
@@ -444,6 +445,7 @@ class ServerThread extends Thread {
        final WallpaperManagerService wallpaperF = wallpaper;
        final InputMethodManagerService immF = imm;
        final RecognitionManagerService recognitionF = recognition;
        final LocationManagerService locationF = location;

        // We now tell the activity manager it is okay to run third party
        // code.  It will call back into us once it has gotten to the state
@@ -467,6 +469,7 @@ class ServerThread extends Thread {
                if (appWidgetF != null) appWidgetF.systemReady(safeMode);
                if (wallpaperF != null) wallpaperF.systemReady();
                if (immF != null) immF.systemReady();
                if (locationF != null) locationF.systemReady();
            }
        });