diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index 6a1fbcdbd..45b7f091a 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -36,6 +36,7 @@ import fr.free.nrw.commons.BaseMarker; import fr.free.nrw.commons.MapController; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.utils.GeoCoordinates; import fr.free.nrw.commons.utils.Utils; import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao; import fr.free.nrw.commons.contributions.MainActivity; @@ -639,7 +640,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment */ private void passInfoToSheet(final Place place) { binding.bottomSheetDetailsBinding.directionsButton.setOnClickListener( - view -> Utils.handleGeoCoordinates(getActivity(), + view -> GeoCoordinates.handleGeoCoordinates(getActivity(), place.getLocation(), binding.mapView.getZoomLevelDouble())); binding.bottomSheetDetailsBinding.commonsButton.setVisibility( diff --git a/app/src/main/java/fr/free/nrw/commons/locationpicker/LocationPickerActivity.kt b/app/src/main/java/fr/free/nrw/commons/locationpicker/LocationPickerActivity.kt index e976c79c9..732b4a06c 100644 --- a/app/src/main/java/fr/free/nrw/commons/locationpicker/LocationPickerActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/locationpicker/LocationPickerActivity.kt @@ -30,7 +30,6 @@ import fr.free.nrw.commons.CameraPosition import fr.free.nrw.commons.CommonsApplication import fr.free.nrw.commons.Media import fr.free.nrw.commons.R -import fr.free.nrw.commons.utils.Utils import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.auth.csrf.CsrfTokenClient import fr.free.nrw.commons.coordinates.CoordinateEditHelper @@ -44,6 +43,7 @@ import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.Companion.LAST_LOCATION import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.Companion.LAST_ZOOM import fr.free.nrw.commons.utils.DialogUtil +import fr.free.nrw.commons.utils.GeoCoordinates import fr.free.nrw.commons.utils.MapUtils.ZOOM_LEVEL import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers @@ -432,8 +432,8 @@ class LocationPickerActivity : BaseActivity(), LocationPermissionCallback { position?.let { mapView?.zoomLevelDouble?.let { zoomLevel -> - Utils.handleGeoCoordinates(this, it, zoomLevel) - } ?: Utils.handleGeoCoordinates(this, it) + GeoCoordinates.handleGeoCoordinates(this, it, zoomLevel) + } ?: GeoCoordinates.handleGeoCoordinates(this, it) } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt index 2eff7422e..58f22f177 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.kt @@ -112,6 +112,7 @@ import fr.free.nrw.commons.upload.depicts.DepictsFragment import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment import fr.free.nrw.commons.utils.DateUtil.getDateStringWithSkeletonPattern import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog +import fr.free.nrw.commons.utils.GeoCoordinates import fr.free.nrw.commons.utils.LangCodeUtils.getLocalizedResources import fr.free.nrw.commons.utils.PermissionUtils.PERMISSIONS_STORAGE import fr.free.nrw.commons.utils.PermissionUtils.checkPermissionsAndPerformAction @@ -917,7 +918,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C private fun onMediaDetailCoordinatesClicked() { if (media!!.coordinates != null && activity != null) { - Utils.handleGeoCoordinates(activity, media!!.coordinates) + GeoCoordinates.handleGeoCoordinates(activity, media!!.coordinates) } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt index 05b540ba1..62e58ba9e 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/CommonPlaceClickActions.kt @@ -16,6 +16,7 @@ import fr.free.nrw.commons.contributions.ContributionController import fr.free.nrw.commons.kvstore.JsonKvStore import fr.free.nrw.commons.nearby.Place import fr.free.nrw.commons.utils.ActivityUtils +import fr.free.nrw.commons.utils.GeoCoordinates import fr.free.nrw.commons.wikidata.WikidataConstants import timber.log.Timber import javax.inject.Inject @@ -104,7 +105,7 @@ class CommonPlaceClickActions fun onDirectionsClicked(): (Place) -> Unit = { - Utils.handleGeoCoordinates(activity, it.getLocation()) + GeoCoordinates.handleGeoCoordinates(activity, it.getLocation()) } private fun storeSharedPrefs(selectedPlace: Place) { diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt index 1f61d07b9..a93f6b753 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.kt @@ -94,6 +94,7 @@ import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter import fr.free.nrw.commons.upload.FileUtils import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog import fr.free.nrw.commons.utils.ExecutorUtils.get +import fr.free.nrw.commons.utils.GeoCoordinates import fr.free.nrw.commons.utils.LayoutUtils.getScreenWidth import fr.free.nrw.commons.utils.LayoutUtils.setLayoutHeightAlignedToWidth import fr.free.nrw.commons.utils.MapUtils.defaultLatLng @@ -2851,7 +2852,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(), R.drawable.ic_directions_black_24dp -> { selectedPlace?.let { - Utils.handleGeoCoordinates(this.context, it.getLocation()) + GeoCoordinates.handleGeoCoordinates(this.context, it.getLocation()) binding?.map?.zoomLevelDouble ?: 0.0 } } diff --git a/app/src/main/java/fr/free/nrw/commons/utils/GeoCoordinates.java b/app/src/main/java/fr/free/nrw/commons/utils/GeoCoordinates.java new file mode 100644 index 000000000..683236baa --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/utils/GeoCoordinates.java @@ -0,0 +1,38 @@ +package fr.free.nrw.commons.utils; + +import android.content.Context; +import android.content.Intent; +import fr.free.nrw.commons.R; +import fr.free.nrw.commons.location.LatLng; + +public final class GeoCoordinates { + + /** + * Util function to handle geo coordinates. It no longer depends on google maps and any app + * capable of handling the map intent can handle it + * + * @param context The context for launching intent + * @param latLng The latitude and longitude of the location + */ + public static void handleGeoCoordinates(final Context context, final LatLng latLng) { + handleGeoCoordinates(context, latLng, 16); + } + + /** + * Util function to handle geo coordinates with specified zoom level. It no longer depends on + * google maps and any app capable of handling the map intent can handle it + * + * @param context The context for launching intent + * @param latLng The latitude and longitude of the location + * @param zoomLevel The zoom level + */ + public static void handleGeoCoordinates(final Context context, final LatLng latLng, + final double zoomLevel) { + final Intent mapIntent = new Intent(Intent.ACTION_VIEW, latLng.getGmmIntentUri(zoomLevel)); + if (mapIntent.resolveActivity(context.getPackageManager()) != null) { + context.startActivity(mapIntent); + } else { + ViewUtil.showShortToast(context, context.getString(R.string.map_application_missing)); + } + } +} diff --git a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java index 30ea7157d..e81200194 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java @@ -22,7 +22,6 @@ import java.util.Date; import java.util.Locale; import java.util.regex.Pattern; -import fr.free.nrw.commons.location.LatLng; import timber.log.Timber; public class Utils { @@ -79,35 +78,6 @@ public class Utils { customTabsIntent.launchUrl(context, url); } - /** - * Util function to handle geo coordinates. It no longer depends on google maps and any app - * capable of handling the map intent can handle it - * - * @param context The context for launching intent - * @param latLng The latitude and longitude of the location - */ - public static void handleGeoCoordinates(final Context context, final LatLng latLng) { - handleGeoCoordinates(context, latLng, 16); - } - - /** - * Util function to handle geo coordinates with specified zoom level. It no longer depends on - * google maps and any app capable of handling the map intent can handle it - * - * @param context The context for launching intent - * @param latLng The latitude and longitude of the location - * @param zoomLevel The zoom level - */ - public static void handleGeoCoordinates(final Context context, final LatLng latLng, - final double zoomLevel) { - final Intent mapIntent = new Intent(Intent.ACTION_VIEW, latLng.getGmmIntentUri(zoomLevel)); - if (mapIntent.resolveActivity(context.getPackageManager()) != null) { - context.startActivity(mapIntent); - } else { - ViewUtil.showShortToast(context, context.getString(R.string.map_application_missing)); - } - } - /** * To take screenshot of the screen and return it in Bitmap format *