init method
Fetch base URLs
Implementation
Future<void> init() async {
if (_initialized) return;
// 1. Get package name
await _systemService.init();
if (_systemService.packageName == null) return;
// 2. Get URLs
final res = await _apiService.request(
method: RequestMethod.post,
url: '${BaseURL.freeMap}/urls',
body: {'deviceId': '1', 'appId': _systemService.packageName},
);
_initialized = res.success;
// 3. Update base URLs
try {
_freeMapURL = res.data['data']['fm'];
_logService.logURL = res.data['data']['log'];
final nominatimURL = res.data['data']['osm'];
final routingURL = res.data['data']['polyline'];
// Ensure the custom URL set by the developer is not overridden.
if ((_nominatimURL.isCustom && _nominatimURL.url == nominatimURL) ||
(!_nominatimURL.isCustom && _nominatimURL.url != nominatimURL)) {
_nominatimURL = UrlModel(url: nominatimURL);
}
if ((_routingURL.isCustom && _routingURL.url == routingURL) ||
(!_routingURL.isCustom && _routingURL.url != routingURL)) {
_routingURL = UrlModel(url: routingURL);
}
} catch (e, st) {
_logService.logError(e, st);
}
}