fitness-app/lib/Views/exercises_view.dart
2020-03-29 23:58:38 +02:00

74 lines
2.0 KiB
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 title;
String id;
ExerciseView(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.65/api/workout.php?token=satbwertwhbertnwertwertghwertgwertg&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: 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(data[index]['name']),
subtitle: Text(data[index]['amount'] + ' ' + data[index]['unit']),
trailing: Icon(Icons.add_box),
onTap: (){
Navigator.push(context, MaterialPageRoute(
builder: (context) => ExerciseDetailsView(data[index]['name'], data[index]['description'], data[index]['amount'], data[index]['type'], data[index]['unit'])
));
},
);
},
),
);
}
}