Loading services/core/java/com/android/server/location/provider/LocationProviderManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -1960,11 +1960,6 @@ public class LocationProviderManager extends Preconditions.checkState(Thread.holdsLock(mLock)); } if (mDelayedRegister != null) { mAlarmHelper.cancel(mDelayedRegister); mDelayedRegister = null; } // calculate how long the new request should be delayed before sending it off to the // provider, under the assumption that once we send the request off, the provider will // immediately attempt to deliver a new location satisfying that request. Loading Loading @@ -1997,8 +1992,8 @@ public class LocationProviderManager extends public void onAlarm() { synchronized (mLock) { if (mDelayedRegister == this) { setProviderRequest(newRequest); mDelayedRegister = null; setProviderRequest(newRequest); } } } Loading @@ -2025,6 +2020,11 @@ public class LocationProviderManager extends @GuardedBy("mLock") void setProviderRequest(ProviderRequest request) { if (mDelayedRegister != null) { mAlarmHelper.cancel(mDelayedRegister); mDelayedRegister = null; } EVENT_LOG.logProviderUpdateRequest(mName, request); mProvider.getController().setRequest(request); Loading services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,21 @@ public class LocationProviderManagerTest { assertThat(mProvider.getRequest().getIntervalMillis()).isEqualTo(60000); } @Test public void testProviderRequest_DelayedRequest_Remove() { mProvider.setProviderLocation(createLocation(NAME, mRandom)); ILocationListener listener1 = createMockLocationListener(); LocationRequest request1 = new LocationRequest.Builder(60000) .setWorkSource(WORK_SOURCE) .build(); mManager.registerLocationRequest(request1, IDENTITY, PERMISSION_FINE, listener1); mManager.unregisterLocationRequest(listener1); mInjector.getAlarmHelper().incrementAlarmTime(60000); assertThat(mProvider.getRequest().isActive()).isFalse(); } @Test public void testProviderRequest_SpamRequesting() { mProvider.setProviderLocation(createLocation(NAME, mRandom)); Loading Loading
services/core/java/com/android/server/location/provider/LocationProviderManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -1960,11 +1960,6 @@ public class LocationProviderManager extends Preconditions.checkState(Thread.holdsLock(mLock)); } if (mDelayedRegister != null) { mAlarmHelper.cancel(mDelayedRegister); mDelayedRegister = null; } // calculate how long the new request should be delayed before sending it off to the // provider, under the assumption that once we send the request off, the provider will // immediately attempt to deliver a new location satisfying that request. Loading Loading @@ -1997,8 +1992,8 @@ public class LocationProviderManager extends public void onAlarm() { synchronized (mLock) { if (mDelayedRegister == this) { setProviderRequest(newRequest); mDelayedRegister = null; setProviderRequest(newRequest); } } } Loading @@ -2025,6 +2020,11 @@ public class LocationProviderManager extends @GuardedBy("mLock") void setProviderRequest(ProviderRequest request) { if (mDelayedRegister != null) { mAlarmHelper.cancel(mDelayedRegister); mDelayedRegister = null; } EVENT_LOG.logProviderUpdateRequest(mName, request); mProvider.getController().setRequest(request); Loading
services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,21 @@ public class LocationProviderManagerTest { assertThat(mProvider.getRequest().getIntervalMillis()).isEqualTo(60000); } @Test public void testProviderRequest_DelayedRequest_Remove() { mProvider.setProviderLocation(createLocation(NAME, mRandom)); ILocationListener listener1 = createMockLocationListener(); LocationRequest request1 = new LocationRequest.Builder(60000) .setWorkSource(WORK_SOURCE) .build(); mManager.registerLocationRequest(request1, IDENTITY, PERMISSION_FINE, listener1); mManager.unregisterLocationRequest(listener1); mInjector.getAlarmHelper().incrementAlarmTime(60000); assertThat(mProvider.getRequest().isActive()).isFalse(); } @Test public void testProviderRequest_SpamRequesting() { mProvider.setProviderLocation(createLocation(NAME, mRandom)); Loading