diff options
author | Soonil Nagarkar <sooniln@google.com> | 2024-04-15 12:41:14 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-15 12:41:56 -0700 |
commit | 2720630fde3f4e3d17a3b3c55e8f05fada5b950b (patch) | |
tree | 9dea6f00cd77d03aaf60382fe68d697c1f174c17 | |
parent | c0c8e9869dcfeaa08b33d8ff2119e7b92ffd5006 (diff) | |
download | robolectric-2720630fde3f4e3d17a3b3c55e8f05fada5b950b.tar.gz |
Fix ShadowLocationManager time comparison.
ShadowLocationManager should be using elapsed realtime not system time for comparisons.
PiperOrigin-RevId: 625049478
-rw-r--r-- | robolectric/src/test/java/org/robolectric/shadows/ShadowLocationManagerTest.java | 4 | ||||
-rw-r--r-- | shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocationManager.java | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowLocationManagerTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowLocationManagerTest.java index e9e51f909..2c7bb282f 100644 --- a/robolectric/src/test/java/org/robolectric/shadows/ShadowLocationManagerTest.java +++ b/robolectric/src/test/java/org/robolectric/shadows/ShadowLocationManagerTest.java @@ -1224,9 +1224,9 @@ public class ShadowLocationManagerTest { @Test public void testSimulateLocation_FastestInterval() { Location loc1 = createLocation(MY_PROVIDER); - loc1.setTime(1); + loc1.setElapsedRealtimeNanos(1000000); Location loc2 = createLocation(MY_PROVIDER); - loc2.setTime(10); + loc2.setElapsedRealtimeNanos(10000000); TestLocationListener myListener = new TestLocationListener(); diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocationManager.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocationManager.java index d33e639c6..02d6b1776 100644 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocationManager.java +++ b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowLocationManager.java @@ -1968,7 +1968,9 @@ public class ShadowLocationManager { ArrayList<Location> deliverableLocations = new ArrayList<>(locations.length); for (Location location : locations) { if (lastDeliveredLocation != null) { - if (location.getTime() - lastDeliveredLocation.getTime() + if (NANOSECONDS.toMillis( + location.getElapsedRealtimeNanos() + - lastDeliveredLocation.getElapsedRealtimeNanos()) < request.getMinUpdateIntervalMillis()) { Log.w(TAG, "location rejected for simulated delivery - too fast"); continue; |