Merge "Only register stationary detector while idle" into sc-qpr1-dev am: 65f1d1a5e1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15639364 Change-Id: Ib92515cd5010c9c51d706ca514a7f71a003aa622
This commit is contained in:
@@ -105,20 +105,15 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation
|
|||||||
|
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
mDeviceIdleHelper.addListener(this);
|
mDeviceIdleHelper.addListener(this);
|
||||||
mDeviceIdle = mDeviceIdleHelper.isDeviceIdle();
|
onDeviceIdleChanged(mDeviceIdleHelper.isDeviceIdle());
|
||||||
mDeviceStationaryHelper.addListener(this);
|
|
||||||
mDeviceStationary = false;
|
|
||||||
mDeviceStationaryRealtimeMs = Long.MIN_VALUE;
|
|
||||||
|
|
||||||
onThrottlingChangedLocked(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
mDeviceStationaryHelper.removeListener(this);
|
|
||||||
mDeviceIdleHelper.removeListener(this);
|
mDeviceIdleHelper.removeListener(this);
|
||||||
|
onDeviceIdleChanged(false);
|
||||||
|
|
||||||
mIncomingRequest = ProviderRequest.EMPTY_REQUEST;
|
mIncomingRequest = ProviderRequest.EMPTY_REQUEST;
|
||||||
mOutgoingRequest = ProviderRequest.EMPTY_REQUEST;
|
mOutgoingRequest = ProviderRequest.EMPTY_REQUEST;
|
||||||
@@ -151,13 +146,26 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation
|
|||||||
}
|
}
|
||||||
|
|
||||||
mDeviceIdle = deviceIdle;
|
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
|
@Override
|
||||||
public void onDeviceStationaryChanged(boolean deviceStationary) {
|
public void onDeviceStationaryChanged(boolean deviceStationary) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
|
if (!mDeviceIdle) {
|
||||||
|
// stationary detection is only registered while idle - ignore late notifications
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (mDeviceStationary == deviceStationary) {
|
if (mDeviceStationary == deviceStationary) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user