mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Moved GeoCoordinates utilities into their own class
This commit is contained in:
parent
c25b5b0533
commit
f1cf82ee34
7 changed files with 49 additions and 37 deletions
|
|
@ -36,6 +36,7 @@ import fr.free.nrw.commons.BaseMarker;
|
||||||
import fr.free.nrw.commons.MapController;
|
import fr.free.nrw.commons.MapController;
|
||||||
import fr.free.nrw.commons.Media;
|
import fr.free.nrw.commons.Media;
|
||||||
import fr.free.nrw.commons.R;
|
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.utils.Utils;
|
||||||
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao;
|
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsDao;
|
||||||
import fr.free.nrw.commons.contributions.MainActivity;
|
import fr.free.nrw.commons.contributions.MainActivity;
|
||||||
|
|
@ -639,7 +640,7 @@ public class ExploreMapFragment extends CommonsDaggerSupportFragment
|
||||||
*/
|
*/
|
||||||
private void passInfoToSheet(final Place place) {
|
private void passInfoToSheet(final Place place) {
|
||||||
binding.bottomSheetDetailsBinding.directionsButton.setOnClickListener(
|
binding.bottomSheetDetailsBinding.directionsButton.setOnClickListener(
|
||||||
view -> Utils.handleGeoCoordinates(getActivity(),
|
view -> GeoCoordinates.handleGeoCoordinates(getActivity(),
|
||||||
place.getLocation(), binding.mapView.getZoomLevelDouble()));
|
place.getLocation(), binding.mapView.getZoomLevelDouble()));
|
||||||
|
|
||||||
binding.bottomSheetDetailsBinding.commonsButton.setVisibility(
|
binding.bottomSheetDetailsBinding.commonsButton.setVisibility(
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ import fr.free.nrw.commons.CameraPosition
|
||||||
import fr.free.nrw.commons.CommonsApplication
|
import fr.free.nrw.commons.CommonsApplication
|
||||||
import fr.free.nrw.commons.Media
|
import fr.free.nrw.commons.Media
|
||||||
import fr.free.nrw.commons.R
|
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.SessionManager
|
||||||
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
||||||
import fr.free.nrw.commons.coordinates.CoordinateEditHelper
|
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_LOCATION
|
||||||
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.Companion.LAST_ZOOM
|
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailFragment.Companion.LAST_ZOOM
|
||||||
import fr.free.nrw.commons.utils.DialogUtil
|
import fr.free.nrw.commons.utils.DialogUtil
|
||||||
|
import fr.free.nrw.commons.utils.GeoCoordinates
|
||||||
import fr.free.nrw.commons.utils.MapUtils.ZOOM_LEVEL
|
import fr.free.nrw.commons.utils.MapUtils.ZOOM_LEVEL
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
|
@ -432,8 +432,8 @@ class LocationPickerActivity : BaseActivity(), LocationPermissionCallback {
|
||||||
|
|
||||||
position?.let {
|
position?.let {
|
||||||
mapView?.zoomLevelDouble?.let { zoomLevel ->
|
mapView?.zoomLevelDouble?.let { zoomLevel ->
|
||||||
Utils.handleGeoCoordinates(this, it, zoomLevel)
|
GeoCoordinates.handleGeoCoordinates(this, it, zoomLevel)
|
||||||
} ?: Utils.handleGeoCoordinates(this, it)
|
} ?: GeoCoordinates.handleGeoCoordinates(this, it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.upload.mediaDetails.UploadMediaDetailFragment
|
||||||
import fr.free.nrw.commons.utils.DateUtil.getDateStringWithSkeletonPattern
|
import fr.free.nrw.commons.utils.DateUtil.getDateStringWithSkeletonPattern
|
||||||
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
|
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.LangCodeUtils.getLocalizedResources
|
||||||
import fr.free.nrw.commons.utils.PermissionUtils.PERMISSIONS_STORAGE
|
import fr.free.nrw.commons.utils.PermissionUtils.PERMISSIONS_STORAGE
|
||||||
import fr.free.nrw.commons.utils.PermissionUtils.checkPermissionsAndPerformAction
|
import fr.free.nrw.commons.utils.PermissionUtils.checkPermissionsAndPerformAction
|
||||||
|
|
@ -917,7 +918,7 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
|
||||||
|
|
||||||
private fun onMediaDetailCoordinatesClicked() {
|
private fun onMediaDetailCoordinatesClicked() {
|
||||||
if (media!!.coordinates != null && activity != null) {
|
if (media!!.coordinates != null && activity != null) {
|
||||||
Utils.handleGeoCoordinates(activity, media!!.coordinates)
|
GeoCoordinates.handleGeoCoordinates(activity, media!!.coordinates)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import fr.free.nrw.commons.contributions.ContributionController
|
||||||
import fr.free.nrw.commons.kvstore.JsonKvStore
|
import fr.free.nrw.commons.kvstore.JsonKvStore
|
||||||
import fr.free.nrw.commons.nearby.Place
|
import fr.free.nrw.commons.nearby.Place
|
||||||
import fr.free.nrw.commons.utils.ActivityUtils
|
import fr.free.nrw.commons.utils.ActivityUtils
|
||||||
|
import fr.free.nrw.commons.utils.GeoCoordinates
|
||||||
import fr.free.nrw.commons.wikidata.WikidataConstants
|
import fr.free.nrw.commons.wikidata.WikidataConstants
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
@ -104,7 +105,7 @@ class CommonPlaceClickActions
|
||||||
|
|
||||||
fun onDirectionsClicked(): (Place) -> Unit =
|
fun onDirectionsClicked(): (Place) -> Unit =
|
||||||
{
|
{
|
||||||
Utils.handleGeoCoordinates(activity, it.getLocation())
|
GeoCoordinates.handleGeoCoordinates(activity, it.getLocation())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun storeSharedPrefs(selectedPlace: Place) {
|
private fun storeSharedPrefs(selectedPlace: Place) {
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@ import fr.free.nrw.commons.nearby.presenter.NearbyParentFragmentPresenter
|
||||||
import fr.free.nrw.commons.upload.FileUtils
|
import fr.free.nrw.commons.upload.FileUtils
|
||||||
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
|
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
|
||||||
import fr.free.nrw.commons.utils.ExecutorUtils.get
|
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.getScreenWidth
|
||||||
import fr.free.nrw.commons.utils.LayoutUtils.setLayoutHeightAlignedToWidth
|
import fr.free.nrw.commons.utils.LayoutUtils.setLayoutHeightAlignedToWidth
|
||||||
import fr.free.nrw.commons.utils.MapUtils.defaultLatLng
|
import fr.free.nrw.commons.utils.MapUtils.defaultLatLng
|
||||||
|
|
@ -2851,7 +2852,7 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
|
||||||
|
|
||||||
R.drawable.ic_directions_black_24dp -> {
|
R.drawable.ic_directions_black_24dp -> {
|
||||||
selectedPlace?.let {
|
selectedPlace?.let {
|
||||||
Utils.handleGeoCoordinates(this.context, it.getLocation())
|
GeoCoordinates.handleGeoCoordinates(this.context, it.getLocation())
|
||||||
binding?.map?.zoomLevelDouble ?: 0.0
|
binding?.map?.zoomLevelDouble ?: 0.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,7 +22,6 @@ import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import fr.free.nrw.commons.location.LatLng;
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class Utils {
|
public class Utils {
|
||||||
|
|
@ -79,35 +78,6 @@ public class Utils {
|
||||||
customTabsIntent.launchUrl(context, url);
|
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
|
* To take screenshot of the screen and return it in Bitmap format
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue