From ce413ff6d3097fbe21fc662be489b597fb72e5ce Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Thu, 11 Dec 2025 16:23:35 +0100 Subject: [PATCH] [android] Add open in panoramax link on the place page Signed-off-by: Jean-Baptiste --- .../widget/placepage/PlacePageUtils.java | 8 +++++++ .../widget/placepage/PlacePageView.java | 10 ++++++++ .../main/res/layout/place_page_details.xml | 2 ++ .../layout/place_page_open_photoviewer.xml | 24 +++++++++++++++++++ android/app/src/main/res/values/strings.xml | 1 + 5 files changed, 45 insertions(+) create mode 100644 android/app/src/main/res/layout/place_page_open_photoviewer.xml diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java index ff3b05d6e..c5103e44d 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageUtils.java @@ -105,4 +105,12 @@ public class PlacePageUtils }); popup.show(); } + + public static String buildPanoramaxURL(double lat, double lon) + { + final String panoramaxURL = "https://api.panoramax.xyz/?map="; + final String levelZoom = "16"; + final String quality_score = "&pic_score=ABC"; + return panoramaxURL + levelZoom + "/" + lat + "/" + lon + quality_score; + } } diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java index 8568874b2..44a153348 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/PlacePageView.java @@ -4,6 +4,7 @@ import static android.view.View.GONE; import static android.view.View.VISIBLE; import static app.organicmaps.sdk.util.Utils.getLocalizedFeatureType; import static app.organicmaps.sdk.util.Utils.getTagValueLocalized; +import static app.organicmaps.widget.placepage.PlacePageUtils.buildPanoramaxURL; import android.content.Context; import android.content.res.ColorStateList; @@ -290,6 +291,9 @@ public class PlacePageView extends Fragment openIn.setOnClickListener(this); openIn.setOnLongClickListener(this); openIn.setVisibility(VISIBLE); + LinearLayout openPhotoViewer = mFrame.findViewById(R.id.ll__place_open_phviewer); + openPhotoViewer.setOnClickListener(this); + openPhotoViewer.setVisibility(VISIBLE); mTvLatlon = mFrame.findViewById(R.id.tv__place_latlon); mWifi = mFrame.findViewById(R.id.ll__place_wifi); mTvWiFi = mFrame.findViewById(R.id.tv__place_wifi); @@ -987,6 +991,8 @@ public class PlacePageView extends Fragment mMapObject.getName()); Utils.openUri(requireContext(), Uri.parse(uri), R.string.uri_open_location_failed); } + else if (id == R.id.ll__place_open_phviewer) + Utils.openUrl(requireContext(), buildPanoramaxURL(mMapObject.getLat(),mMapObject.getLon())); else if (id == R.id.direction_frame) showBigDirection(); else if (id == R.id.item_icon) @@ -1034,6 +1040,10 @@ public class PlacePageView extends Fragment mMapObject.getName()); PlacePageUtils.copyToClipboard(requireContext(), mFrame, uri); } + else if (id == R.id.ll__place_open_phviewer) + { + PlacePageUtils.copyToClipboard(requireContext(),mFrame, buildPanoramaxURL(mMapObject.getLat(),mMapObject.getLon())); + } else if (id == R.id.ll__place_operator) items.add(mTvOperator.getText().toString()); else if (id == R.id.ll__place_network) diff --git a/android/app/src/main/res/layout/place_page_details.xml b/android/app/src/main/res/layout/place_page_details.xml index c927dc0bf..811b5a94a 100644 --- a/android/app/src/main/res/layout/place_page_details.xml +++ b/android/app/src/main/res/layout/place_page_details.xml @@ -71,6 +71,8 @@ + + + + + + + + diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 3d4c9ae30..3c5977fe3 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -966,4 +966,5 @@ Offline Maps A map needs to be downloaded to view and navigate the area.\nDownload maps for areas you want to travel. Edit the list to add a description + Open in Panoramax