From 23e5564bf3787c02a0951efdc71f290cc5b73a69 Mon Sep 17 00:00:00 2001 From: Dmitry Yunitsky Date: Mon, 22 Jun 2015 12:53:21 +0300 Subject: [PATCH] Crashfix for null location. --- .../com/mapswithme/maps/location/AndroidNativeProvider.java | 2 -- .../src/com/mapswithme/maps/location/LocationHelper.java | 6 +++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/android/src/com/mapswithme/maps/location/AndroidNativeProvider.java b/android/src/com/mapswithme/maps/location/AndroidNativeProvider.java index 26e8d1fb43..5c9563b1d0 100644 --- a/android/src/com/mapswithme/maps/location/AndroidNativeProvider.java +++ b/android/src/com/mapswithme/maps/location/AndroidNativeProvider.java @@ -47,8 +47,6 @@ public class AndroidNativeProvider extends BaseLocationProvider implements andro if (lastLocation != null && !LocationUtils.isExpired(lastLocation, LocationHelper.INSTANCE.getLastLocationTime(), LocationUtils.LOCATION_EXPIRATION_TIME_MILLIS_SHORT)) LocationHelper.INSTANCE.setLastLocation(lastLocation); - else - LocationHelper.INSTANCE.setLastLocation(null); } } } diff --git a/android/src/com/mapswithme/maps/location/LocationHelper.java b/android/src/com/mapswithme/maps/location/LocationHelper.java index df48c1fcda..4644b7c268 100644 --- a/android/src/com/mapswithme/maps/location/LocationHelper.java +++ b/android/src/com/mapswithme/maps/location/LocationHelper.java @@ -11,6 +11,7 @@ import android.location.Location; import android.os.Build; import android.preference.PreferenceManager; import android.provider.Settings; +import android.support.annotation.NonNull; import android.text.TextUtils; import com.google.android.gms.common.ConnectionResult; @@ -122,7 +123,7 @@ public enum LocationHelper implements SensorEventListener public long getLastLocationTime() { return mLastLocationTime; } - public void setLastLocation(Location loc) + public void setLastLocation(@NonNull Location loc) { mLastLocation = loc; mLastLocationTime = System.currentTimeMillis(); @@ -131,6 +132,9 @@ public enum LocationHelper implements SensorEventListener void notifyLocationUpdated() { + if (mLastLocation == null) + return; + for (LocationListener listener : mListeners) listener.onLocationUpdated(mLastLocation); }