Aitrainer_app 0.0.1
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import 'package:aitrainer_app/viewmodel/exercise_changing_view_model.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:aitrainer_app/viewmodel/customer_view_model.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class CustomerListWidget extends StatefulWidget {
|
||||
static const routeName = '/customer_list';
|
||||
final List<CustomerViewModel> customers;
|
||||
|
||||
CustomerListWidget({this.customers});
|
||||
|
||||
@override
|
||||
_CustomerListWidget createState() => _CustomerListWidget();
|
||||
|
||||
}
|
||||
|
||||
class _CustomerListWidget extends State<CustomerListWidget> {
|
||||
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView.builder(
|
||||
itemCount: widget.customers.length,
|
||||
itemBuilder: (context, index) {
|
||||
|
||||
final customer = widget.customers[index];
|
||||
|
||||
return ListTile(
|
||||
contentPadding: EdgeInsets.all(10),
|
||||
leading:Icon(Icons.accessibility),
|
||||
title: Text(customer.name + " " + customer.firstName),
|
||||
subtitle:
|
||||
Container(
|
||||
child: Visibility(
|
||||
visible: customer.visibleDetails,
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Text(customer.age.toString() + " years, " + customer.sex),
|
||||
new RaisedButton(
|
||||
child: new Text('Modify'),
|
||||
color: Color.fromRGBO(244, 122, 22, 0.9),
|
||||
onPressed: () => {
|
||||
|
||||
},
|
||||
),
|
||||
new RaisedButton(
|
||||
child: new Text('Select'),
|
||||
color: Colors.blueGrey,
|
||||
onPressed: () => {
|
||||
Provider.of<ExerciseChangingViewModel>(context, listen: false).setCustomer(customer.customer),
|
||||
Navigator.pop(context)
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
onTap: () { setState( () {
|
||||
customer.visibleDetails = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
||||
|
||||
class CustomPicker extends CommonPickerModel {
|
||||
String digits(int value, int length) {
|
||||
return '$value'.padLeft(length, "0");
|
||||
}
|
||||
|
||||
CustomPicker({DateTime currentTime, LocaleType locale}) : super(locale: locale) {
|
||||
this.currentTime = currentTime ?? DateTime.now();
|
||||
this.setLeftIndex(this.currentTime.hour);
|
||||
this.setMiddleIndex(this.currentTime.minute);
|
||||
this.setRightIndex(this.currentTime.second);
|
||||
}
|
||||
|
||||
@override
|
||||
String leftStringAtIndex(int index) {
|
||||
if (index >= 0 && index < 24) {
|
||||
return this.digits(index, 2);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String middleStringAtIndex(int index) {
|
||||
if (index >= 0 && index < 60) {
|
||||
return this.digits(index, 2);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String rightStringAtIndex(int index) {
|
||||
if (index >= 0 && index < 60) {
|
||||
return this.digits(index, 2);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String leftDivider() {
|
||||
return "|";
|
||||
}
|
||||
|
||||
@override
|
||||
String rightDivider() {
|
||||
return "|";
|
||||
}
|
||||
|
||||
@override
|
||||
List<int> layoutProportions() {
|
||||
return [1, 2, 1];
|
||||
}
|
||||
|
||||
@override
|
||||
DateTime finalTime() {
|
||||
return currentTime.isUtc
|
||||
? DateTime.utc(currentTime.year, currentTime.month, currentTime.day,
|
||||
this.currentLeftIndex(), this.currentMiddleIndex(), this.currentRightIndex())
|
||||
: DateTime(currentTime.year, currentTime.month, currentTime.day, this.currentLeftIndex(),
|
||||
this.currentMiddleIndex(), this.currentRightIndex());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
import 'package:aitrainer_app/viewmodel/exercise_changing_view_model.dart';
|
||||
import 'package:aitrainer_app/viewmodel/exercise_type_view_model.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class ExerciseTypeListWidget extends StatefulWidget {
|
||||
final List<ExerciseTypeViewModel> exerciseTypes;
|
||||
ExerciseTypeListWidget({this.exerciseTypes});
|
||||
|
||||
@override
|
||||
_ExerciseTypeListWidgetState createState() => _ExerciseTypeListWidgetState();
|
||||
}
|
||||
|
||||
class _ExerciseTypeListWidgetState extends State<ExerciseTypeListWidget> {
|
||||
//static const routeName = '/exercise_type_list';
|
||||
bool visible = false;
|
||||
|
||||
// Push the page and remove everything else
|
||||
navigateToPage(BuildContext context, String page) {
|
||||
Navigator.of(context).pushNamedAndRemoveUntil(page, (Route<dynamic> route) => false);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
return ListView.builder(
|
||||
itemCount: widget.exerciseTypes.length,
|
||||
itemBuilder: (context, index) {
|
||||
|
||||
final exerciseType = widget.exerciseTypes[index];
|
||||
|
||||
return ListTile(
|
||||
contentPadding: EdgeInsets.all(10),
|
||||
leading: Icon(Icons.directions_run),
|
||||
title: Text(exerciseType.name),
|
||||
subtitle:
|
||||
Container(
|
||||
child: Visibility(
|
||||
visible: exerciseType.visible,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Text(exerciseType.description),
|
||||
new RaisedButton(
|
||||
child: new Text('Modify'),
|
||||
color: Color.fromRGBO(244, 122, 22, 0.9),
|
||||
onPressed: () => {
|
||||
Navigator.pushNamed(
|
||||
context,
|
||||
'exerciseTypeModifyPage',
|
||||
arguments: exerciseType
|
||||
)
|
||||
},
|
||||
),
|
||||
new RaisedButton(
|
||||
child: new Text('Select'),
|
||||
color: Colors.blueGrey,
|
||||
onPressed: () => {
|
||||
Navigator.pop(context),
|
||||
Provider.of<ExerciseChangingViewModel>(context, listen: false).setExerciseType(exerciseType.exerciseType),
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
onTap: () { setState( () {
|
||||
exerciseType.visible = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class NavDrawer extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Drawer(
|
||||
child: ListView(
|
||||
padding: EdgeInsets.zero,
|
||||
children: <Widget>[
|
||||
DrawerHeader(
|
||||
child: Text(
|
||||
'Customers And Exercises',
|
||||
style: TextStyle(color: Colors.blue, fontSize: 25),
|
||||
),
|
||||
|
||||
),
|
||||
ListTile(
|
||||
leading: Icon(Icons.home),
|
||||
title: Text('Home'),
|
||||
onTap: () => Navigator.of(context).pushNamed('home'),
|
||||
),
|
||||
|
||||
ListTile(
|
||||
leading: Icon(Icons.people),
|
||||
title: Text('Customers'),
|
||||
//onTap: () => navigateToPage(context, 'customersPage'),
|
||||
onTap: () => Navigator.of(context).pushNamed('customersPage'),
|
||||
),
|
||||
|
||||
ListTile(
|
||||
leading: Icon(Icons.directions_run),
|
||||
title: Text('Exercises'),
|
||||
onTap: () => Navigator.of(context).pushNamed('exerciseTypeListPage'),
|
||||
),
|
||||
ListTile(
|
||||
leading: Icon(Icons.arrow_upward),
|
||||
title: Text("TRAINING!"),
|
||||
onTap: () => Navigator.of(context).pushNamed('exerciseNewPage'),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user