1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
package com.mapswithme.maps.search;
import androidx.annotation.NonNull;
import com.mapswithme.maps.bookmarks.data.FeatureId;
/**
* Class instances are created from native code.
*/
@SuppressWarnings("unused")
public class SearchResult implements PopularityProvider
{
public static final int TYPE_SUGGEST = 0;
public static final int TYPE_RESULT = 1;
public static final int TYPE_LOCAL_ADS_CUSTOMER = 2;
// Values should match osm::YesNoUnknown enum.
public static final int OPEN_NOW_UNKNOWN = 0;
public static final int OPEN_NOW_YES = 1;
public static final int OPEN_NOW_NO = 2;
public static final SearchResult EMPTY = new SearchResult("", "", 0, 0,
new int[] {});
public static class Description
{
public final FeatureId featureId;
public final String featureType;
public final String region;
public final String distance;
public final String cuisine;
public final String brand;
public final String airportIata;
public final String pricing;
public final float rating;
public final int stars;
public final int openNow;
public final boolean hasPopularityHigherPriority;
public Description(FeatureId featureId, String featureType, String region, String distance,
String cuisine, String brand, String airportIata, String pricing,
float rating, int stars, int openNow, boolean hasPopularityHigherPriority)
{
this.featureId = featureId;
this.featureType = featureType;
this.region = region;
this.distance = distance;
this.cuisine = cuisine;
this.brand = brand;
this.airportIata = airportIata;
this.pricing = pricing;
this.rating = rating;
this.stars = stars;
this.openNow = openNow;
this.hasPopularityHigherPriority = hasPopularityHigherPriority;
}
}
public final String name;
public final String suggestion;
public final double lat;
public final double lon;
public final int type;
public final Description description;
// Consecutive pairs of indexes (each pair contains : start index, length), specifying highlighted matches of original query in result
public final int[] highlightRanges;
public final boolean isHotel;
@NonNull
private final Popularity mPopularity;
public SearchResult(String name, String suggestion, double lat, double lon, int[] highlightRanges)
{
this.name = name;
this.suggestion = suggestion;
this.lat = lat;
this.lon = lon;
this.isHotel = false;
this.description = null;
this.type = TYPE_SUGGEST;
this.highlightRanges = highlightRanges;
mPopularity = Popularity.defaultInstance();
}
public SearchResult(String name, Description description, double lat, double lon, int[] highlightRanges,
boolean isHotel, boolean isLocalAdsCustomer, @NonNull Popularity popularity)
{
this.type = isLocalAdsCustomer ? TYPE_LOCAL_ADS_CUSTOMER : TYPE_RESULT;
this.name = name;
this.isHotel = isHotel;
mPopularity = popularity;
this.suggestion = null;
this.lat = lat;
this.lon = lon;
this.description = description;
this.highlightRanges = highlightRanges;
}
@NonNull
@Override
public Popularity getPopularity()
{
return mPopularity;
}
}
|