[search][android] Add Paid/Free indicator to search results

Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
This commit is contained in:
David Martinez 2023-11-04 13:05:31 +01:00 committed by Viktor Govako
parent 9bbc84aa3f
commit ee1eb0d8e6
2 changed files with 11 additions and 4 deletions

View file

@ -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<jint>(result.IsOpenNow()),
result.GetMinutesUntilOpen(),result.GetMinutesUntilClosed(),
static_cast<jboolean>(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");

View file

@ -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)));