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>
It groups two phone-related properties, `phone` and `phoneUrl` (renamed
to `url`), that used to be in `PlacePageInfoData`. This will make it
easier to support an array of phones for one POI.
Signed-off-by: Eugene Nikolsky <omaps@egeek.me>