Skip to content

Inappropriate way of sending locations is used #13006

Open

Description

@fynngodau

The Signal app currently uses the following method of sharing a user's location, after the user has selected a location on the in-app map.

  1. Load Google Map.
  2. Wait for Google Map to finish loading.
  3. Take snapshot of Google Map.
  4. Remove Google Map and replace it with its snapshot.
  5. Once the user hits send, send this snapshot as an image.

This is implemented in the following snippet:

public static ListenableFuture<Bitmap> snapshot(final LatLng place, @NonNull final MapView mapView) {
final SettableFuture<Bitmap> future = new SettableFuture<>();
mapView.onCreate(null);
mapView.onResume();
mapView.setVisibility(View.VISIBLE);
mapView.getMapAsync(googleMap -> {
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(place, 13));
googleMap.addMarker(new MarkerOptions().position(place));
googleMap.setBuildingsEnabled(true);
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.getUiSettings().setAllGesturesEnabled(false);
googleMap.setOnMapLoadedCallback(() -> googleMap.snapshot(bitmap -> {
future.set(bitmap);
mapView.setVisibility(View.GONE);
mapView.onPause();
mapView.onDestroy();
}));
});

The two issues are:

Activity

  1. stale commented on Sep 10, 2023

    @stale

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  2. fynngodau commented on Sep 10, 2023

    @fynngodau
    Author
  3. ggdupont commented on Sep 11, 2023

    @ggdupont

    Just discovered the feature today (potentially a very useful feature). Then I understood it uses google map... to transmit a screenshot??

    I share the technical concerns expressed by @fynngodau here: why send a screenshot when coordinates would be enough? On which I would add a privacy concern: would it be possible to use alternative privacy-friendly apps like OSM?

  4. stale commented on Nov 10, 2023

    @stale

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  5. fynngodau commented on Nov 10, 2023

    @fynngodau
    Author
  6. stale commented on Jan 9, 2024

    @stale

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  7. fynngodau commented on Jan 9, 2024

    @fynngodau
    Author
  8. stale commented on Jan 21, 2024

    @stale

    This issue has been closed due to inactivity.

  9. fynngodau commented on Jan 21, 2024

    @fynngodau
    Author
  10. 20 remaining items

  11. mxa commented on Mar 31, 2025

    @mxa

    Bad bot! That the signal team seem to have different priorities hopefully doesn't mean this will never be fixed.

  12. MichaelZ4714 commented on Jun 24, 2025

    @MichaelZ4714

    I really wish that this problem will be solved soon!!

  13. c4tb3rt commented on Aug 29, 2025

    @c4tb3rt

    Signal should simply get the coordinates from GPS and send them via a geo: link. The user receiving that link can then decide which app to use with the geo: intent. No need for Google Maps at all.

    This really seems like the best idea.

  14. jayaddison commented on Oct 15, 2025

    @jayaddison

    Signal should simply get the coordinates from GPS and send them via a geo: link. The user receiving that link can then decide which app to use with the geo: intent. No need for Google Maps at all.

    On the other hand: it is helpful for sighted users to have visual imagery of a map location; a standalone geo: URI alone might not provide that.

  15. mxa commented on Oct 15, 2025

    @mxa

    On the other hand: it is helpful for sighted users to have visual imagery of a map location; a standalone geo: URI alone might not provide that.

    True, but since sharing the sent location with a map provider is a privacy issue, the preview feature should at best be a n opt-in preference, not the default.

  16. jayaddison commented on Oct 15, 2025

    @jayaddison

    On the other hand: it is helpful for sighted users to have visual imagery of a map location; a standalone geo: URI alone might not provide that.

    True, but since sharing the sent location with a map provider is a privacy issue, the preview feature should at best be a n opt-in preference, not the default.

    After spending some time thinking about it, it makes sense to me that the app has to connect out to retrieve a map image from a remote service, because that data -- that evolves on a continuous basis, for example businesses, road layouts, etc -- is not going to ship inside the app with today's mobile network / map data size tradeoffs.

    Also, it could be an option for every recipient to make a decision about whether to display the sender's location as a map preview. However, given that Signal supports large-ish group sizes, a single sender causing n (where n could easily be greater than 10) recipients to reveal their location to a remote map service, means we should probably prefer for the sender -- precisely 1 user -- to choose.

    I do think your suggestion that it could be opt-in is reasonable. I would suggest perhaps a prompt-on-first-share, with a choice of user selections from:

    • Always allow map previews when I share my location.
    • Allow map previews when I share my location within this conversation.
    • Ask whether to provide a map preview every time I share my location.
    • Only send geo: URIs when I share my location.

    An orthogonal issue is: what map preview providers are supported (currently, AFAICT, this is Google Maps only -- however others could be added).

  17. clijsters commented on Oct 27, 2025

    @clijsters

    Just jumping in with a user-perspective: I am using /e/OS, which has microG enabled - the map preview works without the classic google maps invocation. But the link which gets generated is a google maps link.

    What my recipient gets, is a map picture that suggests its a MapLibre location (no one know the difference between map providers and navigation apps) and a link to maps.google.com

    I'd say a geo: link as default would be a good start and a user selection for if a preview should get generated, like suggested by @jayaddison makes sense to me.

    I'm impressed, that this topic is open since 2023

  18. hamishmb commented on Jun 2, 2026

    @hamishmb

    This feature doesn't work at all for me, as I am on LineageOS without Google Play Services, which is disappointing.

  19. dylanbabel commented on Jun 2, 2026

    @dylanbabel
  20. bordenc commented on Jun 11, 2026

    @bordenc

    Would this be related to the fact that Signal recognises geo URIs as phone numbers and not geo URIs? I second the others that the users should decide what mapping app to use, not Signal.

  21. dylanbabel commented on Jun 12, 2026

    @dylanbabel
  22. joe-123 commented on Sep 29, 2026

    @joe-123

    I would greatly appreciate a way of easily sending the location without google maps. geo URI could be a possibility.
    Drawback: one could only send the current position (which might be off). If you want to send a different position the proposed solution doesn't work, right!?

    Side note: Signal currently doesn't turn geo URIs into clickable links. Someone opened a PR for that. But Signal closed it for now:
    #14838
    Would be great if Signal would implement it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions