Merge pull request #15 from allemangD/RoutesWithArguments

Routes with arguments
This commit is contained in:
clopezr1
2020-04-23 16:49:08 -04:00
committed by GitHub
5 changed files with 65 additions and 72 deletions

View File

@@ -3,12 +3,14 @@ import 'package:http/http.dart' as http;
import 'package:table_calendar/table_calendar.dart'; import 'package:table_calendar/table_calendar.dart';
import 'screens/sport_schedule.dart'; import 'screens/sport_schedule.dart';
import 'screens/sport.dart' as globals;
import 'dart:convert'; import 'dart:convert';
class Calendar extends StatefulWidget { class Calendar extends StatefulWidget {
final int sportID;
Calendar(this.sportID);
@override @override
_Calendar createState() => _Calendar(); _Calendar createState() => _Calendar(sportID);
} }
//List<sport_schedule> _selectedEvents; //original that makes events work //List<sport_schedule> _selectedEvents; //original that makes events work
@@ -17,12 +19,15 @@ DateTime selectedDay;
Map<DateTime, List<sport_schedule>> _events; Map<DateTime, List<sport_schedule>> _events;
class _Calendar extends State<Calendar> with TickerProviderStateMixin { class _Calendar extends State<Calendar> with TickerProviderStateMixin {
int sportID;
_Calendar(this. sportID);
AnimationController _animationController; AnimationController _animationController;
CalendarController _calController; CalendarController _calController;
int sportID = globals.Sport.sport_ID;
static final sportUrl = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80'; static final sportUrl = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80';
Future<List<sport_schedule>> getEvents() async { Future<List<sport_schedule>> getEvents() async {
var url = '$sportUrl&sport_id=$sportID&name=&extra=%7B%7D'; var url = '$sportUrl&sport_id=$sportID&name=&extra=%7B%7D';
@@ -59,7 +64,7 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
@override @override
void initState() { void initState() {
final _selectedDay = DateTime.now(); //final _selectedDay = DateTime.now();
//_selectedEvents = _events[_selectedDay] ?? []; //_selectedEvents = _events[_selectedDay] ?? [];
_selectedEvents = []; _selectedEvents = [];

View File

@@ -18,7 +18,7 @@ class Feed {
class HorizontalNewsFeed extends StatelessWidget { class HorizontalNewsFeed extends StatelessWidget {
final Feed newsFeed; final Feed newsFeed;
final Widget title; final Text title;
final double numCards; final double numCards;
const HorizontalNewsFeed({ const HorizontalNewsFeed({
@@ -31,9 +31,9 @@ class HorizontalNewsFeed extends StatelessWidget {
double heightIn(BuildContext context) { double heightIn(BuildContext context) {
return MediaQuery.of(context).size.height / numCards; return MediaQuery.of(context).size.height / numCards;
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
//print(title.data);
return SizedBox( return SizedBox(
height: heightIn(context), height: heightIn(context),
child: Column( child: Column(
@@ -43,8 +43,8 @@ class HorizontalNewsFeed extends StatelessWidget {
title: title, title: title,
trailing: IconButton( trailing: IconButton(
icon: Icon(Icons.navigate_next), icon: Icon(Icons.navigate_next),
onPressed: () => Navigator.of(context).pushNamed('/Sport', arguments: title.data),
onPressed: () => Navigator.of(context).pushNamed('/Sport'),
/*onPressed: () { //changed /*onPressed: () { //changed
Navigator.of(context).pushNamed('/Sport'); Navigator.of(context).pushNamed('/Sport');

View File

@@ -12,15 +12,15 @@ class RouteGenerator {
static Route<dynamic> generateRoute(RouteSettings settings) { static Route<dynamic> generateRoute(RouteSettings settings) {
final args = settings final args = settings
.arguments; //This is how we pass arguments and can be used in case .arguments; //This is how we pass arguments and can be used in case
print("args $args");
switch (settings.name) { switch (settings.name) {
case '/': case '/':
return MaterialPageRoute(builder: (_) => Home()); return MaterialPageRoute(builder: (_) => Home());
case '/Sport': case '/Sport':
//We can put logic and stuff here for checking if logged in //We can put logic and stuff here for checking if logged in
return MaterialPageRoute(builder: (_) => Sport()); return MaterialPageRoute(builder: (_) => Sport(args));
case '/Schedule': case '/Schedule':
return MaterialPageRoute(builder: (_) => Schedule()); return MaterialPageRoute(builder: (_) => Schedule(args));
case '/Standing': case '/Standing':
return MaterialPageRoute(builder: (_) => Standing()); return MaterialPageRoute(builder: (_) => Standing());
case '/Chat': case '/Chat':

View File

@@ -1,12 +1,14 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../monthly_calendar.dart'; import '../monthly_calendar.dart';
import '../screens/sport.dart' as globals;
class Schedule extends StatelessWidget{ class Schedule extends StatelessWidget{
final calendar = Calendar(); final int sportID;
Schedule(this.sportID);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var calendar = Calendar(sportID);
return StatefulBuilder( return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold( builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar( appBar: AppBar(

View File

@@ -4,27 +4,43 @@ import '../news/feed.dart';
class Sport extends StatelessWidget { class Sport extends StatelessWidget {
static final List<Item> colorList = <Item>[ static final List<Item> colorList = <Item>[
const Item('FootBall', Colors.green), const Item('Football', Colors.green,[3]),
const Item("BasketBall", Colors.red), const Item("Basketball", Colors.red,[5,13]),
const Item("Soccer", Colors.pinkAccent), const Item("Soccer", Colors.pinkAccent,[9,17]),
const Item('Baseball', Colors.orange), const Item('Baseball', Colors.orange,[1]),
const Item('Volleyball', Colors.blue,[0]),
const Item('Softball', Colors.yellow,[0]),
const Item('Tennis', Colors.yellowAccent,[0,0]),
]; ];
Item _curSport = colorList[0];
final feed = Feed(); // was var not final final feed = Feed(); // was var not final
bool genderSportSwitch = false; //determines if sport needs the gender switch bool genderSportSwitch = false; //determines if sport needs the gender switch
final String imageMale = 'images/male.png'; final String imageMale = 'images/male.png';
final String imageFemale = 'images/female.png'; final String imageFemale = 'images/female.png';
static bool genderSport = false; //determines which gender switch is set M - false / F - True static bool genderSport = false; //determines which gender switch is set M - false / F - True
static int sport_ID; static int sport_ID;
final String sport;
Sport(this.sport);
Item _curSport = colorList[0];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Item _setDefault(){
Item _curSport;
for (Item i in colorList){
if (i.name == sport){
_curSport = i;
break;
}
}
return _curSport;
}
_curSport = _setDefault();
sport_ID = _curSport.sportID[0];
Item selectedSport; Item selectedSport;
_genderSwitcherCheck();
return StatefulBuilder( return StatefulBuilder(
builder: (context, StateSetter setState) => Scaffold( builder: (context, StateSetter setState) => Scaffold(
appBar: AppBar( appBar: AppBar(
@@ -34,20 +50,13 @@ class Sport extends StatelessWidget {
//--Gender Switch-- Need to make condition to determine gender //--Gender Switch-- Need to make condition to determine gender
actions: <Widget>[ actions: <Widget>[
if (genderSportSwitch == true) if (genderSportSwitch)
Switch( Switch(
value: genderSport, value: genderSport,
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
if (value == false) { genderSport = value;
genderSport = false; _genderSwitcherCheck();
}
else {
genderSport = true;
}
print("value: " + value.toString());
print("gender: " + genderSport.toString());
}); });
}, },
inactiveThumbColor: Colors.lightBlue, inactiveThumbColor: Colors.lightBlue,
@@ -90,13 +99,13 @@ class Sport extends StatelessWidget {
ListTile( ListTile(
title: IconButton( title: IconButton(
icon: Icon(Icons.table_chart), icon: Icon(Icons.table_chart),
onPressed: () => Navigator.pushNamed(context, '/Standing'), onPressed: () => Navigator.pushNamed(context, '/Standing', arguments: sport_ID),
), ),
), ),
ListTile( ListTile(
title: IconButton( title: IconButton(
icon: Icon(Icons.calendar_today), icon: Icon(Icons.calendar_today),
onPressed: () => Navigator.pushNamed(context, '/Schedule'), onPressed: () => Navigator.pushNamed(context, '/Schedule',arguments: sport_ID),
), ),
), ),
], ],
@@ -123,44 +132,7 @@ class Sport extends StatelessWidget {
onChanged: (Item value) { onChanged: (Item value) {
setState(() { setState(() {
_curSport = value; _curSport = value;
_genderSwitcherCheck();
print("genderSport: " + genderSport.toString());
//Will set the sport id / Display gender switch
switch (_curSport.name) { //prints are temp
case 'FootBall':
genderSportSwitch = false;
sport_ID = 3;
break;
case 'BasketBall':
genderSportSwitch = true;
if (genderSport == false) {
sport_ID = 5; //Male
}
else {
sport_ID = 13; //Female
}
break;
case 'Soccer':
genderSportSwitch = true;
if (genderSport == false) {
sport_ID = 9; //Male
}
else {
sport_ID = 17; //Female
}
break;
case 'Baseball':
genderSportSwitch = false;
sport_ID = 1;
break;
}
print(sport_ID); print(sport_ID);
}); });
}, },
@@ -176,11 +148,25 @@ class Sport extends StatelessWidget {
), ),
); );
} }
void _genderSwitcherCheck() {
if (_curSport.name == "Soccer" || _curSport.name == "Basketball" || _curSport.name == "Tennis" ){
genderSportSwitch = true;
sport_ID = genderSport ? _curSport.sportID[1] : _curSport.sportID[0];
} else {
genderSportSwitch = false;
sport_ID = _curSport.sportID[0];
}
print(sport_ID);
}
} }
class Item { class Item {
const Item(this.name, this.color); const Item(this.name, this.color, this.sportID);
final String name; final String name;
final Color color; final Color color;
} final List<int> sportID;
}