88 lines
3.4 KiB
Dart
88 lines
3.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:sendtrain/classes/activity_action.dart';
|
|
import 'package:sendtrain/models/activity_timer_model.dart';
|
|
|
|
class ActivityActionView extends StatefulWidget {
|
|
const ActivityActionView({super.key, required this.action});
|
|
final ActivityAction action;
|
|
|
|
@override
|
|
State<ActivityActionView> createState() => ActivityActionViewState();
|
|
}
|
|
|
|
class ActivityActionViewState extends State<ActivityActionView> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
ActivityTimerModel atm =
|
|
Provider.of<ActivityTimerModel>(context, listen: true);
|
|
List<List<Map<String, dynamic>>> sets = atm.activity!.actions[0].items();
|
|
|
|
return Expanded(
|
|
child: ListView.builder(
|
|
padding: const EdgeInsets.fromLTRB(10, 0, 10, 20),
|
|
itemCount: widget.action.activityActionSet.total,
|
|
itemBuilder: (BuildContext context, int setNum) {
|
|
List<GestureDetector> content = [];
|
|
|
|
List<Map<String, dynamic>> set = sets[setNum];
|
|
// log('${sets.length}');
|
|
// log('${set.length}');
|
|
for (int actionNum = 0; actionNum < set.length; actionNum++) {
|
|
Map<String, dynamic> setItem = set[actionNum];
|
|
|
|
content.add(GestureDetector(
|
|
onTap: () {
|
|
atm.setAction(setNum, actionNum, 'manual');
|
|
atm.setActionCount();
|
|
},
|
|
child: Row(children: [
|
|
Ink(
|
|
width: 70,
|
|
padding: const EdgeInsets.all(15),
|
|
color: atm.isCurrentItem(setNum, actionNum)
|
|
? Theme.of(context).colorScheme.primaryContainer
|
|
: Theme.of(context).colorScheme.onPrimary,
|
|
child:
|
|
Text(textAlign: TextAlign.center, 'Set ${setNum + 1} ')),
|
|
Expanded(
|
|
child: Ink(
|
|
padding: const EdgeInsets.all(15),
|
|
color: atm.isCurrentItem(setNum, actionNum)
|
|
? Theme.of(context).colorScheme.surfaceBright
|
|
: Theme.of(context).colorScheme.surfaceContainerLow,
|
|
child: Text(
|
|
textAlign: TextAlign.center,
|
|
'${setItem['name']}: ${setItem['amount']} ${setItem['type']}')))
|
|
])));
|
|
}
|
|
|
|
if (setNum == 0) {
|
|
return Card(
|
|
shape: const RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.only(
|
|
topLeft: Radius.circular(0),
|
|
topRight: Radius.circular(0),
|
|
bottomLeft: Radius.circular(10),
|
|
bottomRight: Radius.circular(10)),
|
|
),
|
|
clipBehavior: Clip.antiAlias,
|
|
child: Column(children: content));
|
|
} else {
|
|
return Card(
|
|
shape: const RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.only(
|
|
topLeft: Radius.circular(10),
|
|
topRight: Radius.circular(10),
|
|
bottomLeft: Radius.circular(10),
|
|
bottomRight: Radius.circular(10)),
|
|
),
|
|
clipBehavior: Clip.antiAlias,
|
|
child: Column(children: content));
|
|
}
|
|
// return Column(children: contents);
|
|
},
|
|
));
|
|
}
|
|
}
|