Skip to content

Commit

Permalink
Add language parameter to offline tileset descriptor creation functio…
Browse files Browse the repository at this point in the history
…ns - SSDK-622
  • Loading branch information
aokj4ck committed Apr 3, 2024
1 parent 5e56456 commit 22012ab
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 9 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Guide: https://keepachangelog.com/en/1.0.0/

<!-- Add changes for active work here -->

- [Offline] Add optional `language` parameter to SearchOfflineManager.createTilesetDescriptor and SearchOfflineManager.createPlacesTilesetDescriptor functions.

## 2.0.0-rc.3

- [Core] Add `SearchResultAccuracy.proximate` case which "is a known address point but does not intersect a known rooftop/parcel."
Expand Down
22 changes: 18 additions & 4 deletions Sources/MapboxSearch/InternalAPI/CoreSearchEngineStatics.swift
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
import Foundation

enum CoreSearchEngineStatics {
static func createTilesetDescriptor(dataset: String, version: String) -> MapboxCommon.TilesetDescriptor {
CoreSearchEngine.createTilesetDescriptor(forDataset: dataset, version: version)
static func createTilesetDescriptor(dataset: String, version: String, language: String? = nil) -> MapboxCommon
.TilesetDescriptor {
let identifier: String
if let language {
identifier = dataset + "|" + language
} else {
identifier = dataset
}
return CoreSearchEngine.createTilesetDescriptor(forDataset: identifier, version: version)
}

static func createPlacesTilesetDescriptor(dataset: String, version: String) -> MapboxCommon.TilesetDescriptor {
CoreSearchEngine.createPlacesTilesetDescriptor(forDataset: dataset, version: version)
static func createPlacesTilesetDescriptor(dataset: String, version: String, language: String? = nil) -> MapboxCommon
.TilesetDescriptor {
let identifier: String
if let language {
identifier = dataset + "|" + language
} else {
identifier = dataset
}
return CoreSearchEngine.createPlacesTilesetDescriptor(forDataset: identifier, version: version)
}
}
37 changes: 32 additions & 5 deletions Sources/MapboxSearch/PublicAPI/Offline/SearchOfflineManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,53 @@ public class SearchOfflineManager {
engine.setTileStore(searchTileStore.commonTileStore, completion: completion)
}

/// Creates TilesetDescriptor for offline search index data with provided dataset name and version.
// MARK: - Tileset with name, version, and language parameters

/// Creates TilesetDescriptor for offline search index data with provided dataset name, version, and language.
/// Providing nil or excluding the language parameter will use the dataset name as-is.
/// Providing a language will append it to the name.
/// - Parameters:
/// - dataset: dataset name
/// - version: dataset version
/// - language: Provide a ISO 639-1 Code language from NSLocale. Values will be appended to the place dataset
/// name.
/// - Returns: TilesetDescriptor for TileStore
public static func createTilesetDescriptor(dataset: String, version: String? = nil) -> MapboxCommon
public static func createTilesetDescriptor(
dataset: String,
version: String? = nil,
language: String? = nil
) -> MapboxCommon
.TilesetDescriptor {
CoreSearchEngineStatics.createTilesetDescriptor(dataset: dataset, version: version ?? "")
CoreSearchEngineStatics.createTilesetDescriptor(
dataset: dataset,
version: version ?? "",
language: language
)
}

/// Creates TilesetDescriptor for offline search boundaries with provided dataset name and version.
/// Providing nil or excluding the language parameter will use the places dataset name as-is.
/// Providing a language will append it to the name.
/// - Parameters:
/// - dataset: dataset name
/// - version: dataset version
/// - language: Provide a ISO 639-1 Code language from NSLocale. Values will be appended to the dataset name.
/// - Returns: TilesetDescriptor for TileStore
public static func createPlacesTilesetDescriptor(dataset: String, version: String? = nil) -> MapboxCommon
public static func createPlacesTilesetDescriptor(
dataset: String,
version: String? = nil,
language: String? = nil
) -> MapboxCommon
.TilesetDescriptor {
CoreSearchEngineStatics.createPlacesTilesetDescriptor(dataset: dataset, version: version ?? "")
CoreSearchEngineStatics.createPlacesTilesetDescriptor(
dataset: dataset,
version: version ?? "",
language: language
)
}

// MARK: - Default tileset

/// Creates TilesetDescriptor for offline search index data using default dataset name.
/// - Returns: TilesetDescriptor for TileStore
public static func createDefaultTilesetDescriptor() -> MapboxCommon.TilesetDescriptor {
Expand Down

0 comments on commit 22012ab

Please sign in to comment.