diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/data/Metadata.java b/android/app/src/main/java/app/organicmaps/bookmarks/data/Metadata.java index 79bb643697..f5a2b88e2d 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/data/Metadata.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/data/Metadata.java @@ -22,7 +22,8 @@ public class Metadata implements Parcelable FMD_FAX_NUMBER(4), FMD_STARS(5), FMD_OPERATOR(6), - FMD_URL(7), + // Removed and is not used in the core. Use FMD_WEBSITE instead. + //FMD_URL(7), FMD_WEBSITE(8), FMD_INTERNET(9), FMD_ELE(10), diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageLinksFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageLinksFragment.java index 3c39ac6409..37db55e8ec 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageLinksFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageLinksFragment.java @@ -94,7 +94,7 @@ public class PlacePageLinksFragment extends Fragment implements Observer items = new ArrayList<>(); items.add(url); - final String metadata = type == Metadata.MetadataType.FMD_WEBSITE ? getWebsiteUrl(mMapObject) : mMapObject.getMetadata(type); + final String metadata = type == Metadata.MetadataType.FMD_WEBSITE + ? getWebsiteUrl(mMapObject, false /* strip */) + : mMapObject.getMetadata(type); // Add user names for social media if available if (!metadata.equals(url) && isSocialUsername(type)) items.add(metadata); @@ -237,17 +239,26 @@ public class PlacePageLinksFragment extends Fragment implements Observer 1) + { + final int start = website.startsWith(kHttps) ? kHttps.length() : (website.startsWith(kHttp) ? kHttp.length() : 0); + final int end = website.endsWith("/") ? len - 1 : len; + return website.substring(start, end); + } + return website; } private void refreshLinks() { UiUtils.showIf(getExternalUrl(mMapObject) != null, mKayak); - refreshMetadataOrHide(getWebsiteUrl(mMapObject), mWebsite, mTvWebsite); + refreshMetadataOrHide(getWebsiteUrl(mMapObject, true /* strip */), mWebsite, mTvWebsite); String wikimedia_commons = mMapObject.getMetadata(Metadata.MetadataType.FMD_WIKIMEDIA_COMMONS); String wikimedia_commons_text = TextUtils.isEmpty(wikimedia_commons) ? "" : getResources().getString(R.string.wikimedia_commons); refreshMetadataOrHide(wikimedia_commons_text, mWikimedia, mTvWikimedia); diff --git a/data/editor.config b/data/editor.config index 6ce67d0780..a5f01c434a 100644 --- a/data/editor.config +++ b/data/editor.config @@ -59,9 +59,9 @@ - + diff --git a/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift b/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift index 54980fd7a6..2fc2e770d4 100644 --- a/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift +++ b/iphone/Maps/UI/PlacePage/Components/PlacePageInfoViewController.swift @@ -136,7 +136,8 @@ class PlacePageInfoViewController: UIViewController { } if let website = placePageInfoData.website { - websiteView = createInfoItem(website, icon: UIImage(named: "ic_placepage_website"), style: .link) { [weak self] in + // Strip website url only when the value is displayed, to avoid issues when it's opened or edited. + websiteView = createInfoItem(stripUrl(str: website), icon: UIImage(named: "ic_placepage_website"), style: .link) { [weak self] in self?.delegate?.didPressWebsite() } } @@ -247,6 +248,16 @@ class PlacePageInfoViewController: UIViewController { stackView.addArrangedSubviewWithSeparator(viewController.view) viewController.didMove(toParent: self) } + + private static let kHttp = "http://" + private static let kHttps = "https://" + + private func stripUrl(str: String) -> String { + let dropFromStart = str.hasPrefix(PlacePageInfoViewController.kHttps) ? PlacePageInfoViewController.kHttps.count + : (str.hasPrefix(PlacePageInfoViewController.kHttp) ? PlacePageInfoViewController.kHttp.count : 0); + let dropFromEnd = str.hasSuffix("/") ? 1 : 0; + return String(str.dropFirst(dropFromStart).dropLast(dropFromEnd)) + } } private extension UIStackView {