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