Loading services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java +1 −4 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import static com.android.server.location.LocationManagerService.D; import static com.android.server.location.LocationManagerService.TAG; import static com.android.server.location.eventlog.LocationEventLog.EVENT_LOG; import static java.lang.Math.max; import android.annotation.Nullable; import android.location.Location; import android.location.LocationResult; Loading Loading @@ -55,7 +53,6 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation implements DeviceIdleHelper.DeviceIdleListener, DeviceIdleInternal.StationaryListener { private static final long MAX_STATIONARY_LOCATION_AGE_MS = 30000; private static final long MIN_INTERVAL_MS = 1000; final Object mLock = new Object(); Loading Loading @@ -182,7 +179,7 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation && mLastLocation != null && mLastLocation.getElapsedRealtimeAgeMillis(mDeviceStationaryRealtimeMs) <= MAX_STATIONARY_LOCATION_AGE_MS) { throttlingIntervalMs = max(mIncomingRequest.getIntervalMillis(), MIN_INTERVAL_MS); throttlingIntervalMs = mIncomingRequest.getIntervalMillis(); } ProviderRequest newRequest; Loading services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java +10 −21 Original line number Diff line number Diff line Loading @@ -89,19 +89,6 @@ public class StationaryThrottlingLocationProviderTest { mProvider.getController().stop(); } @Test public void testThrottle_lowInterval() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(0).build(); mProvider.getController().setRequest(request); mDelegateProvider.reportLocation(createLocationResult("test_provider", mRandom)); verify(mListener, times(1)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(true); mInjector.getDeviceIdleHelper().setIdle(true); verify(mListener, after(1500).times(2)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_stationaryExit() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); Loading @@ -117,16 +104,17 @@ public class StationaryThrottlingLocationProviderTest { mInjector.getDeviceIdleHelper().setIdle(true); verify(mDelegate).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(3)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_idleExit() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(1000).build(); ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); mProvider.getController().setRequest(request); verify(mDelegate).onSetRequest(request); Loading @@ -139,16 +127,17 @@ public class StationaryThrottlingLocationProviderTest { mInjector.getDeviceStationaryHelper().setStationary(true); verify(mDelegate).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(3)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceIdleHelper().setIdle(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_NoInitialLocation() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(1000).build(); ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); mProvider.getController().setRequest(request); verify(mDelegate).onSetRequest(request); Loading @@ -160,11 +149,11 @@ public class StationaryThrottlingLocationProviderTest { mDelegateProvider.reportLocation(createLocationResult("test_provider", mRandom)); verify(mListener, times(1)).onReportLocation(any(LocationResult.class)); verify(mDelegate, times(1)).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(2)).onReportLocation(any(LocationResult.class)); } @Test Loading Loading
services/core/java/com/android/server/location/provider/StationaryThrottlingLocationProvider.java +1 −4 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import static com.android.server.location.LocationManagerService.D; import static com.android.server.location.LocationManagerService.TAG; import static com.android.server.location.eventlog.LocationEventLog.EVENT_LOG; import static java.lang.Math.max; import android.annotation.Nullable; import android.location.Location; import android.location.LocationResult; Loading Loading @@ -55,7 +53,6 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation implements DeviceIdleHelper.DeviceIdleListener, DeviceIdleInternal.StationaryListener { private static final long MAX_STATIONARY_LOCATION_AGE_MS = 30000; private static final long MIN_INTERVAL_MS = 1000; final Object mLock = new Object(); Loading Loading @@ -182,7 +179,7 @@ public final class StationaryThrottlingLocationProvider extends DelegateLocation && mLastLocation != null && mLastLocation.getElapsedRealtimeAgeMillis(mDeviceStationaryRealtimeMs) <= MAX_STATIONARY_LOCATION_AGE_MS) { throttlingIntervalMs = max(mIncomingRequest.getIntervalMillis(), MIN_INTERVAL_MS); throttlingIntervalMs = mIncomingRequest.getIntervalMillis(); } ProviderRequest newRequest; Loading
services/tests/mockingservicestests/src/com/android/server/location/provider/StationaryThrottlingLocationProviderTest.java +10 −21 Original line number Diff line number Diff line Loading @@ -89,19 +89,6 @@ public class StationaryThrottlingLocationProviderTest { mProvider.getController().stop(); } @Test public void testThrottle_lowInterval() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(0).build(); mProvider.getController().setRequest(request); mDelegateProvider.reportLocation(createLocationResult("test_provider", mRandom)); verify(mListener, times(1)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(true); mInjector.getDeviceIdleHelper().setIdle(true); verify(mListener, after(1500).times(2)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_stationaryExit() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); Loading @@ -117,16 +104,17 @@ public class StationaryThrottlingLocationProviderTest { mInjector.getDeviceIdleHelper().setIdle(true); verify(mDelegate).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(3)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_idleExit() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(1000).build(); ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); mProvider.getController().setRequest(request); verify(mDelegate).onSetRequest(request); Loading @@ -139,16 +127,17 @@ public class StationaryThrottlingLocationProviderTest { mInjector.getDeviceStationaryHelper().setStationary(true); verify(mDelegate).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(3)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceIdleHelper().setIdle(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(3)).onReportLocation(any(LocationResult.class)); } @Test public void testThrottle_NoInitialLocation() { ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(1000).build(); ProviderRequest request = new ProviderRequest.Builder().setIntervalMillis(50).build(); mProvider.getController().setRequest(request); verify(mDelegate).onSetRequest(request); Loading @@ -160,11 +149,11 @@ public class StationaryThrottlingLocationProviderTest { mDelegateProvider.reportLocation(createLocationResult("test_provider", mRandom)); verify(mListener, times(1)).onReportLocation(any(LocationResult.class)); verify(mDelegate, times(1)).onSetRequest(ProviderRequest.EMPTY_REQUEST); verify(mListener, timeout(1100).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, timeout(75).times(2)).onReportLocation(any(LocationResult.class)); mInjector.getDeviceStationaryHelper().setStationary(false); verify(mDelegate, times(2)).onSetRequest(request); verify(mListener, after(1000).times(2)).onReportLocation(any(LocationResult.class)); verify(mListener, after(75).times(2)).onReportLocation(any(LocationResult.class)); } @Test Loading