Inappropriate way of sending locations is used
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.
- Load Google Map.
- Wait for Google Map to finish loading.
- Take snapshot of Google Map.
- Remove Google Map and replace it with its snapshot.
- Once the user hits send, send this snapshot as an image.
This is implemented in the following snippet:
https://github.com/signalapp/Signal-Android/blob/55af6ca84e32683662a96f9f621728d47fabae9e/app/src/main/java/org/thoughtcrime/securesms/components/location/SignalMapView.java#L77-L96
The two issues are:
- 1.-4. is an inappropriate way of generating a snapshot. It is better to use a lite mode map instead, because this implements exactly what is needed (non-interactive snapshot of a map).
- An instance in which the current implementation is inappropriate is when
onMapLoadedandonSnapshotReadyhave not yet been called, but the activity hosting the map is destroyed. In this case, the activity'sonDestroymethod must call the map'sonDestroymethod (which is not implemented). Lite mode maps do not expect lifecycle methods to be called, except foronCreate. - In fact, Signal currently forgets to call a few of the lifecycle methods. See https://github.com/signalapp/Signal-Android/pull/13008.
- Additional info: this is also related to https://github.com/signalapp/Signal-Android/issues/12723#issuecomment-1595810834, because microG does not implement
GoogleMap.OnMapLoadedCallbackcorrectly (https://github.com/microg/GmsCore/issues/1960).
- An instance in which the current implementation is inappropriate is when
- 5. is in violation of the contract of the
snapshotAPI, and by extension likely also of the terms of usage of the Google Maps API.Note: Images of the map must not be transmitted to your servers, or otherwise used outside of the application. If you need to send a map to another application or user, send data that allows them to reconstruct the map for the new user instead of a snapshot.
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.
Still current, don't close.
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?
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.
Still current, don't close.
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.
Still current, don't close.
This issue has been closed due to inactivity.
@stale You have been a bad bot.
Next: #13375.
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.
Still current, don't close.
The change in microG has been merged by mar-v-in. Are there still problems with Signal?
@ale5000-git The Signal issue that was resolved with https://github.com/microg/GmsCore/pull/2182 was https://github.com/signalapp/Signal-Android/issues/12723#issuecomment-1595810834, which has since been closed by stalebot. This issue has little to do with that and is not specific to microG in itself.
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.
Still current, don't close.
Is there not a way to implement the use of other map services on a device? For example osmand or organic maps? Or simply accessing the GPS location of the device and sending the coordinates instead with links for google and apple maps and possibly others? I use iHunter for mapping offline in hunting areas and it shares locations like this.