From ee1eb0d8e63f55a15bc93d32104b5116f3600130 Mon Sep 17 00:00:00 2001 From: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> Date: Sat, 4 Nov 2023 13:05:31 +0100 Subject: [PATCH] [search][android] Add Paid/Free indicator to search results Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> --- android/app/src/main/cpp/app/organicmaps/SearchEngine.cpp | 7 ++++--- .../main/java/app/organicmaps/search/SearchResult.java | 8 +++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/android/app/src/main/cpp/app/organicmaps/SearchEngine.cpp b/android/app/src/main/cpp/app/organicmaps/SearchEngine.cpp index 0e1b641401..5c273df65c 100644 --- a/android/app/src/main/cpp/app/organicmaps/SearchEngine.cpp +++ b/android/app/src/main/cpp/app/organicmaps/SearchEngine.cpp @@ -115,12 +115,13 @@ jobject ToJavaResult(Result const & result, search::ProductInfo const & productI jni::TScopedLocalRef brand(env, jni::ToJavaString(env, result.GetBrand())); jni::TScopedLocalRef airportIata(env, jni::ToJavaString(env, result.GetAirportIata())); jni::TScopedLocalRef roadShields(env, jni::ToJavaString(env, result.GetRoadShields())); + jni::TScopedLocalRef fee(env, jni::ToJavaString(env, result.GetFee())); jni::TScopedLocalRef desc(env, env->NewObject(g_descriptionClass, g_descriptionConstructor, featureId.get(), featureType.get(), address.get(), dist.get(), cuisine.get(), brand.get(), airportIata.get(), - roadShields.get(), + roadShields.get(), fee.get(), static_cast(result.IsOpenNow()), result.GetMinutesUntilOpen(),result.GetMinutesUntilClosed(), static_cast(popularityHasHigherPriority))); @@ -246,14 +247,14 @@ extern "C" /* Description(FeatureId featureId, String featureType, String region, Distance distance, String cuisine, String brand, String airportIata, String roadShields, - int openNow, int minutesUntilOpen, int minutesUntilClosed, + String fee, int openNow, int minutesUntilOpen, int minutesUntilClosed, boolean hasPopularityHigherPriority) */ g_descriptionConstructor = jni::GetConstructorID(env, g_descriptionClass, "(Lapp/organicmaps/bookmarks/data/FeatureId;" "Ljava/lang/String;Ljava/lang/String;Lapp/organicmaps/util/Distance;" "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;" - "Ljava/lang/String;IIIZ)V"); + "Ljava/lang/String;Ljava/lang/String;IIIZ)V"); g_popularityClass = jni::GetGlobalClassRef(env, "app/organicmaps/search/Popularity"); g_popularityConstructor = jni::GetConstructorID(env, g_popularityClass, "(I)V"); diff --git a/android/app/src/main/java/app/organicmaps/search/SearchResult.java b/android/app/src/main/java/app/organicmaps/search/SearchResult.java index cf8dc1973b..ac41b0fbe9 100644 --- a/android/app/src/main/java/app/organicmaps/search/SearchResult.java +++ b/android/app/src/main/java/app/organicmaps/search/SearchResult.java @@ -48,6 +48,8 @@ public class SearchResult public final String brand; public final String airportIata; public final String roadShields; + + public final String fee; public final int openNow; public final int minutesUntilOpen; public final int minutesUntilClosed; @@ -55,7 +57,7 @@ public class SearchResult public Description(FeatureId featureId, String featureType, String region, Distance distance, String cuisine, String brand, String airportIata, String roadShields, - int openNow, int minutesUntilOpen, int minutesUntilClosed, + String fee, int openNow, int minutesUntilOpen, int minutesUntilClosed, boolean hasPopularityHigherPriority) { this.featureId = featureId; @@ -66,6 +68,7 @@ public class SearchResult this.brand = brand; this.airportIata = airportIata; this.roadShields = roadShields; + this.fee = fee; this.openNow = openNow; this.minutesUntilOpen = minutesUntilOpen; this.minutesUntilClosed = minutesUntilClosed; @@ -179,6 +182,9 @@ public class SearchResult tail.append(" • ").append(description.cuisine); } + if (!TextUtils.isEmpty(description.fee)) + tail.append(" • ").append(description.fee); + if (isHotel && stars != 0) tail.append(" • ").append("★★★★★★★".substring(0, Math.min(7, stars)));