1import 'package:navigine_sdk/navigine_sdk.dart';
7class NavigineSdkExample {
20 NavigineSdkExample() {
27 void _initializeSdk() {
36 print(
'Navigine SDK Version: ${NavigineSdk.getVersion()}');
41 print(
'Device ID: ${NavigineSdk.getDeviceId()}');
46 print(
'Relative Time: ${NavigineSdk.getRelativeTime()}');
56 print(
"User-Agent: ${NavigineSdk.getUserAgent()}");
61 print(
"SDK reset to initial state");
70 _initializeManagers();
72 print(
'SDK initialization error: $e');
79 void _initializeManagers() {
84 print(
'LocationManager successfully initialized');
93 print(
'NavigationManager successfully initialized');
103 print(
'ZoneManager successfully initialized');
116 print(
'RouteManager successfully initialized');
129 print(
'AsyncRouteManager successfully initialized');
139 print(
'NotificationManager successfully initialized');
149 print(
'MeasurementManager successfully initialized');
158 print(
'LocationListManager successfully initialized');
166 print(
'StorageManager successfully initialized');
175 print(
'MqttSession successfully initialized');
185 print(
'=== Navigine SDK Information ===');
186 print(
'SDK Version: ${NavigineSdk.getVersion()}');
187 print(
'Device ID: ${NavigineSdk.getDeviceId()}');
188 print(
'Relative Time: ${NavigineSdk.getRelativeTime()}');
190 'LocationManager: ${_locationManager != null ? "available" : "unavailable"}',
193 'NavigationManager: ${_navigationManager != null ? "available" : "unavailable"}',
195 print(
'ZoneManager: ${_zoneManager != null ? "available" : "unavailable"}');
197 'RouteManager: ${_routeManager != null ? "available" : "unavailable"}',
200 'AsyncRouteManager: ${_asyncRouteManager != null ? "available" : "unavailable"}',
203 'NotificationManager: ${_notificationManager != null ? "available" : "unavailable"}',
206 'MeasurementManager: ${_measurementManager != null ? "available" : "unavailable"}',
209 'LocationListManager: ${_locationListManager != null ? "available" : "unavailable"}',
212 'StorageManager: ${_storageManager != null ? "available" : "unavailable"}',
215 'MqttSession: ${_mqttSession != null ? "available" : "unavailable"}',
223 print(
'=== Manager Usage Demonstration ===');
227 print(
'LocationManager ready for location operations');
233 print(
'NavigationManager ready for positioning');
239 print(
'ZoneManager ready for zone operations');
245 print(
'RouteManager ready for route building');
251 print(
'AsyncRouteManager ready for async route operations');
257 print(
'NotificationManager ready for notifications');
263 print(
'MeasurementManager ready for measurements');
269 print(
'LocationListManager ready for location list operations');
275 print(
'StorageManager ready for storage operations');
281 print(
'MqttSession ready for publishing position data via MQTT');
290 print(
'=== Dart Features Demonstration ===');
293 _sdk?.setUserHash(
'YYYY-YYYY-YYYY-YYYY');
294 print(
'User hash updated');
297 final managers = <String>[
309 print(
'Available managers: $managers');
312 final sdkInfo = <String, String>{
318 final infoStrings = sdkInfo.entries.map(
319 (entry) =>
'${entry.key}: ${entry.value}',
321 print(
'SDK information: ${infoStrings.join(',
')}');
324 final allManagers = [
337 final availableManagers =
338 allManagers.where((manager) => manager !=
null).length;
339 print(
'Available managers count: $availableManagers');
345 Future<void> demonstrateAsyncFeatures() async {
346 print(
'=== Async Features Demonstration ===');
349 await Future.delayed(Duration(seconds: 1));
350 print(
'Async operation completed');
354 await _performAsyncOperation();
356 print(
'Error in async operation: $e');
363 Future<void> _performAsyncOperation() async {
364 await Future.delayed(Duration(milliseconds: 500));
365 print(
'Additional async operation completed');
372 print(
'=== Extension Methods Demonstration ===');
374 final status = _getManagersStatus();
375 print(
'Managers status: $status');
377 final isReady = _isSdkReady();
378 print(
'SDK ready for work: $isReady');
384 Future<void> runExample() async {
388 await demonstrateAsyncFeatures();
401 Map<String, bool> _getManagersStatus() {
403 'LocationManager': _locationManager !=
null,
404 'NavigationManager': _navigationManager !=
null,
405 'ZoneManager': _zoneManager !=
null,
406 'RouteManager': _routeManager !=
null,
407 'AsyncRouteManager': _asyncRouteManager !=
null,
408 'NotificationManager': _notificationManager !=
null,
409 'MeasurementManager': _measurementManager !=
null,
410 'LocationListManager': _locationListManager !=
null,
411 'StorageManager': _storageManager !=
null,
412 'MqttSession': _mqttSession !=
null,
420 return _sdk !=
null && _locationManager !=
null;
427class NavigineSdkFlutterExample {
428 static Future<void> initializeInFlutter() async {
429 print(
'=== Navigine SDK Initialization in Flutter ===');
431 final example = NavigineSdkExample();
432 await example.runExample();
434 print(
'Initialization completed');
443 await example.runExample();