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

Commit d806a4dd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only register stationary detector while idle" into sc-qpr1-dev am: 65f1d1a5 am: 307c5490

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15639364

Change-Id: I9065c9554dc8445e9fc0951dab6182cf5c1daffc
parents 262dc88d 307c5490
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -105,20 +105,15 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation

        synchronized (mLock) {
            mDeviceIdleHelper.addListener(this);
            mDeviceIdle = mDeviceIdleHelper.isDeviceIdle();
            mDeviceStationaryHelper.addListener(this);
            mDeviceStationary = false;
            mDeviceStationaryRealtimeMs = Long.MIN_VALUE;

            onThrottlingChangedLocked(false);
            onDeviceIdleChanged(mDeviceIdleHelper.isDeviceIdle());
        }
    }

    @Override
    protected void onStop() {
        synchronized (mLock) {
            mDeviceStationaryHelper.removeListener(this);
            mDeviceIdleHelper.removeListener(this);
            onDeviceIdleChanged(false);

            mIncomingRequest = ProviderRequest.EMPTY_REQUEST;
            mOutgoingRequest = ProviderRequest.EMPTY_REQUEST;
@@ -151,13 +146,26 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation
            }

            mDeviceIdle = deviceIdle;
            onThrottlingChangedLocked(false);

            if (deviceIdle) {
                // device stationary helper will deliver an immediate listener update
                mDeviceStationaryHelper.addListener(this);
            } else {
                mDeviceStationaryHelper.removeListener(this);
                mDeviceStationary = false;
                mDeviceStationaryRealtimeMs = Long.MIN_VALUE;
            }
        }
    }

    @Override
    public void onDeviceStationaryChanged(boolean deviceStationary) {
        synchronized (mLock) {
            if (!mDeviceIdle) {
                // stationary detection is only registered while idle - ignore late notifications
                return;
            }

            if (mDeviceStationary == deviceStationary) {
                return;
            }