Only update location at most every 6 minutes.

This commit is contained in:
Filip Strajnar 2024-10-26 13:55:58 +02:00
parent 75a73d97fd
commit 4734104bd2

View file

@ -24,6 +24,7 @@ import com.pengrad.telegrambot.TelegramBot;
import com.pengrad.telegrambot.model.Chat;
import com.pengrad.telegrambot.request.SendLocation;
import java.time.Duration;
import java.util.List;
public class LocationLoggingService extends Service implements LocationListener {
@ -95,10 +96,29 @@ public class LocationLoggingService extends Service implements LocationListener
private void updateLocation(Location newLocation){
if(lastLocation != null && (newLocation.distanceTo(lastLocation) < 2000))
if(lastLocation != null)
{
Log.d(TAG, "Distance to last location too short. Ignoring.");
return;
if(newLocation.distanceTo(lastLocation) < 2000) {
Log.d(TAG, "Distance to last location too short. Ignoring.");
return;
}
long oldTime = lastLocation.getTime();
long newTime = newLocation.getTime();
Duration durationBetweenUpdates = Duration.ofMinutes(6);
if(oldTime > newTime)
{
Log.w(TAG, "Last location time was somehow after new location's.");
return;
}
long millisSinceLastUpdate = newTime - oldTime;
if(durationBetweenUpdates.toMillis() > millisSinceLastUpdate)
{
Log.d(TAG, "Location update is too recent.");
return;
}
}
if(!newLocation.hasAccuracy())