private void addLocationListener(String provider, LocationListener listener, long minTime, float minDistance) { List<ListenerRegistration> providerListeners = locationListeners.get(provider); if (providerListeners == null) { providerListeners = new ArrayList<>(); locationListeners.put(provider, providerListeners); } removeDuplicates(listener, providerListeners); providerListeners.add(new ListenerRegistration(provider, minTime, minDistance, copyOf(getLastKnownLocation(provider)), listener)); }
public void simulateLocation(Location location) { cleanupRemovedLocationListeners(); setLastKnownLocation(location.getProvider(), location); List<ListenerRegistration> providerListeners = locationListeners.get( location.getProvider()); if (providerListeners == null) return; for (ListenerRegistration listenerReg : providerListeners) { if(listenerReg.lastSeenLocation != null && location != null) { float distanceChange = distanceBetween(location, listenerReg.lastSeenLocation); boolean withinMinDistance = distanceChange < listenerReg.minDistance; boolean exceededMinTime = location.getTime() - listenerReg.lastSeenTime > listenerReg.minTime; if (withinMinDistance || !exceededMinTime) continue; } listenerReg.lastSeenLocation = copyOf(location); listenerReg.lastSeenTime = location == null ? 0 : location.getTime(); listenerReg.listener.onLocationChanged(copyOf(location)); } cleanupRemovedLocationListeners(); }
private void addLocationListener(String provider, LocationListener listener, long minTime, float minDistance) { List<ListenerRegistration> providerListeners = locationListeners.get(provider); if (providerListeners == null) { providerListeners = new ArrayList<>(); locationListeners.put(provider, providerListeners); } providerListeners.add(new ListenerRegistration(provider, minTime, minDistance, copyOf(getLastKnownLocation(provider)), listener)); }
private void addLocationListener(String provider, LocationListener listener, long minTime, float minDistance) { List<ListenerRegistration> providerListeners = locationListeners.get(provider); if (providerListeners == null) { providerListeners = new ArrayList<>(); locationListeners.put(provider, providerListeners); } removeDuplicates(listener, providerListeners); providerListeners.add(new ListenerRegistration(provider, minTime, minDistance, copyOf(getLastKnownLocation(provider)), listener)); }
private void addLocationListener(String provider, LocationListener listener, long minTime, float minDistance) { List<ListenerRegistration> providerListeners = locationListeners.get(provider); if (providerListeners == null) { providerListeners = new ArrayList<>(); locationListeners.put(provider, providerListeners); } removeDuplicates(listener, providerListeners); providerListeners.add(new ListenerRegistration(provider, minTime, minDistance, copyOf(getLastKnownLocation(provider)), listener)); }
private void addLocationListener(String provider, LocationListener listener, long minTime, float minDistance) { List<ListenerRegistration> providerListeners = locationListeners.get(provider); if (providerListeners == null) { providerListeners = new ArrayList<>(); locationListeners.put(provider, providerListeners); } removeDuplicates(listener, providerListeners); providerListeners.add(new ListenerRegistration(provider, minTime, minDistance, copyOf(getLastKnownLocation(provider)), listener)); }
public void simulateLocation(Location location) { cleanupRemovedLocationListeners(); setLastKnownLocation(location.getProvider(), location); List<ListenerRegistration> providerListeners = locationListeners.get( location.getProvider()); if (providerListeners == null) return; for (ListenerRegistration listenerReg : providerListeners) { if(listenerReg.lastSeenLocation != null && location != null) { float distanceChange = distanceBetween(location, listenerReg.lastSeenLocation); boolean withinMinDistance = distanceChange < listenerReg.minDistance; boolean exceededMinTime = location.getTime() - listenerReg.lastSeenTime > listenerReg.minTime; if (withinMinDistance || !exceededMinTime) continue; } listenerReg.lastSeenLocation = copyOf(location); listenerReg.lastSeenTime = location == null ? 0 : location.getTime(); listenerReg.listener.onLocationChanged(copyOf(location)); } cleanupRemovedLocationListeners(); }
public void simulateLocation(Location location) { cleanupRemovedLocationListeners(); setLastKnownLocation(location.getProvider(), location); List<ListenerRegistration> providerListeners = locationListeners.get( location.getProvider()); if (providerListeners == null) return; for (ListenerRegistration listenerReg : providerListeners) { if(listenerReg.lastSeenLocation != null && location != null) { float distanceChange = distanceBetween(location, listenerReg.lastSeenLocation); boolean withinMinDistance = distanceChange < listenerReg.minDistance; boolean exceededMinTime = location.getTime() - listenerReg.lastSeenTime > listenerReg.minTime; if (withinMinDistance || !exceededMinTime) continue; } listenerReg.lastSeenLocation = copyOf(location); listenerReg.lastSeenTime = location == null ? 0 : location.getTime(); listenerReg.listener.onLocationChanged(copyOf(location)); } cleanupRemovedLocationListeners(); }
public void simulateLocation(Location location) { cleanupRemovedLocationListeners(); setLastKnownLocation(location.getProvider(), location); List<ListenerRegistration> providerListeners = locationListeners.get( location.getProvider()); if (providerListeners == null) return; for (ListenerRegistration listenerReg : providerListeners) { if(listenerReg.lastSeenLocation != null && location != null) { float distanceChange = distanceBetween(location, listenerReg.lastSeenLocation); boolean withinMinDistance = distanceChange < listenerReg.minDistance; boolean exceededMinTime = location.getTime() - listenerReg.lastSeenTime > listenerReg.minTime; if (withinMinDistance || !exceededMinTime) continue; } listenerReg.lastSeenLocation = copyOf(location); listenerReg.lastSeenTime = location == null ? 0 : location.getTime(); listenerReg.listener.onLocationChanged(copyOf(location)); } cleanupRemovedLocationListeners(); }
public void simulateLocation(Location location) { cleanupRemovedLocationListeners(); setLastKnownLocation(location.getProvider(), location); List<ListenerRegistration> providerListeners = locationListeners.get( location.getProvider()); if (providerListeners == null) return; for (ListenerRegistration listenerReg : providerListeners) { if(listenerReg.lastSeenLocation != null && location != null) { float distanceChange = distanceBetween(location, listenerReg.lastSeenLocation); boolean withinMinDistance = distanceChange < listenerReg.minDistance; boolean exceededMinTime = location.getTime() - listenerReg.lastSeenTime > listenerReg.minTime; if (withinMinDistance || !exceededMinTime) continue; } listenerReg.lastSeenLocation = copyOf(location); listenerReg.lastSeenTime = location == null ? 0 : location.getTime(); listenerReg.listener.onLocationChanged(copyOf(location)); } cleanupRemovedLocationListeners(); }