Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace OfflineIndexObserver with AbstractSearchEngine.offlineEngineReady flag #209

Closed
Closed
Prev Previous commit
Change AbstractSearchEngine.offlineEngineReady to public var
- Revert offline testNoData test
aokj4ck committed Apr 26, 2024
commit da5266dbafa9468f21d7a14041098f004214b37f
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ Guide: https://keepachangelog.com/en/1.0.0/

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

- [Offline] Add `AbstractSearchEngine.offlineEngineReady` to mark when offline searches are ready.
- [Offline] Add public `AbstractSearchEngine.offlineEngineReady` to mark when offline searches are ready.

- [Demo] Add OfflineDemoViewController to MapboxSearch.xcodeproj > Demo application.
- [Demo] Remove support for `--offline` launch argument.
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ public class AbstractSearchEngine: FeedbackManagerDelegate {
public private(set) var offlineManager: SearchOfflineManager

/// Block offline searches until the tileset is ready
var offlineEngineReady = false
public var offlineEngineReady = false

// Manager to send raw events to Mapbox Telemetry
let eventsManager: EventsManager
Original file line number Diff line number Diff line change
@@ -50,10 +50,22 @@ class OfflineIntegrationTests: XCTestCase {
acceptExpired: true
)!

let cancelable = searchEngine.offlineManager.tileStore.loadTileRegion(id: regionId, options: options) { _ in
} completion: { result in
completion(result)
}
let cancelable = searchEngine.offlineManager.tileStore
.loadTileRegion(id: regionId, options: options) { progress in
// let sizePercent = CGFloat(progress.loadedResourceSize) / CGFloat(max(1, progress.completedResourceSize))
// NSLog("@@ progress size: \(sizePercent)% (loaded: \(progress.loadedResourceSize), completed:
// \(progress.completedResourceSize))")

let countPercent = CGFloat(progress.loadedResourceCount) / CGFloat(max(
1,
progress.requiredResourceCount
))
NSLog(
"@@ progress count: \(countPercent)% (loaded: \(progress.loadedResourceCount), required: \(progress.requiredResourceCount))"
)
} completion: { result in
completion(result)
}
return cancelable
}

@@ -208,11 +220,8 @@ class OfflineIntegrationTests: XCTestCase {

let errorExpectation = delegate.errorExpectation
searchEngine.search(query: "query")
wait(for: [errorExpectation], timeout: 100)
wait(for: [errorExpectation], timeout: 10)

XCTAssertNotNil(delegate.error)
XCTAssertNotNil(delegate.error?.localizedDescription)
XCTAssertNil(searchEngine.responseInfo)
XCTAssertTrue(searchEngine.suggestions.isEmpty)
}