WT 1.1.25+3 flutter 2.8, activate training plan
This commit is contained in:
@@ -183,7 +183,7 @@ class AccountPage extends StatelessWidget with Trans {
|
||||
}
|
||||
|
||||
ListTile messaging() {
|
||||
FirebaseInAppMessaging fiam = FirebaseInAppMessaging();
|
||||
FirebaseInAppMessaging fiam = FirebaseInAppMessaging.instance;
|
||||
ListTile element = ListTile(
|
||||
leading: Icon(Icons.message),
|
||||
title: TextButton(
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
import 'dart:collection';
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:aitrainer_app/bloc/body_type/bodytype_bloc.dart';
|
||||
import 'package:aitrainer_app/util/app_localization.dart';
|
||||
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/util/enums.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_html.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:aitrainer_app/repository/customer_exercise_device_repository.dar
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/image_button.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
@@ -8,9 +8,7 @@ import 'package:aitrainer_app/model/fitness_state.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
@@ -52,7 +50,6 @@ class _CustomerFitnessPageState extends State<CustomerFitnessPage> with Trans {
|
||||
if (!fulldata) {
|
||||
_bar = AppBarProgress(max: 30, min: 15);
|
||||
}
|
||||
final double h = 27;
|
||||
return Scaffold(
|
||||
appBar: _bar,
|
||||
body: Container(
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
@@ -5,9 +5,7 @@ import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
|
||||
@@ -13,8 +13,6 @@ import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:aitrainer_app/widgets/number_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -6,9 +6,7 @@ import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -6,9 +6,7 @@ import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_progress.dart';
|
||||
import 'package:aitrainer_app/widgets/number_picker.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'dart:collection';
|
||||
import 'dart:ui';
|
||||
import 'package:aitrainer_app/bloc/tutorial/tutorial_bloc.dart';
|
||||
import 'package:aitrainer_app/widgets/tutorial_widget.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
@@ -12,7 +12,6 @@ import 'package:aitrainer_app/widgets/dialog_html.dart';
|
||||
import 'package:aitrainer_app/widgets/number_picker.dart';
|
||||
import 'package:aitrainer_app/widgets/timer_widget.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -8,7 +8,6 @@ import 'package:aitrainer_app/widgets/treeview_parent_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_html/flutter_html.dart';
|
||||
import 'package:flutter_html/style.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
|
||||
@@ -8,7 +8,6 @@ import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_common.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_web_browser.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/bottom_nav.dart';
|
||||
import 'package:aitrainer_app/widgets/menu_page_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class MyDevelopmentLog extends StatelessWidget with Trans, Common {
|
||||
view: CalendarView.month,
|
||||
monthViewSettings: MonthViewSettings(
|
||||
showAgenda: true,
|
||||
appointmentDisplayMode: MonthAppointmentDisplayMode.appointment,
|
||||
appointmentDisplayMode: MonthAppointmentDisplayMode.indicator,
|
||||
showTrailingAndLeadingDates: true,
|
||||
),
|
||||
appointmentTimeTextFormat: 'HH:mm',
|
||||
@@ -307,11 +307,11 @@ class MyDevelopmentLog extends StatelessWidget with Trans, Common {
|
||||
TextSpan(text: t("The found exercises are")),
|
||||
TextSpan(text: " "),
|
||||
TextSpan(
|
||||
text: t("in red"),
|
||||
text: t("in green"),
|
||||
style: GoogleFonts.inter(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.normal,
|
||||
color: Colors.redAccent,
|
||||
color: Color(0xffb4f500),
|
||||
),
|
||||
),
|
||||
TextSpan(text: " "),
|
||||
|
||||
@@ -11,9 +11,7 @@ import 'package:aitrainer_app/bloc/development_by_muscle/development_by_muscle_b
|
||||
import 'package:aitrainer_app/model/workout_menu_tree.dart';
|
||||
import 'package:aitrainer_app/library/tree_view.dart';
|
||||
import 'package:aitrainer_app/widgets/bottom_nav.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/bottom_nav.dart';
|
||||
import 'package:aitrainer_app/widgets/image_button.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MyDevelopmentPage extends StatefulWidget {
|
||||
|
||||
@@ -2,9 +2,7 @@ import 'package:aitrainer_app/bloc/development_sizes/development_sizes_bloc.dart
|
||||
import 'package:aitrainer_app/model/property.dart';
|
||||
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -10,7 +10,6 @@ import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_common.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_web_browser.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'package:aitrainer_app/repository/user_repository.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -4,11 +4,9 @@ import 'package:aitrainer_app/service/logging.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_common.dart';
|
||||
import 'package:aitrainer_app/widgets/sales_button.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_html/flutter_html.dart';
|
||||
import 'package:flutter_html/style.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@ import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:aitrainer_app/widgets/bottom_nav.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_web_browser.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
@@ -20,7 +20,6 @@ import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_html/flutter_html.dart';
|
||||
import 'package:flutter_html/style.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
import 'package:syncfusion_flutter_datagrid/datagrid.dart';
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import 'dart:collection';
|
||||
|
||||
import 'package:aitrainer_app/bloc/training_plan/training_plan_bloc.dart';
|
||||
import 'package:aitrainer_app/library/custom_icon_icons.dart';
|
||||
import 'package:aitrainer_app/model/customer_training_plan.dart';
|
||||
@@ -185,7 +183,7 @@ class _ExerciseTileState extends State<ExerciseTile> with Trans {
|
||||
}
|
||||
|
||||
void activateCustomPlan() {
|
||||
widget.bloc.add(TrainingPlanCustomAddLoad(exerciseType: widget.exerciseType));
|
||||
widget.bloc.add(TrainingPlanAddLoad(exerciseType: widget.exerciseType));
|
||||
Navigator.of(context).popAndPushNamed("myTrainingPlanCustomAdd");
|
||||
}
|
||||
|
||||
|
||||
@@ -3,12 +3,9 @@ import 'package:aitrainer_app/util/app_language.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar_min.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:keyboard_actions/keyboard_actions.dart';
|
||||
import 'package:keyboard_actions/keyboard_actions_config.dart';
|
||||
import 'package:keyboard_actions/keyboard_actions_item.dart';
|
||||
import 'package:modal_progress_hud_nsn/modal_progress_hud_nsn.dart';
|
||||
|
||||
class TrainingPlanCustomAddPage extends StatefulWidget {
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:aitrainer_app/library/custom_icon_icons.dart';
|
||||
import 'package:aitrainer_app/model/customer_training_plan_details.dart';
|
||||
import 'package:aitrainer_app/model/exercise_plan_detail.dart';
|
||||
import 'package:aitrainer_app/util/app_localization.dart';
|
||||
import 'package:aitrainer_app/util/common.dart';
|
||||
import 'package:aitrainer_app/util/trans.dart';
|
||||
import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_common.dart';
|
||||
@@ -12,6 +13,7 @@ import 'package:aitrainer_app/widgets/dialog_html.dart';
|
||||
|
||||
import 'package:aitrainer_app/widgets/menu_image.dart';
|
||||
import 'package:badges/badges.dart';
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:extended_tabs/extended_tabs.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -312,7 +314,6 @@ class _ExerciseListState extends State<ExerciseList> with Trans {
|
||||
|
||||
void animate() {
|
||||
offset = widget.bloc.getOffset();
|
||||
//print("Offset: $offset");
|
||||
if (scrollController.hasClients) {
|
||||
scrollController.animateTo(offset, duration: Duration(milliseconds: 300), curve: Curves.easeIn);
|
||||
}
|
||||
@@ -390,7 +391,10 @@ class _ExerciseListState extends State<ExerciseList> with Trans {
|
||||
tiles.add(GestureDetector(
|
||||
onTap: () =>
|
||||
bloc.getNext() != null ? executeExercise(bloc, bloc.getNext()!, context) : Navigator.of(context).pushNamed('home'),
|
||||
child: ExerciseTile(bloc: bloc, detail: element)));
|
||||
child: ExerciseTile(
|
||||
bloc: bloc,
|
||||
detail: element,
|
||||
)));
|
||||
}
|
||||
prev = element;
|
||||
});
|
||||
@@ -407,10 +411,9 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
|
||||
ExerciseTile({required this.bloc, required this.detail});
|
||||
|
||||
Widget getExerciseQuantities(CustomerTrainingPlanDetails detail, int step, bool noFilter) {
|
||||
Widget getExerciseQuantities(CustomerTrainingPlanDetails detail, int step, bool noFilter, int highlightStep) {
|
||||
bool skipped = detail.state == ExercisePlanDetailState.skipped;
|
||||
String quantities = "";
|
||||
String set = "";
|
||||
List<TextSpan> spans = [];
|
||||
if (detail.exerciseType!.name == "Warming Up") {
|
||||
quantities = t("Min. 10 minutes");
|
||||
@@ -423,47 +426,50 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
TextSpan(text: quantities),
|
||||
);
|
||||
} else {
|
||||
set = detail.set! > 1 ? "${detail.set} " + t("set") : "";
|
||||
List<CustomerTrainingPlanDetails> details = bloc.getAllDetailsSameExercise(detail);
|
||||
int index = 0;
|
||||
bool isWeight = true;
|
||||
|
||||
if (set.length > 0) {
|
||||
spans.add(
|
||||
TextSpan(
|
||||
text: step.toString() + " ",
|
||||
style: GoogleFonts.archivoBlack(
|
||||
color: Colors.orange[600],
|
||||
)),
|
||||
);
|
||||
spans.add(
|
||||
TextSpan(text: "/ " + set),
|
||||
);
|
||||
}
|
||||
|
||||
details.forEach((element) {
|
||||
quantities = "";
|
||||
String delimiter = ",";
|
||||
if (index == 0) {
|
||||
delimiter = "";
|
||||
|
||||
if (index > 0) {
|
||||
spans.add(
|
||||
TextSpan(text: ", "),
|
||||
);
|
||||
}
|
||||
//print("STEP $step highlight: $highlightStep index: $index");
|
||||
if (element.set! > 1) {
|
||||
spans.add(
|
||||
TextSpan(
|
||||
text: (element.exercises.length + 1).toString(),
|
||||
style: GoogleFonts.archivoBlack(
|
||||
color: highlightStep == index && noFilter ? Colors.orange[600] : Colors.white,
|
||||
)),
|
||||
);
|
||||
spans.add(
|
||||
TextSpan(text: "/${element.set} x "),
|
||||
);
|
||||
}
|
||||
|
||||
if (element.repeats == -1) {
|
||||
quantities += delimiter + " MAX ";
|
||||
quantities += " MAX ";
|
||||
} else {
|
||||
quantities += delimiter + " ${element.repeats}";
|
||||
quantities += "${element.repeats}";
|
||||
}
|
||||
if (element.exerciseType!.unitQuantityUnit != null) {
|
||||
|
||||
if (element.exerciseType!.unitQuantityUnit != null && element.weight != null) {
|
||||
quantities += "x";
|
||||
if (element.weight == -1 || element.weight == -2 || element.weight == -3) {
|
||||
quantities += "? kg";
|
||||
} else {
|
||||
num weight = element.weight! % element.weight!.round() == 0 ? element.weight!.round() : element.weight!;
|
||||
|
||||
quantities += "$weight kg";
|
||||
}
|
||||
} else {
|
||||
isWeight = false;
|
||||
}
|
||||
if (step == index && noFilter) {
|
||||
if (highlightStep == index && noFilter) {
|
||||
spans.add(
|
||||
TextSpan(
|
||||
text: quantities,
|
||||
@@ -509,15 +515,55 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
setContext(context);
|
||||
//bloc.setTileKey(tileKey);
|
||||
return CarouselSlider(
|
||||
options: CarouselOptions(
|
||||
viewportFraction: 1,
|
||||
reverse: false,
|
||||
enableInfiniteScroll: false,
|
||||
autoPlay: false,
|
||||
aspectRatio: 1.3,
|
||||
enlargeCenterPage: true,
|
||||
onPageChanged: (index, reason) => {print("index changed $index")},
|
||||
enlargeStrategy: CenterPageEnlargeStrategy.scale),
|
||||
items: getExerciseTiles(detail),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> getExerciseTiles(CustomerTrainingPlanDetails detail) {
|
||||
final List<Widget> list = [];
|
||||
list.add(getTile(detail));
|
||||
|
||||
/* if (detail.alternatives.length == 0) {
|
||||
detail.alternatives = Common.getExerciseTypeAlternatives(detail.exerciseTypeId);
|
||||
}
|
||||
if (detail.alternatives.length > 0) {
|
||||
detail.alternatives.forEach((element) {
|
||||
CustomerTrainingPlanDetails? alternative = bloc.createDetailFromExerciseType(element, detail);
|
||||
if (alternative != null) {
|
||||
final Widget widget = getTile(alternative);
|
||||
print("Alternatives for ${detail.exerciseTypeId}: $alternative");
|
||||
list.add(widget);
|
||||
}
|
||||
});
|
||||
} */
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
Widget getTile(CustomerTrainingPlanDetails detail) {
|
||||
final CustomerTrainingPlanDetails? next = bloc.getNext();
|
||||
final bool noFilter = next != null && next.exerciseTypeId == detail.exerciseTypeId;
|
||||
final bool done = bloc.isAllDetailsSameExerciseFinished(detail); //detail.state == ExercisePlanDetailState.finished;
|
||||
final int step = bloc.getStep(detail); //detail.exercises.length;
|
||||
final bool done = bloc.isAllDetailsSameExerciseFinished(detail);
|
||||
final bool buddyWarning = detail.exerciseType == null ? false : detail.exerciseType!.buddyWarning;
|
||||
final bool hasAlternative = false; //detail.alternatives.length > 0;
|
||||
final int step = bloc.getStep(detail);
|
||||
final int highlightStep = bloc.getHighlightStep(detail);
|
||||
final bool hasAlternative = detail.alternatives.length > 0;
|
||||
|
||||
return Container(
|
||||
child: Stack(alignment: Alignment.centerRight, children: [
|
||||
//key: this.tileKey,
|
||||
child: ClipRect(
|
||||
child: Stack(alignment: Alignment.centerRight, children: [
|
||||
Stack(alignment: Alignment.centerLeft, children: [
|
||||
Stack(alignment: Alignment.bottomLeft, children: [
|
||||
Badge(
|
||||
@@ -529,7 +575,7 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
badgeColor: Colors.transparent,
|
||||
showBadge: noFilter || done,
|
||||
badgeContent: IconButton(
|
||||
iconSize: 40,
|
||||
iconSize: 36,
|
||||
onPressed: () => !done ? skip() : {},
|
||||
icon: Icon(
|
||||
done ? CustomIcon.ok_circled : Icons.cancel,
|
||||
@@ -559,13 +605,13 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
child: Badge(
|
||||
elevation: 0,
|
||||
padding: EdgeInsets.all(0),
|
||||
position: BadgePosition.topEnd(top: 65, end: 1),
|
||||
position: BadgePosition.topEnd(top: 5, end: 60),
|
||||
animationDuration: Duration(milliseconds: 500),
|
||||
animationType: BadgeAnimationType.fade,
|
||||
badgeColor: Colors.transparent,
|
||||
showBadge: buddyWarning,
|
||||
badgeContent: IconButton(
|
||||
iconSize: 50,
|
||||
iconSize: 36,
|
||||
onPressed: () => showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
@@ -608,7 +654,7 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
: null,
|
||||
height: 80,
|
||||
width: double.infinity,
|
||||
child: getExerciseQuantities(detail, step, noFilter),
|
||||
child: getExerciseQuantities(detail, step, noFilter, highlightStep),
|
||||
)
|
||||
])))),
|
||||
Container(
|
||||
@@ -639,25 +685,31 @@ class ExerciseTile extends StatelessWidget with Trans {
|
||||
),
|
||||
]),
|
||||
hasAlternative
|
||||
? Image.asset(
|
||||
'asset/image/alternatives_arrow.png',
|
||||
height: 100,
|
||||
width: 100,
|
||||
)
|
||||
? Positioned(
|
||||
top: 50,
|
||||
child: Image.asset(
|
||||
'asset/image/alternatives_arrow.png',
|
||||
height: 100,
|
||||
width: 100,
|
||||
color: noFilter ? Color(0xffb4f500) : Colors.grey,
|
||||
))
|
||||
: Offstage(),
|
||||
]),
|
||||
hasAlternative
|
||||
? Transform.rotate(
|
||||
angle: pi,
|
||||
alignment: Alignment.center,
|
||||
child: Image.asset(
|
||||
'asset/image/alternatives_arrow.png',
|
||||
height: 100,
|
||||
width: 100,
|
||||
),
|
||||
? Positioned(
|
||||
top: 50,
|
||||
child: Transform.rotate(
|
||||
angle: pi,
|
||||
alignment: Alignment.center,
|
||||
child: Image.asset(
|
||||
'asset/image/alternatives_arrow.png',
|
||||
height: 100,
|
||||
width: 100,
|
||||
color: noFilter ? Color(0xffb4f500) : Colors.grey,
|
||||
)),
|
||||
)
|
||||
: Offstage(),
|
||||
]));
|
||||
])));
|
||||
}
|
||||
|
||||
void skip() {
|
||||
|
||||
@@ -112,8 +112,8 @@ class TrainingPlanExercise extends StatelessWidget with Trans {
|
||||
set: detail.set,
|
||||
exerciseNr: detail.exercises.length + 1,
|
||||
onUnitQuantityChanged: (value) => bloc.add(TrainingPlanWeightChangeRecalculate(weight: value, detail: detail)),
|
||||
onUnitQuantityChangeUp: () => bloc.add(TrainingPlanWeightChangeUp(detail: detail)),
|
||||
onUnitQuantityChangeDown: () => bloc.add(TrainingPlanWeightChangeDown(detail: detail)),
|
||||
//onUnitQuantityChangeUp: () => bloc.add(TrainingPlanWeightChangeUp(detail: detail)),
|
||||
//onUnitQuantityChangeDown: () => bloc.add(TrainingPlanWeightChangeDown(detail: detail)),
|
||||
onQuantityChanged: (value) => bloc.add(TrainingPlanRepeatsChange(repeats: value.toInt(), detail: detail)),
|
||||
exerciseTypeId: detail.exerciseType!.exerciseTypeId,
|
||||
originalQuantity: originalQuantity,
|
||||
|
||||
@@ -10,7 +10,6 @@ import 'package:aitrainer_app/widgets/app_bar.dart';
|
||||
import 'package:aitrainer_app/widgets/bottom_nav.dart';
|
||||
import 'package:aitrainer_app/widgets/dialog_common.dart';
|
||||
import 'package:aitrainer_app/widgets/image_button.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
Reference in New Issue
Block a user