diff --git a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java index c9bf7a30b9..25db63fe3b 100644 --- a/android/src/com/mapswithme/maps/DownloadResourcesActivity.java +++ b/android/src/com/mapswithme/maps/DownloadResourcesActivity.java @@ -8,6 +8,7 @@ import android.location.Location; import android.net.Uri; import android.os.Bundle; import android.support.annotation.CallSuper; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.text.TextUtils; @@ -804,8 +805,8 @@ public class DownloadResourcesActivity extends BaseMwmFragmentActivity if (!intent.hasExtra(EXTRA_LAT) || !intent.hasExtra(EXTRA_LON)) return false; - float lat = intent.getFloatExtra(EXTRA_LAT, 0.0f); - float lon = intent.getFloatExtra(EXTRA_LON, 0.0f); + double lat = getFloatValueFromIntent(intent, EXTRA_LAT); + double lon = getFloatValueFromIntent(intent, EXTRA_LON); mMapTaskToForward = new MwmActivity.ShowPointTask(lat, lon); return true; @@ -833,23 +834,23 @@ public class DownloadResourcesActivity extends BaseMwmFragmentActivity if (!intent.hasExtra(EXTRA_LAT_TO) || !intent.hasExtra(EXTRA_LON_TO)) return false; - float latTo = intent.getFloatExtra(EXTRA_LAT_TO, 0.0f); - float lonTo = intent.getFloatExtra(EXTRA_LON_TO, 0.0f); + double latTo = getFloatValueFromIntent(intent, EXTRA_LAT_TO); + double lonTo = getFloatValueFromIntent(intent, EXTRA_LON_TO); boolean hasFrom = intent.hasExtra(EXTRA_LAT_FROM) && intent.hasExtra(EXTRA_LON_FROM); boolean hasRouter = intent.hasExtra(EXTRA_ROUTER); if (hasFrom && hasRouter) { - mMapTaskToForward = new MwmActivity.BuildRouteTask(latTo, lonTo, - intent.getFloatExtra(EXTRA_LAT_FROM, 0.0f), - intent.getFloatExtra(EXTRA_LON_FROM, 0.0f), + double latFrom = getFloatValueFromIntent(intent, EXTRA_LAT_FROM); + double lonFrom = getFloatValueFromIntent(intent, EXTRA_LON_FROM); + mMapTaskToForward = new MwmActivity.BuildRouteTask(latTo, lonTo, latFrom,lonFrom, intent.getStringExtra(EXTRA_ROUTER)); } else if (hasFrom) { - mMapTaskToForward = new MwmActivity.BuildRouteTask(latTo, lonTo, - intent.getFloatExtra(EXTRA_LAT_FROM, 0.0f), - intent.getFloatExtra(EXTRA_LON_FROM, 0.0f)); + double latFrom = getFloatValueFromIntent(intent, EXTRA_LAT_FROM); + double lonFrom = getFloatValueFromIntent(intent, EXTRA_LON_FROM); + mMapTaskToForward = new MwmActivity.BuildRouteTask(latTo, lonTo, latFrom,lonFrom); } else { @@ -860,6 +861,15 @@ public class DownloadResourcesActivity extends BaseMwmFragmentActivity } } + private static double getFloatValueFromIntent(@NonNull Intent intent, @NonNull String key) + { + double value = intent.getDoubleExtra(key, 0.0); + if (Double.compare(value, 0.0) == 0) + value = intent.getFloatExtra(key, 0.0f); + + return value; + } + private static native int nativeGetBytesToDownload(); private static native int nativeStartNextFileDownload(Listener listener); private static native void nativeCancelCurrentFile(); diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 1ecd7a7686..a598743f79 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -2035,10 +2035,10 @@ public class MwmActivity extends BaseMwmFragmentActivity static class ShowPointTask implements MapTask { - private final float mLat; - private final float mLon; + private final double mLat; + private final double mLon; - ShowPointTask(float lat, float lon) + ShowPointTask(double lat, double lon) { mLat = lat; mLon = lon; @@ -2055,26 +2055,26 @@ public class MwmActivity extends BaseMwmFragmentActivity static class BuildRouteTask implements MapTask { - private final float mLatTo; - private final float mLonTo; + private final double mLatTo; + private final double mLonTo; @Nullable - private final Float mLatFrom; + private final Double mLatFrom; @Nullable - private final Float mLonFrom; + private final Double mLonFrom; @Nullable private final String mRouter; - BuildRouteTask(float latTo, float lonTo) + BuildRouteTask(double latTo, double lonTo) { this(latTo, lonTo, null, null, null); } - BuildRouteTask(float latTo, float lonTo, @Nullable Float latFrom, @Nullable Float lonFrom) + BuildRouteTask(double latTo, double lonTo, @Nullable Double latFrom, @Nullable Double lonFrom) { this(latTo, lonTo, latFrom, lonFrom, null); } - BuildRouteTask(float latTo, float lonTo, @Nullable Float latFrom, @Nullable Float lonFrom, + BuildRouteTask(double latTo, double lonTo, @Nullable Double latFrom, @Nullable Double lonFrom, @Nullable String router) { mLatTo = latTo; @@ -2126,7 +2126,7 @@ public class MwmActivity extends BaseMwmFragmentActivity } @NonNull - private MapObject fromLatLon(float lat, float lon) + private MapObject fromLatLon(double lat, double lon) { return new MapObject("", 0L, 0, MapObject.API_POINT, "", "", "", "", lat, lon, "", null,