On the every new tap on the `Track` or during the `Elevation chart` dragging, the track `Active point` will be updated now. It allows to keep the current selected track point coordinates up to date and fix the bug when the `route to/route from` buttons use only the initial coordinates.
Key changes:
1. the `Active point` and `My position` points are moved from the `Elevation profile` to the `PlacePageTrackData` because this properties are related to the whole track. Not only chart. The chart is only one of the consumers of this data updates.
2. The subscription to the active point updates is moved from the `Elevation profile` to the `PlacePagePresenter`. The reason - see 1.
2. The callback `onActivePointChanged` is added to notify that the active point is updated
3. When the callback is triggered the `PlacePageTrackData` fetches the new coordinates from the core and saves it. This coordinates are used by the `route to/from` buttons.
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
1. add an new screen (layout)
2. add TR icon for the bottom tabbar
3. share current location from the TR PP
4. refactor TR manager to properly handle state updates and pass them to the LiveActivityManager and PlacePage
5. add init/update with TrackInfo/EleInfo methods to the PlacePageData and PlacePagePreviewData to update the PP state
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
1. update style: bigger fonts and insets
2. update background blur
3. get rid of MWM prefix
4. replace the timer with the simplier dispatch async after. In this case there is no needed to create a timer for each toasts message just to add a timeout
5. reorder Toast class methods
6. replace the instance `show` method with a `static show`. Because there non needed to call show every time. We do not have stored toast that will be showed in different places thane created.
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
Multiple phone numbers should be [separated with `;`][parsing] in OSM
`phone` values. This commit adds support for parsing and displaying such
phone numbers individually. Example POI with three phone numbers:
https://www.openstreetmap.org/way/233417266.
Before this change, the phone was displayed as one
value and trying to call it would fail because all the digits were
concatenated together, resulting in an invalid number. For the POI
above, the program tried to call
`tel://+150332563111503325879018008756807`.
This change fixes the parsing of `FMD_PHONE_NUMBER` into an array of
phone numbers. That required updates in a few areas:
- the POI details view (`PlacePageInfoViewController`) now displays
every phone number as a separate row, each with a clickable link for
that number; long-click to copy also works.
- the share info preparation (`MWMShareActivityItem`) displays phone
numbers separated with `; `, which provides a better phone detection
for iOS.
- the Call button (`PlacePageInteractor`) now has to ask the user which
number to call if there are more than one.
I tested this on an iPhone 15 Pro, iOS 17.2 simulator (temporarily
commenting the "can make phone call" checks).
Note: the Editing screen wasn't updated in order to keep this PR
smaller.
Fixes https://git.omaps.dev/organicmaps/organicmaps/issues/2458. The
corresponding fix for Android was in
https://github.com/organicmaps/organicmaps/pull/845.
[parsing]: https://wiki.openstreetmap.org/wiki/Key:phone#Parsing_phone_numbers
Signed-off-by: Eugene Nikolsky <omaps@egeek.me>
This will allow us to know which phone the user has picked when we've
added support for multiple phone numbers.
Signed-off-by: Eugene Nikolsky <omaps@egeek.me>
For now, it doesn't change anything because there's still at most one
phone, but this will help with multiple phone numbers because we'll need
to know which phone number the user has picked.
Signed-off-by: Eugene Nikolsky <omaps@egeek.me>