Don't hold wakelocks for passive requests

Prevents power usage for passive requests and reduces wakelock
thrashing.

Bug: 206340085
Test: presubmits
Change-Id: I258ba16ace2a2a3fa248665bc936e6b855471762
This commit is contained in:
Soonil Nagarkar
2021-11-15 12:14:50 -08:00
parent cb4a25f6df
commit eca0b750e7

View File

@@ -911,18 +911,21 @@ public class LocationProviderManager extends
@Override
public void onPreExecute() {
mUseWakeLock = false;
final int size = locationResult.size();
for (int i = 0; i < size; ++i) {
if (!locationResult.get(i).isMock()) {
mUseWakeLock = true;
break;
// don't acquire a wakelock for passive requests or for mock locations
if (getRequest().getIntervalMillis() != LocationRequest.PASSIVE_INTERVAL) {
final int size = locationResult.size();
for (int i = 0; i < size; ++i) {
if (!locationResult.get(i).isMock()) {
mUseWakeLock = true;
break;
}
}
}
// update last delivered location
setLastDeliveredLocation(locationResult.getLastLocation());
// don't acquire a wakelock for mock locations to prevent abuse
if (mUseWakeLock) {
mWakeLock.acquire(WAKELOCK_TIMEOUT_MS);
}