fitness-app/lib/Views/exercises_view.dart
2020-04-03 13:27:51 +02:00

86 lines
2.5 KiB
Dart

import 'package:fitnessapp/Views/add_exercise.dart';
import 'package:fitnessapp/Views/exercise_details_view.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:async';
import 'dart:convert';
class ExerciseView extends StatefulWidget{
String token;
String title;
String id;
ExerciseView(this.token, this.title, this.id);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return ExerciseViewState();
}
}
class ExerciseViewState extends State<ExerciseView>{
List data;
Future<List> getWorkouts() async {
var response = await http.get(
"http://10.16.17.18/api/workout.php?token=" + super.widget.token + "&workout="+this.widget.id,
headers: {
"Accept": "application/json"
}
);
this.setState(() {
data = JsonDecoder().convert(response.body);
});
return data;
}
@override
void initState() {
getWorkouts();
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
leading: IconButton(
onPressed: (){
Navigator.pop(context);
},
icon: Icon(Icons.arrow_back),
),
title: Text(this.widget.title),
),
body: RefreshIndicator(
child: ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index){
return new ListTile(
leading: Icon(data[index]['type'] == 'duration' ? Icons.access_alarm : (data[index]['type'] == 'count' ? Icons.filter_1 : Icons.transfer_within_a_station)),
title: Text((index+1).toString() + ': ' + data[index]['name']),
subtitle: Text(data[index]['sets'] + ' x ' + data[index]['amount'] + ' ' + data[index]['unit']),
onTap: (){
Navigator.push(context, MaterialPageRoute(
builder: (context) => ExerciseDetailsView(data[index]['name'], data[index]['description'], data[index]['amount'], data[index]['type'], data[index]['unit'])
));
},
);
},
),
onRefresh: getWorkouts,
),
floatingActionButton: FloatingActionButton(
onPressed: (){
Navigator.push(context, MaterialPageRoute(
builder: (context) => AddExercise(super.widget.token, int.parse(this.widget.id))
));
},
child: Icon(Icons.add),
),
);
}
}