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

Commit 0a475b12 authored by Steve Kondik's avatar Steve Kondik
Browse files

Merge branch 'eclair' of git@github.com:cyanogen/android_frameworks_base into eclair

parents 93bbc9da 0b224929
Loading
Loading
Loading
Loading
+30 −5
Original line number Diff line number Diff line
@@ -183,6 +183,9 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
    // true if GPS is navigating
    private boolean mNavigating;

    // true if GPS engine is on
    private boolean mEngineOn;
    
    // requested frequency of fixes, in seconds
    private int mFixInterval = 1;

@@ -556,13 +559,17 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
            mNetworkThread = null;
        }

        // do this before releasing wakelock
        native_cleanup();

        // The GpsEventThread does not wait for the GPS to shutdown
        // so we need to report the GPS_STATUS_ENGINE_OFF event here
        if (mNavigating) {
            reportStatus(GPS_STATUS_SESSION_END);
        }
        if (mEngineOn) {
            reportStatus(GPS_STATUS_ENGINE_OFF);
        }

        native_cleanup();
    }

    public boolean isEnabled() {
@@ -874,9 +881,26 @@ public class GpsLocationProvider extends ILocationProvider.Stub {

        synchronized(mListeners) {
            boolean wasNavigating = mNavigating;
            mNavigating = (status == GPS_STATUS_SESSION_BEGIN);

            if (mNavigating && !mWakeLock.isHeld()) {
            switch (status) {
                case GPS_STATUS_SESSION_BEGIN:
                    mNavigating = true;
                    mEngineOn = true;
                    break;
                case GPS_STATUS_SESSION_END:
                    mNavigating = false;
                    break;
                case GPS_STATUS_ENGINE_ON:
                    mEngineOn = true;
                    break;
                case GPS_STATUS_ENGINE_OFF:
                    mEngineOn = false;
                    mNavigating = false;
                    break;
            }

            // beware, the events can come out of order
            if ((mNavigating || mEngineOn) && !mWakeLock.isHeld()) {
                if (DEBUG) Log.d(TAG, "Acquiring wakelock");
                 mWakeLock.acquire();
            }
@@ -919,7 +943,8 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
                mContext.sendBroadcast(intent);
            }

            if (status == GPS_STATUS_ENGINE_OFF && mWakeLock.isHeld()) {
            // beware, the events can come out of order
            if (!mNavigating && !mEngineOn && mWakeLock.isHeld()) {
                if (DEBUG) Log.d(TAG, "Releasing wakelock");
                mWakeLock.release();
            }