flutter_ai_indoor_navigation 0.3.8
flutter_ai_indoor_navigation: ^0.3.8 copied to clipboard
A Flutter wrapper for the Combain AI Navigation SDK.
example/lib/main.dart
// ignore_for_file: avoid_print
import 'package:flutter/material.dart';
import 'package:flutter_ai_indoor_navigation/combain_logger.dart';
import 'package:flutter_ai_indoor_navigation/flutter_ai_indoor_navigation_sdk.dart';
import 'package:flutter_ai_indoor_navigation/messages.g.dart';
import 'package:flutter_ai_indoor_navigation/pretty_print_extension.dart';
import 'package:flutter_ai_indoor_navigation_example/secrets.dart';
import 'package:logger/logger.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var version = "...";
FlutterCombainLocation? location = null;
var locationListener = () {};
var places = "";
var logger = Logger(
//filter: TestLogFilter(),
printer: PrettyPrinter(
dateTimeFormat: DateTimeFormat.onlyTimeAndSinceStart,
methodCount: 4,
errorMethodCount: 4),
);
final config = FlutterAIIndoorNavigationSDKConfig(
API_KEY, CombainLoggerImpl(), null, null, null);
FlutterAIIndoorNavigationSDK? sdk;
@override
void initState() {
print("initting state");
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: Column(
children: [
ElevatedButton(
onPressed: () async {
try {
await initPlatformState();
} catch (e) {
print("Error in initting sdk: $e");
}
},
child: const Text("Init SDK")),
ElevatedButton(
child: const Text("Start"),
onPressed: () async {
try {
await sdk!.start();
} catch (e) {
print("Error starting sdk: $e");
}
}),
Text("Version: $version"),
Text("places: $places"),
Text("Location: \n ${location?.prettyPrint()}"),
ValueListenableBuilder(
valueListenable: FlutterAIIndoorNavigationSDK.syncProgress,
builder: (context, value, child) {
return Text("Sync progress: $value");
})
],
)),
),
);
}
Future initPlatformState() async {
print("initting sdk, ${config.apiKey}");
sdk = await FlutterAIIndoorNavigationSDK.create(config);
print("SDK initted with version:");
var v = await sdk!.getSdkVersion();
var p = await sdk!.getAllPlaces();
locationListener = () {
var l = sdk!.currentLocation.value;
print("Location: ${l?.prettyPrint()}");
setState(() {
location = l;
});
};
locationListener();
sdk!.currentLocation.addListener(locationListener);
setState(() {
version = v;
places = p.join(",");
});
}
}