| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import 'dart:async';
- import 'package:flutter/material.dart';
- import 'package:physigo/exercises/exercises_validation/models/exercise.dart';
- import 'package:physigo/exercises/exercises_validation/widgets/pose_detector.dart';
- class ExerciseIndicator extends StatelessWidget {
- const ExerciseIndicator({
- Key? key,
- required this.repCounter,
- required this.stepExerciseController,
- required this.exercise,
- }) : super(key: key);
- final Stream<int> repCounter;
- final Exercise exercise;
- final StreamController<StepExercise> stepExerciseController;
- @override
- Widget build(BuildContext context) {
- return Column(
- children: [
- StreamBuilder<StepExercise>(
- stream: stepExerciseController.stream,
- builder: (context, snapshot) {
- Color color;
- if (!snapshot.hasData) {
- color = Colors.black;
- } else {
- switch (snapshot.data!) {
- case StepExercise.notInPlace:
- color = Colors.black;
- break;
- case StepExercise.ready:
- color = Colors.green;
- break;
- case StepExercise.start:
- color = Colors.blue;
- break;
- case StepExercise.end:
- color = Colors.yellow;
- break;
- }
- }
- return Container(
- height: 100,
- width: 100,
- color: color,
- );
- },
- ),
- StreamBuilder<int>(
- stream: repCounter,
- builder: (context, snapshot) {
- var repCounter = 0;
- if (snapshot.hasData) {
- repCounter = snapshot.data!;
- }
- return Column(
- children: [
- Text(
- "${repCounter % exercise.reps}/${exercise.reps}",
- style: const TextStyle(fontSize: 40),
- ),
- Text(
- "${repCounter ~/ exercise.reps}/${exercise.series}",
- style: const TextStyle(fontSize: 40),
- ),
- ],
- );
- },
- ),
- ],
- );
- }
- }
|