flutter_ai_indoor_navigation 0.3.8 copy "flutter_ai_indoor_navigation: ^0.3.8" to clipboard
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(",");
    });
  }
}
1
likes
120
points
102
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter wrapper for the Combain AI Navigation SDK.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_cache_manager, flutter_plugin_android_lifecycle, logger, permission_handler, pigeon, plugin_platform_interface

More

Packages that depend on flutter_ai_indoor_navigation