Skip to content

Commit

Permalink
2.7.0-rc.1 (#301)
Browse files Browse the repository at this point in the history
* Dependencies bump

* Add new functionality for the category search

* Changelog

* Bump SDK version name
  • Loading branch information
DzmitryFomchyn authored Dec 8, 2024
1 parent bb3276e commit b7240b1
Show file tree
Hide file tree
Showing 19 changed files with 313 additions and 41 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog for the Mapbox Search SDK for Android

## 2.7.0-rc.1

### New features
- Added new function to search for multiple categories, e.g., `SearchEngine.search(listOf("coffee_shop", "hotel"), ...)`,
- New option `CategorySearchOptions.ensureResultsPerCategory` is available. It allows to request category search results to include at least one POI for each category, provided a POI is available in a nearby location.

### Bug fixes
- Fixed photos metadata parsing for the `ApiType.SEARCH_BOX`.

### Mapbox dependencies
- Search Native SDK `2.7.0-rc.1`
- Common SDK `24.9.0-rc.1`



## 2.7.0-beta.1

### New features
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ fun createCoreSearchOptions(
timeDeviation: Double? = null,
addonAPI: Map<String, String>? = null,
offlineSearchPlacesOutsideBbox: Boolean = false,
ensureResultsPerCategory: Boolean? = null,
): CoreSearchOptions = CoreSearchOptions(
proximity = proximity,
origin = origin,
Expand All @@ -45,6 +46,7 @@ fun createCoreSearchOptions(
timeDeviation = timeDeviation,
addonAPI = addonAPI?.let { it as? HashMap<String, String> ?: HashMap(it) },
offlineSearchPlacesOutsideBbox = offlineSearchPlacesOutsideBbox,
ensureResultsPerCategory = ensureResultsPerCategory,
)

fun createCoreReverseGeoOptions(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ fun createTestCoreSearchOptions(
timeDeviation: Double? = null,
addonAPI: Map<String, String>? = null,
offlineSearchPlacesOutsideBbox: Boolean = false,
ensureResultsPerCategory: Boolean? = null,
): SearchOptions = SearchOptions(
proximity,
origin,
Expand All @@ -67,6 +68,7 @@ fun createTestCoreSearchOptions(
timeDeviation,
addonAPI?.let { it as? HashMap<String, String> ?: HashMap(it) },
offlineSearchPlacesOutsideBbox,
ensureResultsPerCategory,
)

@Suppress("LongParameterList")
Expand Down
2 changes: 1 addition & 1 deletion MapboxSearch/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ android.enableJetifier=false
kotlin.code.style=official

# SDK version attributes
VERSION_NAME=2.7.0-beta.1
VERSION_NAME=2.7.0-rc.1

# Artifact attributes
mapboxArtifactUserOrg=mapbox
Expand Down
4 changes: 2 additions & 2 deletions MapboxSearch/gradle/versions.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ ext {
mapbox_maps_version = '11.9.0-beta.1'
mapbox_turf_version = '6.15.0'

common_sdk_version = '24.9.0-beta.1'
common_sdk_version = '24.9.0-rc.1'
mapbox_base_version = '0.8.0'

search_native_version = '2.7.0-beta.1'
search_native_version = '2.7.0-rc.1'

detekt_version = '1.19.0'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
import com.mapbox.search.SearchEngineSettings;
import com.mapbox.search.common.AsyncOperationTask;
import com.mapbox.search.result.SearchResult;
import com.mapbox.search.sample.BuildConfig;
import com.mapbox.search.sample.R;

import java.util.Arrays;
import java.util.List;

public class CategorySearchJavaExampleActivity extends AppCompatActivity {
Expand Down Expand Up @@ -51,10 +50,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
);

final CategorySearchOptions options = new CategorySearchOptions.Builder()
.limit(1)
.limit(10)
.ensureResultsPerCategory(true)
.build();

searchRequestTask = searchEngine.search("cafe", options, searchCallback);
searchRequestTask = searchEngine.search(
Arrays.asList("cafe", "coffee_shop", "hotel"),
options,
searchCallback
);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,11 @@ class CategorySearchKotlinExampleActivity : BaseKotlinExampleActivity() {

override fun startExample() {
searchRequestTask = searchEngine.search(
"cafe",
CategorySearchOptions(limit = 1),
listOf("cafe", "coffee_shop", "hotel"),
CategorySearchOptions(
limit = 10,
ensureResultsPerCategory = true,
),
searchCallback
)
}
Expand Down
8 changes: 7 additions & 1 deletion MapboxSearch/sdk/api/api-metalava.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ package com.mapbox.search {
}

@kotlinx.parcelize.Parcelize public final class CategorySearchOptions implements android.os.Parcelable {
ctor public CategorySearchOptions(com.mapbox.geojson.Point? proximity = null, com.mapbox.geojson.BoundingBox? boundingBox = null, java.util.List<com.mapbox.search.common.IsoCountryCode>? countries = null, Boolean? fuzzyMatch = null, java.util.List<com.mapbox.search.common.IsoLanguageCode>? languages = defaultSearchOptionsLanguage(), Integer? limit = null, Integer? requestDebounce = null, com.mapbox.geojson.Point? origin = null, com.mapbox.search.common.NavigationProfile? navigationProfile = null, com.mapbox.search.RouteOptions? routeOptions = null, java.util.Map<java.lang.String,java.lang.String>? unsafeParameters = null, boolean ignoreIndexableRecords = false, Double? indexableRecordsDistanceThresholdMeters = null, Boolean? ensureResultsPerCategory = null);
ctor public CategorySearchOptions(com.mapbox.geojson.Point? proximity = null, com.mapbox.geojson.BoundingBox? boundingBox = null, java.util.List<com.mapbox.search.common.IsoCountryCode>? countries = null, Boolean? fuzzyMatch = null, java.util.List<com.mapbox.search.common.IsoLanguageCode>? languages = defaultSearchOptionsLanguage(), Integer? limit = null, Integer? requestDebounce = null, com.mapbox.geojson.Point? origin = null, com.mapbox.search.common.NavigationProfile? navigationProfile = null, com.mapbox.search.RouteOptions? routeOptions = null, java.util.Map<java.lang.String,java.lang.String>? unsafeParameters = null, boolean ignoreIndexableRecords = false, Double? indexableRecordsDistanceThresholdMeters = null);
ctor public CategorySearchOptions(com.mapbox.geojson.Point? proximity = null, com.mapbox.geojson.BoundingBox? boundingBox = null, java.util.List<com.mapbox.search.common.IsoCountryCode>? countries = null, Boolean? fuzzyMatch = null, java.util.List<com.mapbox.search.common.IsoLanguageCode>? languages = defaultSearchOptionsLanguage(), Integer? limit = null, Integer? requestDebounce = null, com.mapbox.geojson.Point? origin = null, com.mapbox.search.common.NavigationProfile? navigationProfile = null, com.mapbox.search.RouteOptions? routeOptions = null, java.util.Map<java.lang.String,java.lang.String>? unsafeParameters = null, boolean ignoreIndexableRecords = false);
ctor public CategorySearchOptions(com.mapbox.geojson.Point? proximity = null, com.mapbox.geojson.BoundingBox? boundingBox = null, java.util.List<com.mapbox.search.common.IsoCountryCode>? countries = null, Boolean? fuzzyMatch = null, java.util.List<com.mapbox.search.common.IsoLanguageCode>? languages = defaultSearchOptionsLanguage(), Integer? limit = null, Integer? requestDebounce = null, com.mapbox.geojson.Point? origin = null, com.mapbox.search.common.NavigationProfile? navigationProfile = null, com.mapbox.search.RouteOptions? routeOptions = null, java.util.Map<java.lang.String,java.lang.String>? unsafeParameters = null);
Expand All @@ -36,6 +37,7 @@ package com.mapbox.search {
ctor public CategorySearchOptions(com.mapbox.geojson.Point? proximity = null);
method public com.mapbox.geojson.BoundingBox? getBoundingBox();
method public java.util.List<com.mapbox.search.common.IsoCountryCode>? getCountries();
method public Boolean? getEnsureResultsPerCategory();
method public Boolean? getFuzzyMatch();
method public boolean getIgnoreIndexableRecords();
method public Double? getIndexableRecordsDistanceThresholdMeters();
Expand All @@ -50,6 +52,7 @@ package com.mapbox.search {
method public com.mapbox.search.CategorySearchOptions.Builder toBuilder();
property public final com.mapbox.geojson.BoundingBox? boundingBox;
property public final java.util.List<com.mapbox.search.common.IsoCountryCode>? countries;
property public final Boolean? ensureResultsPerCategory;
property public final Boolean? fuzzyMatch;
property public final boolean ignoreIndexableRecords;
property public final Double? indexableRecordsDistanceThresholdMeters;
Expand All @@ -69,6 +72,7 @@ package com.mapbox.search {
method public com.mapbox.search.CategorySearchOptions build();
method public com.mapbox.search.CategorySearchOptions.Builder countries(com.mapbox.search.common.IsoCountryCode... countries);
method public com.mapbox.search.CategorySearchOptions.Builder countries(java.util.List<com.mapbox.search.common.IsoCountryCode> countries);
method public com.mapbox.search.CategorySearchOptions.Builder ensureResultsPerCategory(Boolean? ensureResultsPerCategory);
method public com.mapbox.search.CategorySearchOptions.Builder fuzzyMatch(boolean fuzzyMatch);
method public com.mapbox.search.CategorySearchOptions.Builder ignoreIndexableRecords(boolean ignoreIndexableRecords);
method public com.mapbox.search.CategorySearchOptions.Builder indexableRecordsDistanceThresholdMeters(Double? threshold);
Expand Down Expand Up @@ -291,8 +295,10 @@ package com.mapbox.search {
method public default com.mapbox.search.common.AsyncOperationTask retrieve(String mapboxId, com.mapbox.search.SearchResultCallback callback);
method public com.mapbox.search.common.AsyncOperationTask search(String query, com.mapbox.search.SearchOptions options, java.util.concurrent.Executor executor, com.mapbox.search.SearchSuggestionsCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask search(String query, com.mapbox.search.SearchOptions options, com.mapbox.search.SearchSuggestionsCallback callback);
method public com.mapbox.search.common.AsyncOperationTask search(String categoryName, com.mapbox.search.CategorySearchOptions options, java.util.concurrent.Executor executor, com.mapbox.search.SearchCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask search(String categoryName, com.mapbox.search.CategorySearchOptions options, java.util.concurrent.Executor executor, com.mapbox.search.SearchCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask search(String categoryName, com.mapbox.search.CategorySearchOptions options, com.mapbox.search.SearchCallback callback);
method public com.mapbox.search.common.AsyncOperationTask search(java.util.List<java.lang.String> categoryNames, com.mapbox.search.CategorySearchOptions options, java.util.concurrent.Executor executor, com.mapbox.search.SearchCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask search(java.util.List<java.lang.String> categoryNames, com.mapbox.search.CategorySearchOptions options, com.mapbox.search.SearchCallback callback);
method public com.mapbox.search.common.AsyncOperationTask search(com.mapbox.search.ReverseGeoOptions options, java.util.concurrent.Executor executor, com.mapbox.search.SearchCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask search(com.mapbox.search.ReverseGeoOptions options, com.mapbox.search.SearchCallback callback);
method public default com.mapbox.search.common.AsyncOperationTask select(com.mapbox.search.result.SearchSuggestion suggestion, com.mapbox.search.SearchSelectionCallback callback);
Expand Down
13 changes: 10 additions & 3 deletions MapboxSearch/sdk/api/sdk.api
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,15 @@ public final class com/mapbox/search/CategorySearchOptions : android/os/Parcelab
public fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;)V
public fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;Z)V
public fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;)V
public synthetic fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final synthetic fun copy (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;)Lcom/mapbox/search/CategorySearchOptions;
public static synthetic fun copy$default (Lcom/mapbox/search/CategorySearchOptions;Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;ILjava/lang/Object;)Lcom/mapbox/search/CategorySearchOptions;
public fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;Ljava/lang/Boolean;)V
public synthetic fun <init> (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final synthetic fun copy (Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;Ljava/lang/Boolean;)Lcom/mapbox/search/CategorySearchOptions;
public static synthetic fun copy$default (Lcom/mapbox/search/CategorySearchOptions;Lcom/mapbox/geojson/Point;Lcom/mapbox/geojson/BoundingBox;Ljava/util/List;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Integer;Lcom/mapbox/geojson/Point;Lcom/mapbox/search/common/NavigationProfile;Lcom/mapbox/search/RouteOptions;Ljava/util/Map;ZLjava/lang/Double;Ljava/lang/Boolean;ILjava/lang/Object;)Lcom/mapbox/search/CategorySearchOptions;
public fun describeContents ()I
public fun equals (Ljava/lang/Object;)Z
public final fun getBoundingBox ()Lcom/mapbox/geojson/BoundingBox;
public final fun getCountries ()Ljava/util/List;
public final fun getEnsureResultsPerCategory ()Ljava/lang/Boolean;
public final fun getFuzzyMatch ()Ljava/lang/Boolean;
public final fun getIgnoreIndexableRecords ()Z
public final fun getIndexableRecordsDistanceThresholdMeters ()Ljava/lang/Double;
Expand All @@ -68,6 +70,7 @@ public final class com/mapbox/search/CategorySearchOptions$Builder {
public final fun build ()Lcom/mapbox/search/CategorySearchOptions;
public final fun countries (Ljava/util/List;)Lcom/mapbox/search/CategorySearchOptions$Builder;
public final fun countries ([Lcom/mapbox/search/common/IsoCountryCode;)Lcom/mapbox/search/CategorySearchOptions$Builder;
public final fun ensureResultsPerCategory (Ljava/lang/Boolean;)Lcom/mapbox/search/CategorySearchOptions$Builder;
public final fun fuzzyMatch (Z)Lcom/mapbox/search/CategorySearchOptions$Builder;
public final fun ignoreIndexableRecords (Z)Lcom/mapbox/search/CategorySearchOptions$Builder;
public final fun indexableRecordsDistanceThresholdMeters (Ljava/lang/Double;)Lcom/mapbox/search/CategorySearchOptions$Builder;
Expand Down Expand Up @@ -375,6 +378,8 @@ public abstract interface class com/mapbox/search/SearchEngine {
public abstract fun search (Ljava/lang/String;Lcom/mapbox/search/CategorySearchOptions;Ljava/util/concurrent/Executor;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun search (Ljava/lang/String;Lcom/mapbox/search/SearchOptions;Lcom/mapbox/search/SearchSuggestionsCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun search (Ljava/lang/String;Lcom/mapbox/search/SearchOptions;Ljava/util/concurrent/Executor;Lcom/mapbox/search/SearchSuggestionsCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun search (Ljava/util/List;Lcom/mapbox/search/CategorySearchOptions;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun search (Ljava/util/List;Lcom/mapbox/search/CategorySearchOptions;Ljava/util/concurrent/Executor;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun select (Lcom/mapbox/search/result/SearchSuggestion;Lcom/mapbox/search/SearchSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun select (Lcom/mapbox/search/result/SearchSuggestion;Lcom/mapbox/search/SelectOptions;Lcom/mapbox/search/SearchSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public abstract fun select (Lcom/mapbox/search/result/SearchSuggestion;Lcom/mapbox/search/SelectOptions;Ljava/util/concurrent/Executor;Lcom/mapbox/search/SearchSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
Expand Down Expand Up @@ -403,7 +408,9 @@ public final class com/mapbox/search/SearchEngine$DefaultImpls {
public static fun retrieve (Lcom/mapbox/search/SearchEngine;Ljava/lang/String;Lcom/mapbox/search/SearchResultCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun search (Lcom/mapbox/search/SearchEngine;Lcom/mapbox/search/ReverseGeoOptions;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun search (Lcom/mapbox/search/SearchEngine;Ljava/lang/String;Lcom/mapbox/search/CategorySearchOptions;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun search (Lcom/mapbox/search/SearchEngine;Ljava/lang/String;Lcom/mapbox/search/CategorySearchOptions;Ljava/util/concurrent/Executor;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun search (Lcom/mapbox/search/SearchEngine;Ljava/lang/String;Lcom/mapbox/search/SearchOptions;Lcom/mapbox/search/SearchSuggestionsCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun search (Lcom/mapbox/search/SearchEngine;Ljava/util/List;Lcom/mapbox/search/CategorySearchOptions;Lcom/mapbox/search/SearchCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun select (Lcom/mapbox/search/SearchEngine;Lcom/mapbox/search/result/SearchSuggestion;Lcom/mapbox/search/SearchSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun select (Lcom/mapbox/search/SearchEngine;Lcom/mapbox/search/result/SearchSuggestion;Lcom/mapbox/search/SelectOptions;Lcom/mapbox/search/SearchSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
public static fun select (Lcom/mapbox/search/SearchEngine;Ljava/util/List;Lcom/mapbox/search/SearchMultipleSelectionCallback;)Lcom/mapbox/search/common/AsyncOperationTask;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,13 @@
"phone": "+123 456 789",
"website": "https://www.test.com",
"rating": 4.0,
"primary_photo":[
"primary_photo": "https://test.com/img-primary.jpg",
"photos":[
{
"width":300,
"height":350,
"url":"https://test.com/img-primary.jpg"
}
],
"other_photo":[
},
{
"width":150,
"height":350,
Expand Down
Loading

0 comments on commit b7240b1

Please sign in to comment.