- New option
OfflineSearchOptions.searchPlacesOutsideBoundingBox
is available. It allows to search for places outside of the bounding box, ifboundingBox
option is specified.
- Search Native SDK
2.7.0-beta.1
- Common SDK
24.9.0-beta.1
- Now
SearchSuggestion
type provides new properties -coordinate
androutablePoints
. This is a restricted API, available for selected customers only. Contact our team, if you're interested in this API. - Now
SearchEngine
provides new functionSearchEngine#forward()
to make an one-off search request to get a list of search results with coordinates and metadata. See https://docs.mapbox.com/api/search/search-box/#search-request for more information.
- Fixed
AnalyticsService#sendFeedback()
function which couldn't sent feedback event forSearch Box
api responses.
- Search Native SDK
2.6.2
- Common SDK
24.8.0
- Added experimental Details API that provides access to POI metadata, boundary details, addresses and places. See
DetailsApi
type.
- Fixed
OpenHours
parsing for the Search Box Api type.
- Search Native SDK
2.6.2
- Common SDK
24.8.0
- Search Native SDK
2.6.0
- Common SDK
24.8.0
- The
SearchEngine.createSearchEngine()
andSearchEngine.createSearchEngineWithBuiltInDataProviders()
functions, which do not acceptApiType
as a parameter, have been deprecated. Please use functions that explicitly accept anApiType
instead. - The
SearchEngine.select()
function, which allows selecting multiple suggestions, has been deprecated. From now on, you should select only one search suggestion at a time. - The
ApiType.SBS
has been deprecated. Please use otherApiType
values that better suit your use case. - The
PlaceAutocomplete.create(LocationProvider?, ApiType)
function has been deprecated. Please use the function with the default api type.
- Search Native SDK
2.6.0-rc.1
- Common SDK
24.8.0-rc.1
- Search Native SDK
v2.6.0-beta.2
- Common SDK
v24.8.0-beta.1
- Passing
language
parameter on subsequentretrieve
calls for SearchBox
- Search Native SDK
v2.5.1
- Fixed a copy and paste issue in the documentation for the
OfflineSearchEngine.retrieve
method
- Search Native SDK
v2.5.0
- Common SDK
v24.7.0
- Adding a
toBuilder
method toSearchResultMetadata
class
- Search Native SDK
v2.5.0-rc.2
- Common SDK
v24.7.0-rc.1
- Adding Builder class to
SearchResultMetadata
class - Adding
CompletionCallback<Unit>
to theAnalyticsService
methods
- Search Native SDK
v2.5.0-beta.1
- Common SDK
v24.7.0-beta.1
- Introduced aliases translations and other improvements for offline category search
- This version of search-sdk is not binary compatible with old index and vice versa, old search-sdk is not compatible with new index
- Deprecating
avRating
field - Error handling for old datasets loading
- Upgrading MapboxCommon to v24.7.0-beta.1
- Search Native SDK
2.3.0
- Aligning
SearchOptions
to Search Native SDK - Adding
List<AttributeSet>
toSelectOptions
to support retrieving distinct attribute sets on SEARCH_BOX retrieve calls
- Search Native SDK
2.3.0-rc.3
- Common SDK
v24.6.0
- Updating to the version of Common SDK
v24.6.0-rc.1
- Common SDK
v24.6.0-rc.1
- Adding support for
AttributeSet
s when performing a retrieve - Adding additional fields to
SearchResultMetaData
- Search Native SDK
2.3.0-rc.4
- Common SDK
v24.6.0-rc1
- Search Native SDK
v2.2.1
- Common SDK
v24.5.0
- Performance improvements for short queries for offline search
- Search Native SDK
v2.2.0
- Common SDK
v24.5.0
- Updating SDK Intitialization
- Adding Debouncing to Sample Application
- feat(sample): loading offline tiles for sample activity
- fix(sample): Adding cleanup to the debouncer
- Search Native SDK
v2.2.0-rc.1
- Common SDK
v24.5.0-rc.1
- Search Native SDK
v2.2.0-beta.1
- Common SDK
v24.5.0-beta.4
- Fixes #197 clicking a "Recent Search" that is a favorite doesn't show as a favorite in the
SearchPlaceBottomSheetView
- Adding support for ApiType.SEARCH_BOX
- Search Native SDK
v2.1.0
- Common SDK
v24.4.0
- Adding support for
ApiType.SEARCH_BOX
- Search Native SDK
2.1.0
- Common SDK
24.4.0
- Location observer timeout can be configured now
- Updated default sample activity to default to
ApiType.SBS
- Fixed a synchronization issue in
OfflineSearchAlongRouteExampleActivity
- Fixed a bug in the default sample activity that crashed the activity when clicking on the map
- [Online search] Add method to retrieve a POI by Mapbox ID
- [Offline search] Add optional
language
parameter to OfflineSearchEngine.createTilesetDescriptor and OfflineSearchEngine.createPlacesTilesetDescriptor functions. - [UI] Added supports to select a single map feature to support map click events
- [CORE] Undo renaming of all Discover-related terms to Category
- [Address Autofill, Place Autocomplete] Added a separate function
reverse
for coordinate-based searches.
- [Offline search] Offline Search Along Route
- [Offline search] Added bounding box filter for offline search functions
- [CORE] Added a new field called
mapboxId
toBaseSearchResult
,SearchResult
,CategoryResult
andOfflineSearchResult
- [Address Autofill, Place Autocomplete] Added new fields called
id
andmapboxId
toAddressAutofillResult
andPlaceAutocompleteResult
- [CORE] Access token needs to be assigned via
MapboxOptions.accessToken
now - [CORE] Renamed all Discover-related terms to Category
- [Address Autofill, Place Autocomplete] Search is now a two-step action. It returns
Suggestions
(without the geo coordinate and routable points) at the first step andResult
(with the geo coordinate and routable points) after the suggestion is selected. Thus, thecoordinate
field is no longer available inSuggestion
.
- Search Native SDK
2.0.0-alpha.13
- Common SDK
24.0.0
- Maps SDK
11.0.0
- Kotlin
1.7.20
- [AUTOFILL] Improved
AddressAutofill
search output.
- [CORE] Fixed empty
SearchSuggestionType.Brand.brandName
andSearchSuggestionType.Brand.brandId
. - [UI] Fixed a crash that could happen in
SearchEngineUiAdapter
when network connectivity status change.
- Search Native SDK
0.72.0
- Common SDK
23.7.0
- Kotlin
1.5.31
- [ALL] Fixed street name capitalization for names with numbers.
- [ALL] Fixed indexable records matching where a record with lower cased street wasn't matched correctly.
- Search Native SDK
0.71.0
- Common SDK
23.6.0
- Kotlin
1.5.31
- [CORE]
SearchSuggestionType.IndexableRecordItem.type
field has been replaced withrecord
field which providesIndexableRecord
instance.
- [CORE] Now search suggestions and search results that are matched with
IndexableRecord
s provide data from the backend which is likely to be up-to-date than data fromIndexableRecord
. OriginalIndexableRecord
instance can be obtained fromSearchSuggestionType.IndexableRecordItem.record
andSearchResult.indexableRecord
. - [ALL] Fixed an issue where SBS backend doesn't always capitilized street names for POI results.
- [ALL] Fixed an issue where some POI results from SBS backend were missing "Ave/St/Avenue/Street" words in street names.
- Search Native SDK
0.70.0
- Common SDK
23.6.0
- Kotlin
1.5.31
- [CORE] Now
SearchSuggestion
might return suggestions with typeSearchSuggestionType.Brand
.
- [CORE] Function
SearchSelectionCallback.onCategoryResult()
has been renamed toonResults()
. Now this function is called when brand search suggestion is resolved. - [UI] Similarly, function
SearchEngineUiAdapter.onCategoryResultsShown()
has been renamed toonSearchResultsShown
().
- [ALL] Fixed an issue with truncated formatted address.
- [ALL] Fixed an issue with excessive normalization of category names in request's url.
- Search Native SDK
0.69.0
- Common SDK
23.6.0-rc.1
- Kotlin
1.5.31
- [Place Autocomplete] Now
PlaceAutocompleteSuggestion
andPlaceAutocompleteResult
provide new propertyetaMinutes
. - [Place Autocomplete] Now
PlaceAutocompleteOptions
accepts an additional parameternavigationProfile
that determines how the distance and time of arrival (ETA) will be calculated.
- [CORE]
SearchNavigationProfile
type has been renamed toNavigationProfile
and moved tocom.mapbox.search.common
package. - [Address Autofill]
AddressAutofillSuggestion.result()
function has been removed. UseAddressAutofill.select(AddressAutofillSuggestion)
instead. Note that developers must call this function when user selects a search suggestion in the UI.
- [Place Autocomplete] Fixed a bug with missing
PlaceAutocompleteSuggestion.distanceMeters
.
- Search Native SDK
0.68.0
- Common SDK
23.3.1
- Kotlin
1.5.31
- [Place Autocomplete] Now
PlaceAutocompleteSuggestion
provides additional propertyPlaceAutocompleteSuggestion.routablePoints
.
- [Place Autocomplete]
PlaceAutocompleteSuggestion.result()
function has been removed. UsePlaceAutocomplete.select(PlaceAutocompleteSuggestion)
instead. Note that developers must call this function when user selects a search suggestion in the UI.
- Search Native SDK
0.68.0
- Common SDK
23.3.1
- Kotlin
1.5.31
- [CORE] Partially fixed a bug when indexable records couldn't be matched with corresponding search results which caused duplicated search results.
- [UI] Fixed a crash in
SearchEngineUiAdapter
that could happen during history records removing.
- Search Native SDK
0.67.2
- Common SDK
23.3.1
- Kotlin
1.5.31
- [CORE] Deprecated functions
AnalyticsService.createRawFeedbackEvent()
have been removed.
- Search Native SDK
0.67.1
- Common SDK
23.3.1
- Kotlin
1.5.31
- [CORE] Now
SearchSuggestion
andSearchResult
types provide a new fieldfullAddress
which contains formatted text address from backend. - [DISCOVER] Now
Discover
SDK provides callback-based alternatives for Kotlin suspend functions. - [DISCOVER] Now
DiscoverResult
provides a new fieldformattedAddress
. - [PLACE AUTOCOMPLETE] Place Autocomplete SDK is available now. See docs for more information.
- [UI]
PlaceAutocompleteUiAdapter
type is available. It's a helper class for connectingPlace Autocomple SDK
with theSearchResultsView
. - [UI] A new
SearchPlace.createFromPlaceAutocompleteResult()
function is available.
- [CORE]
com.mapbox.search.CompletionCallback
has been moved tocom.mapbox.search.common.CompletionCallback
. - [CORE]
com.mapbox.search.ImageInfo
has been moved tocom.mapbox.search.common.metadata.ImageInfo
.
- [CORE] Fixed
SearchSuggestion.name
andSearchResult.name
formatting for address types. - [AUTOFILL] Fixed address formatting for
AddressAutofillSuggestion.formattedAddress
.
- Search Native SDK
0.67.1
- Common SDK
23.3.1
- Kotlin
1.5.31
- [UI] Now
SearchResultsView
will usemapboxSearchSdkBackgroundColor
as a background color if background is not specified explicitly.
- [Discover]
Discover API
has been renamed toDiscover
. Also,DiscoverApiAddress
,DiscoverApiOptions
,DiscoverApiQuery
,DiscoverApiResult
have been renamed toDiscoverAddress
,DiscoverOptions
,DiscoverQuery
,DiscoverResult
respectively.
- [CORE] Fix a crash that could happen during unexpected backend metadata response.
- [OFFLINE] Update default tiles dataset name.
- Search Native SDK
0.66.0
- Common SDK
23.2.1
- Kotlin
1.5.31
- [Discover API] Discover API preview is available.
- [Autofill] Now
AddressComponents
provides new propertiesAddressComponents.countryIso1
andAddressComponents.countryIso2
.
- [CORE]
OpenHours
,OpenPeriod
,WeekDay
,WeekTimestamp
,ParkingData
classes have been moved tocom.mapbox.search.common.metadata
package. - [CORE]
Language
has been renamed toIsoLanguageCode
and moved tocom.mapbox.search.common
package. - [CORE]
Country
has been renamed toIsoCountryCode
and moved tocom.mapbox.search.common
package. - [CORE]
DistanceCalculator
has been moved tocom.mapbox.search.common
package.ServiceProvider.distanceCalculator(latitude: Double)
function is not available anymore, instead useDistanceCalculator.instance(latitude: Double)
. - [CORE]
HighlightsCalculator
has been moved tocom.mapbox.search.common
package.ServiceProvider.higlightsCalculator()
function is not available anymore, instead useHighlightsCalculator.INSTANCE
. - [Autofill]
AddressAutofillOptions.Country
andAddressAutofillOptions.Language
have been removed and replaced byIsoCountryCode
andIsoLanguageCode
. - [Autofill]
AddressAutofillResponse
type has been removed. NowAddressAutofill
functions returnExpected<Exception, List<AddressAutofillSuggestion>>
.
- Search Native SDK
0.66.0
- Common SDK
23.2.1
- Kotlin
1.5.31
- [CORE] Search SDK does not longer implicitly set
origin
andproximity
points inSearchOptions
andCategorySearchOptions
forSBS
Api Type if eitherorigin
orproximity
point is provided by a user.
- Search Native SDK
0.66.0
- Common SDK
23.2.1
- Kotlin
1.5.31
- [AUTOFILL] Fixed a bug in address autofill reverse geocoding.
- Search Native SDK
0.65.0
- Common SDK
23.2.0
- Kotlin
1.5.31
- [CORE]
SearchAddress.FormatStyle.Custom
has been removed because it can't guarantee correct formatting behavior.SearchAddress
provides all the address components with the existing public API and customers still can format address according to needed formatting rules. - [UI]
SearchResultsView.defaultSearchOptions
was not used and was removed from the API.
- [CORE] Fixed a bug with
SearchAddress
formatting when address house number is empty. - [CORE] Added a proguard rule that prevents DAO classes constructors from being removed.
- [UI] Fixed a bug in
SearchResultsView
when incorrect search options was used for request retry.
- Search Native SDK
0.64.0
- Common SDK
23.2.0-rc.3
- Kotlin
1.5.31
- Removed
mapbox-android-core
dependency, it is now part of Mapbox Common library. NOTE: You need to remove any explicit dependency declaration tocom.mapbox.mapboxsdk:mapbox-android-core:<version>
from the project to avoid duplicated class definition errors related to location APIs.
- Search Native SDK
0.63.0
- Common SDK
23.2.0-beta.1
- Kotlin
1.5.31
- [Autofill] Now
AutofillSuggestion
provides a new propertyname
. - [Autofill] Minimal allowed query name has been changed from
3
to2
.
- Search Native SDK
0.62.0
- Common SDK
23.1.0
- Kotlin
1.5.31
- [UI] Fixed a bug in
SearchEngineUiAdapter
whereSearchListener.onPopulateQueryClick()
was not called when user clicked thequery populate
button.
- Search Native SDK
0.61.0
- Common SDK
23.1.0-rc.1
- Kotlin
1.5.31
- [UI]
SearchResultsView
became a generic view that can work with anySearchEngine
orUse case
. Its API has been changed. UseSearchEngineUiAdapter
to adapt search engines for the view. See MainActivity for usage sample.
- [UI] Now UI module provides
AddressAutofillUiAdapter
that helps to displayAddressAutofill
suggestions on theSearchResultsView
. - [Autofill] Now customers can provide own implementation of the
LocationEngine
. - [Autofill]
AddressAutofill
returns up to 10 suggestions instead of 5. - [Search SDK COMMON]
AsyncOperationTask
providesAsyncOperationTask.COMPLETED
field which represents completed task.
- Search Native SDK
0.61.0
- Common SDK
23.1.0-rc.1
- Kotlin
1.5.31
- [OFFLINE]
OfflineSearchEngine
's functionscreateTilesetDescriptor()
andcreatePlacesTilesetDescriptor()
are static now. - [CORE]
SearchSuggestion.categories
, andSearchResult.categories
are nullable properties now. These properties are null for non-POI search results. - [CORE]
ApiType.AUTOFILL
has been removed. UseAutofill
SDK instead. - [CORE]
MapboxSearcSdk.createSearchEngine()
, andMapboxSearcSdk.createSearchEngineWithBuiltInDataProviders()
functions have been moved toSearchEngine.createSearchEngine()
, andSearchEngine.createSearchEngineWithBuiltInDataProviders()
. - [CORE]
MapboxSearcSdk.serviceProvider
property has been removed, callServiceProvider.INSTANCE
instead. - [CORE]
MapboxSearchSdk
class is not publicly available anymore. - [CORE]
IndexableRecord.coordinate
is a non-null property now. Accordingly,HistoryRecord.coordinate
is also a non-null property. This also makesSearchResult.coordinate
a non-null property. - [CORE]
SearchResult
is a class now. Functions signature ofSearchCallback
,SearchSelectionCallback
,SearchMultipleSelectionCallback
have been changed for Java users. - [CORE] Subtypes
ServerSearchResult
,IndexableRecordSearchResult
have been removed. CallSearchResult.IndexableRecord
to check if aSearchResult
is based on aIndexableRecord
and access the record. - [UI] Function signature of
SearchResultsView.SearchListener
have been changed for Java users. - [UI]
SearchPlace
factory functionscreateFromSearchResult()
,createFromIndexableRecord()
no longer acceptcoordinate: Point
arguments. Instead, coordinate will be taken from providedSearchResult
, andIndexableRecord
objects.
- Search Native SDK
0.60.0
- Common SDK
23.1.0-beta.1
- Kotlin
1.5.31
- [CORE]
AsyncOperationTask
,SearchCancellationException
,SearchRequestException
,RoutablePoint
have been moved tocom.mapbox.search.common
package.MainThreadWorker
, andSearchSdkMainThreadWorker
have been moved tocom.mapbox.search.common.concurrent
. - [CORE]
SearchRequestTask
has been replaced withAsyncOperationTask
- [CORE]
SearchSuggestion
is a class now. Functions signature ofSearchSuggestionsCallback
,SearchSelectionCallback
,SearchMultipleSelectionCallback
have been changed for Java users. - [CORE, UI] Offline functionality has been moved to a separate dependency which can be resolved via
com.mapbox.search:offline:$version
. Package name for offline functionality iscom.mapbox.search.offline
. At the moment Offline SDK version is the same as the main Search SDK version.OfflineSearchEngine
instance can be retrieved viaOfflineSearchEngine.create(OfflineSearchEngineSettings)
. - [UI]
SearchResultsView.SearchListener.onOfflineSearchResults()
signature has been changed toonOfflineSearchResults(List<OfflineSearchResult>m OfflineResponseInfo)
. Also, a new functionSearchResultsView.SearchListener.onOfflineSearchResult()
has been added.
- [CORE]
FeedbackEvent.FeedbackReason
now has few more reasons that can be used in the feedback:INCORRECT_PHONE_NUMBER
, andINCORRECT_RESULT_RANK
. - [UI] A new function
SearchPlace.createFromOfflineSearchResult()
is available.
- [UI] Now created in the
SearchPlaceBottomSheetView
FavoriteRecord
will be saved with id fromSearchPlace.id
- Search Native SDK
0.59.0
- Common SDK
23.0.0
- Kotlin
1.5.31
- [UI] Now
SearchPlace
constructor requires additional propertyid
.copy()
function's signature has also been changed.
- [CORE] SearchResultType provides a new value -
BLOCK
which represents the block number. Available specifically for Japan.
- Search Native SDK
0.58.0
- Common SDK
23.0.0-beta.1
- Kotlin
1.5.31
- [CORE] Undocumented system property used to enable SBS API Type is deprecated. Use
MapboxSearchSdk.createSearchEngine(ApiType, SearchEngineSettings)
, andMapboxSearchSdk.createSearchEngineWithBuiltInDataProviders(ApiType, SearchEngineSettings)
instead. Note that SBS Api Type is still in beta and not available publicly. - [AUTOFILL]
AddressAutofill.suggestions(String, AddressAutofillOptions)
has been replaced withAddressAutofill.suggestions(Query, AddressAutofillOptions)
. CallQuery.create()
to create an instance ofQuery
.
- [CORE]
MapboxSearchSdk.createSearchEngine(ApiType, SearchEngineSettings)
, andMapboxSearchSdk.createSearchEngineWithBuiltInDataProviders(ApiType, SearchEngineSettings)
functions are available that allow to choose API Type. Note thatApiType.GEOCODING
is the only API Type available publicly. - [UI]
SearchResultsView.Configuration
accepts a new optional argumentapiType
used for theSearchEngine
initialization.
- Search Native SDK
0.57.0
- Common SDK
22.1.0-beta.1
- Kotlin
1.5.31
- [CORE] Now
RequestOptions
provides new fieldsendpoint
andsessionID
.
- [CORE] Now
SearchAddress.formattedAddress(FormatStyle.Medium)
for address with countryUnited States
includes region.
- Search Native SDK
0.57.0
- Common SDK
22.1.0-beta.1
- Kotlin
1.5.31
- [CORE]
ServiceProvider.analyticsService()
function has been removed. NowAnalyticsService
instance is associated withSearchEngine
, andOfflineSearchEngine
.AnalyticsService
can be retrieved fromSearchEngine.analyticsService
, andOfflineSearchEngine.analyticsService
. - [CORE]
ServiceProvider.locationEngine()
function has been removed. NowLocationEngine
instance can be retrieved from settings used for search engines instantiation. - [CORE]
SearchSdkSettings
class has been removed. Now default max number of history records is always 100. - [CORE] Now
SearchEngineSettings
andOfflineSearchEngineSettings
accept new constructor parameters.OfflineSearchEngineSettings.copy()
function's signature andOfflineSearchEngineSettings.Builder
have also been changed.SearchEngineSettings
providesSearchEngineSettings.Builder
type and newcopy()
andtoBuilder()
functions. - [CORE]
MapboxSearchSdk.initialize()
function has been removed. Now it's not needed to initialize Search SDK explicitly. - [CORE]
MapboxSearchSdk.setAccessToken()
function has been removed. Now in case of changed token a new instance ofSearchEngine
orOfflineSearchEngine
should be created. - [CORE]
MapboxSearchSdk.getSearchEngine()
function has been removed, callMapboxSearchSdk.createSearchEngine()
function instead. - [CORE]
MapboxSearchSdk.createSearchEngine()
function without parameters has been removed. NowSearchEngineSettings
should always be provided as an argument. - [CORE]
MapboxSearchSdk.getOfflineSearchEngine()
function has been removed, callMapboxSearchSdk.createOfflineSearchEngine()
function instead. - [CORE]
OfflineSearchEngine.tileStore
property has been removed, callOfflineSearchEngine.settings.tileStore
instead. - [CORE] Now
ApiType
has a newAUTOFILL
constant. - [UI]
SearchResultsView.initialize()
now acceptsSearchResultsView.Configuration
object. - [UI]
SearchBottomSheetView
,SearchCategoriesBottomSheetView
,SearchFeedbackBottomSheetView
views are not supported anymore. These views and their nested types have been removed from the Search SDK. Also, unused types such asIncorrectSearchPlaceFeedback
,FavoriteTemplate
,Category
are not available either. - [UI]
IncorrectSearchPlaceFeedback
has been moved tocom.mapbox.search.ui.view.place
package. - [AUTOFILL]
AddressAutofill.create(searchEngine: SearchEngine)
has been replaced withAddressAutofill.create(context: Context, accessToken: String)
. - [AUTOFILL]
AddressAutofillOptions.countries
now is a list ofAddressAutofillOptions.Country
values andAddressAutofillOptions.language
isAddressAutofillOptions.Language
value. - [AUTOFILL]
AddressAutofillResult.address
now is an instance ofAddressAutofillResult.Address
type.
- [CORE]
SearchEngine
andOfflineSearchEngine
providesettings
property that return settings object used for engine initialization. - [UI] Now clicked by a user in
SearchResultsView
search results will be automatically added to the search history. - [AUTOFILL] Now autofill works on top of the special-purpose version of the Geocoding V5 API.
- Search Native SDK
0.57.0
- Common SDK
22.1.0-beta.1
- Kotlin
1.5.31
Same release as 1.0.0-beta.31
but with Common SDK 22.0.0
.
- Search Native SDK
0.56.0
- Common SDK
22.0.0
- Kotlin
1.5.31
- [CORE]
OfflineSearchEngine
is a 1-step search now, which means thatSearchResult
's returned in the first step withoutSearchSuggestion
selection.OfflineSearchEngine.select()
function has been removed.OfflineSearchEngine.search()
acceptsSearchCallback
callback type. - [CORE] Now automatically cancelled by the Search SDK search requests made to the
SearchEngine
andOfflineSearchEngine
will be passingSearchCancellationException
to the corresponding callbacks ofSearchCallback
,SearchSuggestionsCallback
, andSearchSelectionCallback
. - [UI] Now
SearchResultsView.SearchListener
has a new functiononOfflineSearchResults()
.
- [CORE] Autofill SDK prototype is available now.
- [CORE] Now
SearchResult
provides a newaccuracy
field which is a point accuracy metric for the returned address.
- [CORE] Fixed a bug in the previous version of the Search SDK which didn't include http service implementation by default.
- Search Native SDK
0.55.0
- Common SDK
21.3.0
- Kotlin
1.5.31
- [CORE]
IndexableDataProvider.add()
, andIndexableDataProvider.update()
have been replaced with a new functionIndexableDataProvider.upsert()
. - [CORE]
IndexableDataProvider.addAll()
has been renamed toIndexableDataProvider.upsertAll()
. - [CORE]
IndexableDataProviderEngine.add()
, andIndexableDataProviderEngine.update()
have been replaced with a new functionIndexableDataProviderEngine.upsert()
. - [CORE]
IndexableDataProviderEngine.addAll()
has been renamed toIndexableDataProviderEngine.upsertAll()
. - [CORE]
IndexableDataProviderEngine.executeBatchUpdate()
has been removed along withIndexableDataProviderEngine.BatchUpdateOperation
. NowIndexableDataProviderEngine
is a thread-safe entity. If you need multiple operations to be executed one after another, call them in a needed order on the same thread. - [CORE]
AnalyticsService.sendRawFeedbackEvent()
has been removed. Events should be sent immediately. - [CORE]
AnalyticsService.createRawFeedbackEvent()
functions have been made asynchronous and marked as deprecated. These functions return raw events in a very specific format and should not be used.
- Search Native SDK
0.54.1
- Common SDK
21.3.0
- Kotlin
1.5.31
- [CORE]
SearchResult
andSearchSuggestion
now provideexternalIDs
property.
- Search Native SDK
0.52.0
- Common SDK
21.3.0-rc.2
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [CORE]
ServiceProvider.globalDataProvidersRegistry()
has been removed. Now customers should useSearchEngine.registerDataProvider()
for the data providers registration. InterfaceIndexableDataProvidersRegistry
and its internal classes are not available anymore either. - [CORE] Now
IndexableDataProvider
s should providepriority
field which affectsIndexableRecord
's ranking in case of multiple data providers added to a search engine. - [CORE]
IndexableDataProviderEngineLayer
has been renamed toIndexableDataProviderEngine
. Also, functionsregisterIndexableDataProviderEngineLayer()
andunregisterIndexableDataProviderEngineLayer()
ofIndexableDataProvider
have been renamed toregisterIndexableDataProviderEngine()
andunregisterIndexableDataProviderEngine()
. - [CORE] Functionality of
CategorySearchEngine
, andReverseGeocodingSearchEngine
have been merged intoSearchEngine
. Also, functionsMapboxSearchSdk.getCategorySearchEngine()
,MapboxSearchSdk.getReverseGeocodingSearchEngine()
have been removed, callMapboxSearchSdk.getSearchEngine()
orMapboxSearchSdk.createSearchEngine()
instead. - [CORE] Constants
MapboxSearchSdk.LAYER_PRIORITY_HISTORY
,MapboxSearchSdk.LAYER_PRIORITY_FAVORITES
have been movedHistoryDataProvider.PROVIDER_PRIORITY
, andFavoritesDataProvider.PROVIDER_PRIORITY
. - [CORE]
MapboxSearchSdk.addDataProviderInitializationCallback()
andMapboxSearchSdk.removeDataProviderInitializationCallback()
have been removed along withDataProviderInitializationCallback
interface. UseHistoryDataProvider.OnDataProviderEngineRegisterListener()
, andFavoritesDataProvider.OnDataProviderEngineRegisterListener()
instead. - [CORE] Fields
SearchSdkSettings.geocodingEndpointBaseUrl
, andSearchSdkSettings.singleBoxSearchBaseUrl
have been removed. Now you can configure search engine endpoints withSearchEngineSettings
.SearchSdkSettings.Builder
and corresponding functions have also been removed.MapboxSearchSdk.initialize()
now can acceptSearchEngineSettings
. - [CORE] Class
OfflineSearchSettings
has been renamed toOfflineSearchEngineSettings
.MapboxSearchSdk.initialize()
argumentofflineSearchSettings
has also been renamed toofflineSearchEngineSettings
.
- [CORE] Now customers can create several independent from each other
SearchEngine
s. SeeMapboxSearchSdk.createSearchEngine()
. - [CORE] Now
SearchRequestTask
providesisDone
, andisCancelled
properties.
- Search Native SDK
0.52.0
- Common SDK
21.3.0-rc.2
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [UI] Now
SearchBottomSheetView
shows all the available search history records along with their addresses. - [UI] Now users can swipe history records left to remove a record from the the recent searches.
- [UI] Now keyboard is hidden automatically when user navigates back from the feedback card or closes it.
- Search Native SDK
0.51.0
- Common SDK
21.2.0
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [CORE] Now
SearchSuggestion
has a newcategories
property. - [UI]
SearchBottomSheetView
has a new callbackSearchBottomSheetView.OnSearchViewStateChangeListener
that notifies subscribers when the "Main search view" changes it's state.
- [CORE] Search SDK doesn't implicitly request
android.permission.ACCESS_COARSE_LOCATION
permission anymore. DefaultLocationEngine
that's passed toMapboxSearchSdk.initialize()
needs location access in order to work properly. - [UI]
SearchResultsView.SearchListener
now has more callback functions:SearchListener.onSuggestions()
,SearchListener.onCategoryResult()
, andSearchListener.onError()
.
- Search Native SDK
0.50.0
- Common SDK
21.2.0-beta.1
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [CORE] New properties are available
SearchSuggestion.matchingName
,SearchSuggestion.serverIndex
,SearchResult.matchingName
,SearchResult.serverIndex
,ResponseInfo.responseUuid
. - [CORE] Now customers can provide their own feedback IDs in
FeedbackEvent.feedbackId
andMissingResultFeedbackEvent.feedbackId
. - [CORE] Now
SearchSuggestion
provides optionalmetadata
property. - [CORE] Now
SearchResultMetadata
provides optionalcountryIso1
andcountryIso2
properties that provide country codes inISO 3166-1
andISO 3166-2
. These properties are available for bothSearchResult
andSearchSuggestion
types, in SBS and V5 APIs.
- [CORE] Fixed GSON serialization for
SearchResult
andSearchSuggestion
- Search Native SDK
0.49.0
- Common SDK
21.1.0
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [CORE] Public interfaces
SearchResult
,ServerSearchResult
,IndexableRecordSearchResult
,SearchSuggestion
have been marked assealed
as they were not supposed to be implemented by external code. - [UI] Now
SearchCategoriesBottomSheetView.CategoryLoadingStateListener.onLoadingError()
callback provides one more parameter -Exception
occurred during the request. - [UI] Now
SearchCategoriesBottomSheetView.CategoryLoadingStateListener.onCategoryResultsLoaded()
callback provides one more parameter -ResponseInfo
which contains response information.
- [CORE, UI] Now Search SDK documentation and source code is visible in Android Studio.
- [CORE] Now
SearchRequestException
contains original detail error message returned from the backend.
- Search Native SDK
0.47.0
- Common SDK
21.1.0-rc.1
- Telemetry SDK
8.1.1
- Kotlin
1.5.31
- [UI] Now initialization methods
SearchPlaceBottomSheetView.initialize()
,SearchCategoriesBottomSheetView.initialize()
,SearchResultsView.initialize()
have to be called in order to make these views work properly.
- [UI] Now you can provide distance unit type (imperial or metric) used for views visual information via initialization methods of the views:
SearchBottomSheetView.initializeSearch()
,SearchPlaceBottomSheetView.initialize()
,SearchCategoriesBottomSheetView.initialize()
,SearchResultsView.initialize()
.
- [UI] Fixed a bug with uninitialized properties in created from
SearchBottomSheetView
favorite record.
- Search Native SDK
0.46.1
- Common SDK
21.0.1
- Telemetry SDK
8.1.0
- Kotlin
1.4.21
- [CORE] Signature of
OfflineSearchEngine.select(SearchSuggestion, Executor, SearchSelectionCallback): SearchRequestTask
function has been changed, now it also acceptsSelectOptions
. - [CORE] Functions
MapboxSearchSdk.createCategorySearchEngine()
,MapboxSearchSdk.createReverseGeocodingSearchEngine()
andMapboxSearchSdk.createSearchEngine()
have been replaced withMapboxSearchSdk.getCategorySearchEngine()
,MapboxSearchSdk.getReverseGeocodingSearchEngine()
andMapboxSearchSdk.getSearchEngine()
functions accordingly. Now SDK consumers can access only single instance of each search engine. - [CORE]
MapboxSearchSdk.initialize()
now acceptscom.mapbox.android.core.location.LocationEngine
instead ofcom.mapbox.search.location.LocationProvider
, argument name has also been changed fromlocationProvider
tolocationEngine
.com.mapbox.search.location.LocationProvider
,com.mapbox.search.location.DefaultLocationProvider
,com.mapbox.search.location.PointLocationProvider
have been removed. Now you can usecom.mapbox.android.core.location.LocationEngineProvider.getBestLocationEngine(Context)
to get a default implementation ofLocationEngine
. - [CORE] Function
com.mapbox.search.ServiceProvider.locationProvider()
has been removed, nowServiceProvider.locationEngine()
is available which returns instance ofcom.mapbox.android.core.location.LocationEngine
. - [CORE]
OfflineSearchEngine.createBoundariesTilesetDescriptor()
has been renamed tocreatePlacesTilesetDescriptor()
. - [UI]
SearchPlace
has a new propertyfeedback
, constructor andcopy
function signature have been changed. - [UI] Now
SearchPlace.createFromSearchResult()
requiresResponseInfo
as an additional argument. - [UI]
SearchBottomSheetView.OnSearchResultClickListener.onSearchResultClick()
andSearchCategoriesBottomSheetView.OnSearchResultClickListener.onSearchResultClick()
receiveResponseInfo
as an additional argument. - [UI]
SearchResultsView.SearchListener
's functionsonSearchResult()
andonPopulateQueryClicked()
now receiveResponseInfo
as an additional argument.
- [CORE]
IndexableDataProviderEngineLayer
class now can be called from any thread. - [CORE] Now selected search suggestions from
OfflineSarchEngine
are added toHistoryDataProvider
by default. You can manage this behavior by passing customSelectOptions
toselect()
function. - [CORE] New functions
IndexableDataProviderEngineLayer.removeAll()
andIndexableDataProviderEngineLayer.executeBatchUpdate()
and new interfaceIndexableDataProviderEngineLayer.BatchUpdateOperation
have been introduced. Now user can remove several records in one go and also specify several operations that should be executed atomically for a given engine layer. - [CORE] Now
OfflineSearchEngine
has a new functions for selecting preferable tileset -selectTileset()
. - [CORE] Also,
OfflineSearchEngine
can notify users of index change events. Add a listener viaaddOnIndexChangeListener()
to get these events. - [UI] Now
SearchPlaceBottomSheetView
class notifies users about adding specificSearchPlace
to favorites viaSearchPlaceBottomSheetView.OnSearchPlaceAddedToFavoritesListener
. - [UI]
SearchPlaceBottomSheetView
has a newFeedback
button that enables users to report issues and send feedback on search quality. With this functionality also comeOnFeedbackClickListener
and functions to add/remove feedback listeners. Customers have to useSearchFeedbackBottomSheetView
or implement feedback UI on their own. - [UI] Now a new view
SearchFeedbackBottomSheetView
which implements feedback workflow is available. Customers can add their own listener viaaddOnFeedbackSubmitClickListener()
to hook feedback sending to define their own behavior. - [UI] Now
SearchBottomSheetView
has new interfacesOnFeedbackClickListener
, andOnFeedbackSubmitClickListener
. Customers can add their own listeners viaaddOnFeedbackClickListener
, andaddOnFeedbackSubmitClickListener()
to hook feedback sending and define custom behavior.
- [CORE] Fixed bug related to unexpected cancellation of scheduled
SearchEngine
request when another search request was fired fromCategorySearchEngine
or from anotherSearchEngine
. - [CORE] Fixed bug in
HistoryDataProvider
when records weren't removed fromIndexableDataProviderEngineLayer
during the trimming of obsolete records. - [UI] Fixed several bugs related to state restoration, keyboard showing and UI lagginess.
- Search Native SDK
0.44.1
- Common SDK
20.1.1
- Telemetry SDK
8.1.0
- [UI]
SearchMode
now has a new valueAUTO
. If search mode set toAUTO
, UI will determine online/offline mode automatically based on the device's network reachability. - [CORE]
OfflineSearchEngine
functionsgetTileRegions()
,getGroupInfo()
,loadTileRegion()
,updateTilesGroup()
,removeTilesGroup()
have been removed. Now you should useTileStore
directly to work with offline data. - [CORE] Signature of
EngineReadyCallback.onEngineReady()
has been changed. Now this function has no arguments. - [CORE] Properties
OfflineSearchSettings.tilesDataset
andOfflineSearchSettings.tilesVersion
and their corresponding Builder properties have been remove. Now dataset and version parameters can be specified duringTilesetDescriptor
creation. - [CORE]
OfflineSearchEngine.addOflineRegion()
function andAddRegionCallback
interface have been removed. Now you can useTileStore
to manage offline data.
- [CORE]
DefaultLocationProvider
class now can be called from any thread. - [CORE] A new property
OfflineSearchEngine.tileStore
is available. It returnsTileStore
object used for offline tiles management.
- Common SDK
20.1.0
- Telemetry SDK
8.1.0
- [CORE] Enum
QueryType
has a new type -CATEGORY
. Now users can receive category-only search results. Please note: this type is restricted for internal or special use. - [CORE]
SearchEngine.select(SearchSuggestion, Executor, SearchSelectionCallback)
method signature has been changed toSearchEngine.select(SearchSuggestion, SelectOptions, Executor, SearchSelectionCallback)
: now user can control whetherSearchEngine
should automatically add final result to the history or not.
- [CORE]
@Deprecated
annotations for Geocoding-specific search options have been removed. - [CORE] New function
SearchEngine.select(SearchSuggestion, SelectOptions, SearchSelectionCallback)
is available. - [CORE]
SelectOptions
class has been introduced.
- [CORE] Fixed a bug in
OfflineSearchEngine
when tiles modifying functions such asloadTileRegion()
,updateTilesGroup()
,removeTilesGroup()
were called before engine got initialized.
- Common SDK
20.0.0
- Telemetry SDK
8.1.0
- [CORE]
MainThreadWorker
has a new propertymainExecutor
that returns an executor working on the main thread. All the subclasses now have to implement this property. - [CORE] Similarly to search engines, asynchronous functions of
IndexableDataProvider
may accept optional parameterExecutor
. All the subclasses now have to implement these functions. - [CORE]
OfflineTileRegion
's constructor has been made internal. Also, itscopy
function has been removed. - [CORE] Signature of the function
OfflineSearchEngine.loadTileRegion()
has been changed, now it accepts additionalprogressCallback
parameter.callback
parameter has been renamed tocompletionCallback
.
- [CORE] Now you can pass
OfflineSearchSettings
toMapboxSearchSdk.initialize()
to override offline search settings. - [CORE] Now asynchronous functions of
SearchEngine
,ReverseGeocodingSearchEngine
,CategorySearchEngine
,OfflineSearchEngine
,IndexableDataProvider
,IndexableDataProvidersRegistry
may accept optional parameterExecutor
used for events dispatching. By default events are still dispatched on the main thread. - [CORE] New function
OfflineSearchEngine.getGroupInfo()
is available. This function provides group meta info. - [CORE] New function
OfflineSearchEngine.updateTilesGroup()
is available. This function updates the existing tiles group.
- Common SDK
19.0.0
- Telemetry SDK
8.1.0
- Common SDK
19.0.0
- Telemetry SDK
8.1.0
- [CORE]
IndexableDataProvider.CompletionCallback
has been moved to upper level packagecom.mapbox.search
.
- [CORE] Now customers can override logger. See Mapbox Android Modularization for more information.
- [CORE] A new functionality to work with offline data has been added to
OfflineSearchEngine
. - [CORE] Now customers can add custom data providers. As a result, new classes (
IndexableDataProvidersRegistry
andIndexableDataProviderEngineLayer
) have been added and also few extra methods and properties have been added to exisitng API. Take a look at new samples for more information. - [CORE] New functions
MapboxSearchSdk.addDataProviderInitializationCallback()
andMapboxSearchSdk.removeDataProviderInitializationCallback()
have been introduced. Now users can receive notifications about default data providers (history and favorites) successful or failed initialization.
- [CORE] Fix failed Search SDK requests for cases, when application label contains non-ASCII symbols.
- Common SDK
18.0.0
- Telemetry SDK
8.1.0
- [CORE] Now
OfflineSearchEngine.addOfflineRegion()
doesn't implicitly add.cont
extensions for offline data files.
- [CORE] Now customers can override native library loader. See Mapbox Android Modularization for more information.
- Common SDK
17.0.0
- Telemetry SDK
8.1.0
- [CORE]
MapboxSearchSdk.initialize()
function's signature has been changed:geocodingEndpointBaseUrl
andsingleBoxSearchBaseUrl
parameters have been removed and new parametersearchSdkSettings: SearchSdkSettings
has been added. With newSearchSdkSettings
class user can specify not only search endpoints, but also maximum allowedHistoryRecords
amount inHistoryDataProvider
. - [CORE]
SearchSuggestionType.IndexableRecordItem
's constructor has been changed: new parametertype: SearchResultType
has been added. Now user can get the type of resolvedIndexableRecord
before the selection ofSearchSuggestion
, associated with givenIndexableRecordItem
. - [CORE]
SearchSuggestionType.SearchResultSuggestion
,SearchSuggestionType.Category
andSearchSuggestionType.IndexableRecordItem
constructors visibility have been reduced tointernal
.
- [CORE]
MainThreadWorker
andSearchSdkMainThreadWorker
classes are now public, they can be used to override main thread job handler which can be useful for testing. - [UI] Now history records matched with saved favorites will be marked as favorites in the search history view.
- [UI] Fix for suggestion clicks processing.
- Common SDK
16.2.0
- Telemetry SDK
8.1.0
- [UI] Functions
Category.findBySBSName()
andCategory.findByName()
have been removed, now you can useCategory.findByCanonicalName()
which looks up for a Category by any of SBS or geocoding canonical names.
- [UI] Now
com.mapbox.search.ui.view.category.Category
's constructor and properties are public, you can instantiate a new category to be used in the UI Search SDK. - [UI] Expose
maxWidth
layout parameter forSearchSdkFrameLayout
class and its subclasses in public API.
- Common SDK
16.0.0
- Telemetry SDK
8.1.0
- [CORE] Async functions in
IndexableDataProvider
andOfflineSearchEngine.addOfflineRegion()
now returnAsyncOperationTask
object instead ofFuture
. - [CORE] Function
DistanceCalculator.squareDistance()
has been removed. - [UI] Property
SearchBottomSheetView.Configuration.searchOptions
and correspondingConfiguration.Builder
function have been removed. Now you can provideSearchOptions
throughSearchBottomSheetView.searchOptions
and override them for each new request. - [UI] New
distanceMeters
property has been added toSearchPlace
. Therefore,copy()
,createFromSearchResult()
andcreateFromIndexableRecord()
methods andSearchPlace
constructor acceptdistanceMeters
parameter now.
- [CORE] New
distanceMeters
property has been added toSearchResult
. - [CORE] Now
SearchOptions.indexableRecordsDistanceThresholdMeters
andCategorySearchOptions.indexableRecordsDistanceThresholdMeters
options are available that allow to look up for indexable records only within specified distance threshold. - [UI] Now user can edit name and can delete favorite, created from template (e.g. Work template).
- [UI] Now you can provide
CategorySearchOptions
that will be used for search request inSearchCategoriesBottomSheetView
. Options can be provided viafun open(category: Category, searchOptions: CategorySearchOptions)
. - [UI] New
updateDistance()
method has been added toSearchPlaceBottomSheetView
.
- [CORE] Fixed a bug with uninitialized in some cases
SearchResultMetadata
properties.
- Common SDK
14.2.0
- Telemetry SDK
8.1.0
- [CORE] All operations in
IndexableDataProvider
classes now are asynchronous. - [CORE] Property
LocalDataProvider.size
has been removed, now it's recommended to get size of the provider by callingIndexableDataProvider.getAll()
. - [CORE] Now
OfflineSearchEngine.addOfflineRegion()
returns aFuture<Boolean>
representing pending completion of the task. This change may break existing code in rare cases.
- [CORE]
OfflineSearchEngine
has a new functionfun searchAddressesNearby(street: String, proximity: Point, radiusMeters: Double, callback: SearchCallback)
that searches for addresses nearby.
- [CORE] Offline data format has been changed, you'll need to obtain new offline data to work with offline.
- [CORE] In the previous versions, some internal classes were available publicly, they had the
internal
keyword in the package name. Now such classes are not available anymore. Normally, external customers shouldn't have accessed internal classes in their projects, however, this change may break customer's code.
- [UI] Landscape support.
- [UI]
SearchBottomSheetView
,SearchCategoriesBottomSheetView
andSearchPlaceBottomSheetView
classes extend fromSearchSdkFrameLayout
class now. This new class allows users to specifymaxWidth
of the view.
- [CORE] Fixed a bug with uninitialized properties in search suggestions and search results based on indexable records.
- [UI] Dark Mode support.
- [UI] Color palette customization has been added. Take a look at new sample for more information.
- [UI] Now
SearchBottomSheetView
returns clickedHistoryRecords
viaSearchBottomSheetView.OnHistoryClickListener
. In the previous SDK versions when a user clicked on aHistoryRecords
, a new search started using the record's name as a query.
- [UI]
SearchPlace.createFromUserFavorite(FavoriteRecord)
removed, useSearchPlace.createFromIndexableRecord(IndexableRecord, Point)
instead.
- [CORE] The following methods now require extra
responseInfo: ResponseInfo
parameter:AnalyticsService.createRawFeedbackEvent(searchResult: SearchResult)
AnalyticsService.createRawFeedbackEvent(searchSuggestion: SearchSuggestion)
AnalyticsService.sendFeedback(searchResult: SearchResult)
AnalyticsService.sendFeedback(searchSuggestion: SearchSuggestion)
- [CORE]
FeedbackEvent.FeedbackReason
annotation class has been added which helps us to enforce developers to use one of predefined constants forFeedbackEvent.reason
property. Currently available constants are:FeedbackReason.INCORRECT_NAME
FeedbackReason.INCORRECT_ADDRESS
FeedbackReason.INCORRECT_LOCATION
FeedbackReason.OTHER
- [CORE]
OfflineSearchEngine.addOfflineRegion()
function's signature has been changed, now it accepts callback to be invoked when the region has been added. - [UI] Data classes
SearchPlace
andFavoriteTemplate
have been replaced with regular classes. As a result, allcomponentN()
methods have been removed andFavoriteTemplate.copy()
method has been removed. - [UI] Enum class
Category
has been replaced with a regular class. All predefinedCategory
values can be retrieved withCategory.PREDEFINED_CATEGORY_VALUES
property. - [UI] Enum classes
SearchBottomSheetView.BottomSheetState
,SearchCategoriesBottomSheetView.BottomSheetState
,SearchPlaceBottomSheetView.BottomSheetState
have been replaced with annotation classes, annotated with@IntDef
.
- [CORE] Almost all public
data classes
,sealed classes
andenum classes
API have been changed.
- [CORE, UI]
OfflineSearchEngine
has been added which provides offline search functionality. Contact our team to get more information on how to use it and where to get offline data.
- [CORE] Fixed NPE that could be thrown on some specific Android devices.
- [CORE, UI] Minimum Android SDK version 21, OkHttp 4.9.0.
- [CORE]
SearchResultType
enum types order have been changed. Now all types are sorted in descending order by the size of the associated geofeature.
- [CORE] Fixed a bug with
SearchSuggestionType.Category()
where propertycanonicalName
was incorrect. - [UI] Functions
findByName()
andfindBySBSName()
fromCategory
class now work properly:findByName()
finds categories for names associated with Geocoding endpoint,findBySBSName()
- for names associated with SBS endpoints.
- [CORE]
WeekTimestamp
class API has been changed:hour
andminute
properties type has been changed fromByte
toInt
.day
property type has been changed fromByte
toWeekDay
. Also, newWeekDay
enum class has been added. This class represents one of days of the week (Monday, ..., Sunday).
- [CORE]
HistoryRecord
andFavoriteRecord
constructor signatures have been changed. - [CORE]
FavoriteRecord.categories
property now is nullable. - [UI]
SearchPlace.categories
property now is nullable.
- [CORE] Now
IndexableRecord
interface provides new properties:routablePoints
,metadata
,descriptionText
,categories
,makiIcon
. Their semantic is the same as in the corresponding fields of theSearchResult
.
- [CORE] New
AnalyticsService.createRawFeedbackEvent()
methods have been added. This methods allow users to create raw feedback event, that can be cached and used later. Also,AnalyticsService.sendRawFeedbackEvent()
method has been added, so users could send feedback event, based on provided raw feedback event.
- [CORE]
SearchCallback.onResults()
,SearchSuggestionsCallback.onSuggestions()
,SearchSelectionCallback.onResult()
,SearchMultipleSelectionCallback.onResult()
function signatures have been changed: now each function acceptsResponseInfo
parameter, the information about search response and associated search request. - [CORE] Batch retrieve method
SearchEngine.select(List<SearchSuggestion>,SearchMultipleSelectionCallback): SearchRequestTask
now requires provided list of suggestions to be non-empty and also eachSearchSuggestion
should have sameRequestOptions
, so request will be processed correctly. - [CORE]
CategorySearchOptions.types
property and its corresponding builder field and functions have been removed. - [CORE] Enum
QueryType
has a new type -STREET
. - [CORE]
SearchResultSuggestion
propertytype: SearchResultType
has been replaced with propertytypes: List<SearchResultType>
. Also,SearchResult
propertytype: SearchResultType
has been replaced with propertytypes: List<SearchResultType>
andSearchPlace
propertyresultType: SearchResultType
has been replaced with propertyresultTypes: List<SearchResultType>
. - [CORE] Now
RouteOptions.Deviation.Time
constructor requires extrasarType: SarType?
parameter. - [CORE]
SearchOptions.navigationProfile: SearchNavigationProfile
property and its corresponding builder field and function have been removed. Instead, newSearchOptions.navigationOptions: SearchNavigationOptions
property and correspondingSearchOptions.Builder.navigationOptions
builder field andSearchOptions.Builder.navigationOptions()
function have been added. - [UI] Now
SearchPlace
also providesdescriptionText
field.SearchPlace
's constructor signature has been changed.
- [CORE] New
AnalyticsService.sendMissingResultFeedback()
method has been added. This method allows users to send feedback for use cases, when expected POI / place wasn't found in search results. Also newMissingResultFeedbackEvent
class has been added. - [CORE] New
sessionId
property has been added toFeedbackEvent
. - [CORE] New
EtaType
,SearchNavigationOptions
,RouteOptions.Deviation.SarType
classes have been added. Also,RouteOptions.Deviation
and its subclasses has newsarType: SarType?
property. - [CORE] Similarly to the
SearchSuggestion
type, nowSearchResult
also providesdescriptionText
field. - [UI] All types of
SearchSuggestion/SearchResult
will be shown in the description label (previously only first was shown).
- [CORE]
RequestOptions
primary constructor visibility has been reduced tointernal
. Now you can not createRequestOptions
objects. - [CORE]
com.mapbox.search.NavProfile
has been renamed tocom.mapbox.search.SearchNavigationProfile
. Consequently,com.mapbox.search.SearchOptions.navProfile
andcom.mapbox.search.SearchOptions.Builder.navProfile
properties have been renamed tonavigationProfile
. Also,com.mapbox.search.SearchOptions.Builder.navProfile()
function have been renamed tonavigationProfile()
and acceptsSearchNavigationProfile
instead of the old type. - [CORE] Property
searchResultType
incom.mapbox.search.record.HistoryRecord
andcom.mapbox.search.record.FavoriteRecord
classes has been renamed totype
. Nowtype
became common property for all the Indexable Records. - [CORE]
CategorySearchEngine
function signature has been changed: nowsearch()
acceptsoptions
parameter ofCategorySearchOptions
type. ClassCategorySearchOptions
contains search options, used for category search (previously those options were stored insideSearchOptions
). BothCategorySearchOptions
andSearchOptions
class signatures are identical. - [CORE]
ReverseGeoOptions.countries
andReverseGeoOptions.reverseMode
options have been marked as deprecated along withReverseMode
enum. These entities will be removed in the future updates.
- [CORE] New
AnalyticsService
andFeedbackEvent
classes have been added.AnalyticsService
helps users track analytics events. For now only feedback events can be tracked. User should provideSearchResult
/SearchSuggestion
/IndexableRecord
object andFeedbackEvent
object, describing user's feedback. - [CORE] New
ServiceProvider.analyticsService()
method has been added, which returns instance ofAnalyticsService
. - [CORE] New
unsafeParameters
property has been added toSearchOptions
. The correspondingunsafeParameters
property andunsafeParameters()
method have been added toSearchOptions.Builder
. - [CORE]
openHours
,parking
,cpsJson
properties have been added toSearchResultMetadata
. AlsoOpenHours
,OpenPeriod
,WeekTimestamp
,ParkingData
classes have been added. - [CORE] New
ignoreIndexableRecords
property now available inSearchOptions
, andCategorySearchOptions
. This property specifies whether to ignoreIndexableRecord
results or not, default is false. Semantic is the same for bothSearchOptions
, andCategorySearchOptions
.
- [CORE] Fixed a bug due to which search results based on Indexable Records could be with types not specified in
SearchOptions
.
- [CORE] Fixed a bug that caused to fail in some cases search request with
IndexableRecords
included. - [UI] Category canonical name updated.
- [CORE] New
SearchSuggestionType
subtype has been added, which may break existing code in some cases. - [CORE]
proximity
,origin
andnavProfile
properties have been removed fromRequestOptions
. - [CORE]
SearchResultMetadata
's API has been significantly changed.- Function
SearchResultMetadata.getAllData()
has been removed. InsteadextraData
property is available. This property provides the data that is not available via the other properties of the class. - Constants
KEY_PHONE
,KEY_WEBSITE
,KEY_REVIEW_COUNT
,KEY_AVERAGE_RATING
were removed. Instead, usephone
,website
,reviewCount
,averageRating
properties directly.
- Function
- [CORE] New
SearchSuggestionType
subtype has been added. NowSearchSuggestion
can haveQuery
type, which means that selection of this suggestion type will result in new suggestions. - [CORE] Now you can search along a route, pass
RouteOptions
toSearchOptions
to configure route parameters. - [CORE] Now
SearchResultMetadata
provides associated with search result photos and also provides a newdescription
property. - [CORE] Now
SearchSuggestion
has an optionaladdress
property. - [CORE] Now
RequestOptions
has newoptions
property and additionalproximityRewritten
andoriginRewritten
flags that denote whetheroptions
have been modified by the Search SDK.
- [CORE] Fixed a bug that happened when backend sent suggestion with
POSTCODE
type. - [UI] Now UI SDK always shows address if it's available.
- [CORE]
SearchSelectionCallback
functions signatures have been changed, nowonResult
andonCategoryResult
acceptSearchSuggestion
parameter, the suggestion from which the result was resolved. - [CORE] New fields have been added to
HistoryRecord
andFavoriteRecord
data classes which may break existing code. - [CORE] String resource
app_name
has been removed from the core SDK. This resource was public by mistake and external modules normally shouldn't have used this.
- [CORE] Batch retrieve for search suggestions has been added. Call
SearchEngine.select(List<SearchSuggestion>,SearchMultipleSelectionCallback): SearchRequestTask
to resolve multiple suggestions at once. - [CORE] Now if you have a token with special permissions, you'll be receiving POI metadata if it's available. Metadata is available in
SearchResult
, also, it can be stored inHistoryRecord
andFavoriteRecord
. - [CORE] Now you can request ETA to search suggestions and results for forward geocoding. Specify
origin
point andnavProfile
type inSearchOptions
to request ETA. ETA for reverse geocoding is to be added. - [CORE] Now routable points are available for search results, also, it can be stored in
HistoryRecord
andFavoriteRecord
.
- [CORE] Fixed a crash that happened after consecutive selection of
SearchSuggestion
within one session. - [UI] Now
recent search history
view doesn't show duplicating history entries. - [UI] Prevent
SearchCategoriesBottomSheetView
andSearchResultsView
from leaking, when used byFragment
.
- [CORE] Parameter
endpointBaseUrl
of theMapboxSearchSdk.initialize()
method has been renamed togeocodingEndpointBaseUrl
. In addition, new parameter namedsingleBoxSearchBaseUrl
has been added to specifySingle Box Search
API endpoint. - [CORE] Enum
SearchResultType
now has two more types -PLACE
andSTREET
. - [CORE]
SearchSuggestion.TypeDescription
has been transformed to a new type calledSearchSuggestionType
. See documentation ofSearchSuggestionType
for more details. Also propertytypeDescription
of theSearchSuggestion
type has been renamed totype
. - [CORE]
SearchCategorySuggestion
type has been removed. UseSearchSuggestion.type
to check if a suggestion is a category. - [CORE]
SearchSelectionCallback.onCategoryResult(results: List<SearchResult>)
callback has been added. - [UI] From
SearchBottomSheetView
,SearchPlaceBottomSheetView
,SearchCategoriesBottomSheetView
classes removed functions that were available to simplify interaction with Kotlin functional interfaces. With Kotlin 1.4.0 SAM conversions for Kotlin interfaces are available and these functions are not needed anymore. Removing these functions from the SDK may bring breaking changes if you were accessing those functions from Java code (which is usually pointless) or if you are using older versions of Kotlin.
- [ALL] Support of the new search backend (will be announced soon).
- [ALL] Bump Kotlin version to 1.4.0.
We are bug-free 😉 (almost).
No changes, the code is the same as v0.7.1.
- [CORE] Fixed serialization bug that caused history and favorites data loss.
- [CORE] Now it's possible for external customers to instantiate HistoryRecord instance.
- [CORE] SearchRequestException constructor arguments order changed.
- [UI] Now if
SearchCategoriesBottomSheetView.open(Category)
is called with the latest set category, listeners will be notified about loaded results if they already loaded or loading will be initiated if the card's state is error. - [UI] New properties
isNavigateButtonVisible
,isShareButtonVisible
,isFavoriteButtonVisible
forSearchPlaceBottomSheetView
are available that manage buttons visible to user. - [UI] Now it's allowed to set any number of items for hot categories section including zero. Hot categories section will be hidden in case of an empty list. However, to ensure the best behavior for the view, we recommend setting at most four items. Hot categories section does not support scrolling, if items don't fit into the view width, they will be flattened.
- [UI] Now
SearchResultsView
hasdefaultSearchOptions
property which defines default options for search. To override these options, usesearch(query: String, options: SearchOptions)
function. - [UI] Now you can specify collapsed state anchor for
SearchBottomSheetView
. Desired anchor can be provided withSearchBottomSheetView.Configuration
.
- [UI] Fixed a bug with
SearchBottomSheetView
when new configuration was ignored after activity recreation.
- [CORE] Some classes that used to be available in external modules have been moved to
com.mapbox.search.internal
package. These files should not be accessed in the customer's code and we do not guarantee their availability in the future. - [CORE] Core SDK has been fully refactored, see new samples for more information.
- [UI] Removed
HotCategory
class. Now it's allowed to choose any category for hot categories section. - [UI] Removed
SearchBottomSheetView.Configuration.categorySearchResultsLimit
property and its corresponding builder fields. - [UI] We do not longer guarantee that returned by
SearchBottomSheetBehavior
,SearchPlaceBottomSheetView
, andSearchCategoriesBottomSheetView
'sgetBehavior()
function returns an instance ofcom.google.android.material.bottomsheet.BottomSheetBehavior
. UseaddOnBottomSheetStateChangedListener
functions for watching card state changes andstate
property for getting current state. - [UI]
SearchViewBottomSheetsMediator
is no longer part of the UI SDK and has been moved to the sample app. - [UI]
SearchResultsView.initialize()
function has been removed. Now view can work without explicit initialization call. To provide search options, including results limit, usesearch(query: String, options: SearchOptions)
function. - [UI]
SearchBottomSheetView.Configuration.searchResultsLimit
property and its corresponding builder functions have been removed. Now you can provideSearchOptions
that includes results limit.
- [UI] Fixed a bug with SearchBottomSheetView when it reset its state after
hide()
function call.
- [UI] Added
SearchBottomSheetView.isHideableByDrag
property that sets whether the bottom sheet can hide when it is swiped down.
- [UI] Fixed a bug with BottomSheetBehavior when it came to the incorrect state after state restoration in some cases.
- [CORE] SearchError has been renamed to SearchNetworkRequestException. Now it extends RuntimeException() and contains error cause.
- [UI]
SearchPlaceBottomSheetView.addOnNavigateClickListener()
andSearchPlaceBottomSheetView.addOnShareClickListener()
functions now accept lambdas which take argument of typeSearchPlace
.
- [UI] Added SearchPlaceBottomSheetView.
- [UI] Added SearchCategoriesBottomSheetView.
- [UI] Added auxiliary functions for SearchBottomSheet state management:
open()
,expand()
,hide()
,restorePreviousNonHiddenState()
. - [UI] Miles support. Now UI SDK detects measurement system from current device locale and formats distances in corresponding distance unit.
- [CORE] Added
SearchEngine.setAccessToken(String)
function.
- [CORE] In some cases SDK couldn't get last known location.
- [UI] Removed SearchResultListener, use
SearchBottomSheetView.OnSearchResultClickListener
andSearchBottomSheetView.OnCategoryClickListener
instead. Category search functionality has been removed fromSearchBottomSheetView
, instead nowSearchCategoriesBottomSheetView
implements category search. - [UI] Removed
UserFavoriteOnClickListener
, useSearchBottomSheetView.OnFavoriteClickListener
instead. - [UI] Removed
SearchCloseListener
. NowSearchBottomSheetView
does not have close button, instead the card resets its state when it collapses. - [CORE] Removed
SearchResult.distance()
function, insteadDistanceCalculator
class is available, also you can useLatLng.distanceTo(LatLng)
function. - [CORE] Removed
SearchEngine.destroy()
function. NowSearchEngine
must be initialized only once, in case of reinitialization attemptIllegalStateException
will be thrown.