Fix #7747 Add "Copy coordinates" into Share dialog.

This commit is contained in:
Dima-1 2020-02-10 11:41:38 +02:00
parent 3217aae9a3
commit 4f33c0d70e
3 changed files with 13 additions and 1 deletions

View file

@ -11,6 +11,7 @@
Thx - Hardy Thx - Hardy
--> -->
<string name="copy_coordinates">Copy coordinates</string>
<string name="reset_to_default_category_button_promo">Reset to default will reset sort order to the default state after installation.</string> <string name="reset_to_default_category_button_promo">Reset to default will reset sort order to the default state after installation.</string>
<string name="use_system_screen_timeout">Use system screen timeout</string> <string name="use_system_screen_timeout">Use system screen timeout</string>
<string name="use_system_screen_timeout_promo">Disabled by default, if OsmAnd running on foreground, the screen doesnt time out.\n\nIf enabled OsmAnd will use system timeout settings.</string> <string name="use_system_screen_timeout_promo">Disabled by default, if OsmAnd running on foreground, the screen doesnt time out.\n\nIf enabled OsmAnd will use system timeout settings.</string>

View file

@ -216,7 +216,7 @@ public class ShareDialog {
public static void sendToClipboard(Activity activity, String text) { public static void sendToClipboard(Activity activity, String text) {
ClipboardManager clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE); ClipboardManager clipboard = (ClipboardManager) activity.getSystemService(Activity.CLIPBOARD_SERVICE);
clipboard.setText(text); clipboard.setText(text);
Toast.makeText(activity, R.string.copied_to_clipboard, Toast.LENGTH_LONG) Toast.makeText(activity, activity.getString(R.string.copied_to_clipboard) + "\n" + text, Toast.LENGTH_LONG)
.show(); .show();
} }
} }

View file

@ -9,6 +9,9 @@ import android.support.v4.view.ViewCompat;
import android.widget.Toast; import android.widget.Toast;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.actions.ShareDialog; import net.osmand.plus.activities.actions.ShareDialog;
@ -33,6 +36,7 @@ public class ShareMenu extends BaseMenuController {
MESSAGE(R.drawable.ic_action_message, R.string.shared_string_send), MESSAGE(R.drawable.ic_action_message, R.string.shared_string_send),
CLIPBOARD(R.drawable.ic_action_copy, R.string.shared_string_copy), CLIPBOARD(R.drawable.ic_action_copy, R.string.shared_string_copy),
NAME(R.drawable.ic_action_copy, R.string.copy_location_name), NAME(R.drawable.ic_action_copy, R.string.copy_location_name),
COORDINATES(R.drawable.ic_action_copy, R.string.copy_coordinates),
GEO(R.drawable.ic_world_globe_dark, R.string.share_geo), GEO(R.drawable.ic_world_globe_dark, R.string.share_geo),
QR_CODE(R.drawable.ic_action_qrcode, R.string.shared_string_qr_code); QR_CODE(R.drawable.ic_action_qrcode, R.string.shared_string_qr_code);
@ -62,6 +66,7 @@ public class ShareMenu extends BaseMenuController {
list.add(ShareItem.MESSAGE); list.add(ShareItem.MESSAGE);
list.add(ShareItem.CLIPBOARD); list.add(ShareItem.CLIPBOARD);
list.add(ShareItem.NAME); list.add(ShareItem.NAME);
list.add(ShareItem.COORDINATES);
list.add(ShareItem.GEO); list.add(ShareItem.GEO);
list.add(ShareItem.QR_CODE); list.add(ShareItem.QR_CODE);
return list; return list;
@ -124,6 +129,12 @@ public class ShareMenu extends BaseMenuController {
Toast.LENGTH_LONG).show(); Toast.LENGTH_LONG).show();
} }
break; break;
case COORDINATES:
OsmandSettings st = ((OsmandApplication) mapActivity.getApplicationContext()).getSettings();
int f = st.COORDINATES_FORMAT.get();
ShareDialog.sendToClipboard(mapActivity,
OsmAndFormatter.getFormattedCoordinates(latLon.getLatitude(), latLon.getLongitude(), f));
break;
case GEO: case GEO:
Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUrl)); Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUrl));
mapActivity.startActivity(mapIntent); mapActivity.startActivity(mapIntent);