conva_omni_copilot 1.1.0 copy "conva_omni_copilot: ^1.1.0" to clipboard
conva_omni_copilot: ^1.1.0 copied to clipboard

outdated

The client library for adding and interacting with CONVA OMNI Copilot.

example/lib/main.dart

import 'dart:convert';

import 'package:flutter/material.dart';

import 'package:conva_omni_copilot/conva_omni_copilot.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(new MaterialApp(
    home: new MyApp(),
    debugShowCheckedModeBanner: false,
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> implements CopilotLifeCycleObserver {
  String _searchText = '';

  @override
  void initState() {
    super.initState();
    initConvaOmniCopilot();
  }

  void initConvaOmniCopilot() {
    List<List<int>> waveGradientColor = [
      [0xFF0197FF, 0xFFFFFFFF],
      [0xFF9701FF, 0xFFFF0197],
      [0xFFFF0197, 0xFFFF9701],
    ];
    var assistantConfig = new OmniCopilotConfiguration()
      ..copilotId = "<CopilotId>"
      ..apiKey = "<ApiKey>"
      ..enableCustomTrigger = true
      ..waveGradientColor = waveGradientColor;

    ConvaOmniCopilot.initialize(assistantConfig);
    ConvaOmniCopilot.setLifeCycleObserver(this);
    ConvaOmniCopilot.setAction(onSearch: (searchInfo) {
      setState(() {
        try {
          JsonEncoder encoder = const JsonEncoder.withIndent('  ');
          String searchMapString = encoder.convert(searchInfo);
          _searchText = searchMapString.toString();
        } catch (e) {
          print(e);
        }
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        debugShowCheckedModeBanner: false,
        home: Scaffold(
            appBar: AppBar(
              title: const Text('CONVA Omni Copilot'),
            ),
            body: Center(
                child: Column(
              mainAxisSize: MainAxisSize.max,
              children: [
                Container(height: 25),
                Row(
                  children: [
                    Expanded(
                      child: Container(
                          height: 45.0,
                          margin:
                              const EdgeInsets.fromLTRB(17.0, 0.0, 10.0, 0.0),
                          child: TextField(
                            controller: TextEditingController(text: ""),
                            decoration: InputDecoration(
                              labelText: 'Utterance Text',
                              suffixIcon: GestureDetector(
                                onTap: () {
                                  Clipboard.setData(
                                      ClipboardData(text: _searchText));
                                  ScaffoldMessenger.of(context).showSnackBar(
                                    const SnackBar(
                                        content: Text('Utterance text copied')),
                                  );
                                },
                                child: Icon(Icons.copy),
                              ),
                              border: OutlineInputBorder(
                                borderRadius: BorderRadius.circular(10.0),
                                borderSide: const BorderSide(
                                  color: Colors.blue,
                                  width: 2.0,
                                ),
                              ),
                            ),
                          )),
                    ),
                    Container(
                      height: 60,
                      width: 60,
                      margin: const EdgeInsets.only(right: 10.0),
                      child: Padding(
                          padding: const EdgeInsets.all(
                              8.0), // Adjust the padding as needed
                          child: ConvaOmniTrigger(
                            enableCircularBackground: true,
                          )),
                    ),
                  ],
                ),
                Container(height: 30), // set height
                Flexible(
                    child: FractionallySizedBox(
                        widthFactor: 0.9,
                        heightFactor: 0.98,
                        child: SingleChildScrollView(
                            physics: const AlwaysScrollableScrollPhysics(),
                            child: Container(
                              height: MediaQuery.of(context).size.height,
                              decoration: const BoxDecoration(
                                shape: BoxShape.rectangle,
                                color: Colors.black,
                              ),
                              child: Padding(
                                padding: const EdgeInsets.all(16.0),
                                child: Text(
                                  '$_searchText\n',
                                  style: const TextStyle(
                                      fontSize: 20.0,
                                      fontWeight: FontWeight.bold,
                                      color: Colors.white),
                                ),
                              ),
                            ))))
              ],
            ))));
  }

  @override
  void onCopilotInitFailure(String description) {
    print("onCopilotInitFailure " + description);
  }

  @override
  void onCopilotInitSuccess() {
    print("onCopilotInitSuccess");
  }

  @override
  void onCopilotInteractionBegin(bool isVoice) {
    print("onCopilotInteractionBegin");
  }
}
2
likes
0
points
22
downloads

Publisher

verified publisherslanglabs.in

Weekly Downloads

The client library for adding and interacting with CONVA OMNI Copilot.

Homepage

License

unknown (license)

Dependencies

dartdoc, flutter

More

Packages that depend on conva_omni_copilot

Packages that implement conva_omni_copilot