xtravision_flutter_sdk 0.4.0 copy "xtravision_flutter_sdk: ^0.4.0" to clipboard
xtravision_flutter_sdk: ^0.4.0 copied to clipboard

outdated

A XtraVision Flutter package for integrating Flutter App with XtraVision SaaS platform. Currently support Android and IOS Platform.

example/lib/main.dart

import 'package:demo_app/my_assessment_view.dart';
import 'package:flutter/material.dart';
// import 'package:my_package/my_package.dart';
import 'package:camera/camera.dart';

List<CameraDescription> cameras = [];

Future<void> main() async {
  try {
    // Ensure that plugin services are initialized so that `availableCameras()`
    // can be called before `runApp()`
    WidgetsFlutterBinding.ensureInitialized();

    // Obtain a list of the available cameras on the device.
    cameras = await availableCameras();
  } on CameraException catch (e) {
    debugPrint('Error in fetching the cameras: $e');
  }

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'XtraVision Flutter App',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePage();
}

class _MyHomePage extends State<MyHomePage> {
  String _selectedAssessment = 'SQUATS';
  String _selectedRadio = 'front';
  CameraDescription _selectedCamera = cameras[1]; // default camera: front
  // List of All Assessments
  final List<String> _options = ['SQUATS', 'PUSH_UPS', 'BANDED_T'];

  void _handleOptionChanged(String value) {
    debugPrint("_MyHomePage: Selected Assessment is $value");

    setState(() {
      _selectedAssessment = value;
    });
  }

  void _handleRadioChanged(String value) {
    debugPrint("_MyHomePage: Selected Camera is `$value` ");
    _selectedRadio = value;

    setState(() {
      if (value == 'front') {
        _selectedCamera = cameras[1];
      } else {
        _selectedCamera = cameras[0]; // back camera
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'XtraVision App',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('XtraVision Demo App'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              DropdownButton<String>(
                value: _selectedAssessment,
                items: _options
                    .map((option) => DropdownMenuItem(
                          value: option,
                          child: Text(option),
                        ))
                    .toList(),
                onChanged: (v) => _handleOptionChanged(v!),
              ),
              const SizedBox(height: 16),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Radio(
                    value: 'front',
                    groupValue: _selectedRadio,
                    onChanged: (v) => _handleRadioChanged(v!),
                  ),
                  const Text('Front'),
                  Radio(
                    value: 'back',
                    groupValue: _selectedRadio,
                    onChanged: (v) => _handleRadioChanged(v!),
                  ),
                  const Text('Back'),
                ],
              ),
              const SizedBox(height: 16),
              ElevatedButton(
                child: Text("Let's Start $_selectedAssessment"),
                onPressed: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                        builder: (context) => MyAssessmentView(
                            camera: _selectedCamera,
                            assessmentName: _selectedAssessment)),
                  );
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
0
points
42
downloads

Publisher

verified publisherxtravision.ai

Weekly Downloads

A XtraVision Flutter package for integrating Flutter App with XtraVision SaaS platform. Currently support Android and IOS Platform.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

camera, flutter, google_mlkit_commons, google_mlkit_pose_detection, logger, web_socket_channel

More

Packages that depend on xtravision_flutter_sdk