Closed
Description
- As a user
- I want to send and view my current location
- so that I can chat with others about where them and I are at
Size estimate
M
Dependencies
- [Story] Send pin-drop location #1674
- [Story] View location in timeline #1675
- [Story] View expanded map #1678
Acceptance criteria
- In the sending map view:
- Unless already granted, permission to access the user's location is requested when the map view opens
- If the user's location was resolved, the map view is centered on it
Error handling when location resolution fails- Panning switches into pin drop mode
- The location button switches back into current location mode
m.location->uri
contains the coordinates at the center of the map- When in current location mode:
m.asset->type
is set tom.self
zoom_level
insidem.location
is set to 15- Value of
m.location->description
: Element X doesn't have a UX to fill a description. So the value will be always absent/null
- Value of
m.text
: the rust sdk populate this filed in the same way of thebody
(eg."Location was shared at geo:42.3431550455947,13.3939963489709 as of 2023-07-03 11:15:01 +0000"
)
- In expanded map view:
- When location services are active and permission has been granted, the user's own location is automatically shown
- Default zoom level & centering (latitude: 49.843, longitude: 9.902056), zoom = 2.7
- The location button requests and centers on the user's own location
- TBD: Error handling when location permission is denied and user press the location button
- Analytics tracking
- When sending a location
- Event:
Composer
- Property:
isLocation = true
- Property:
locationType = MyLocation
- Other existing properties on the event are set according to context
- When sending other events we set
isLocation = false
and leavelocationType
empty
- Event:
- When sending a location
Out of scope
Sign-off
Android
- Design sign-off on completion
- QA sign-off on completion
- Product sign-off on completion
iOS
- Design sign-off on completion
- QA sign-off on completion
- Product sign-off on completion
- Nothing
Subtasks
### Android
- [ ] https://github.com/vector-im/element-x-android/issues/710
- [ ] https://github.com/vector-im/element-x-android/pull/767
- [ ] https://github.com/vector-im/element-x-android/pull/770
- [ ] https://github.com/vector-im/element-x-android/pull/877
- [ ] https://github.com/vector-im/element-x-android/pull/876
- [ ] https://github.com/vector-im/element-x-android/pull/915
- [ ] https://github.com/vector-im/element-x-android/pull/914
- [ ] https://github.com/vector-im/element-x-android/pull/919
- [ ] https://github.com/vector-im/element-x-android/pull/930
- [ ] https://github.com/vector-im/element-x-android/pull/929
- [ ] https://github.com/vector-im/element-x-android/pull/931
- [ ] https://github.com/vector-im/element-x-android/pull/936
### iOS
- [ ] https://github.com/vector-im/element-x-ios/issues/1180
- [ ] https://github.com/vector-im/element-x-ios/pull/1309
### Other