Monthly Calendar - Switch case to handle ability to change sports as well as determine if sport needs gender switch

This commit is contained in:
kconnel7
2020-04-08 23:35:43 -04:00
parent c8e0026a51
commit 310248bf02
4 changed files with 76 additions and 39 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -3,6 +3,7 @@ import 'package:http/http.dart' as http;
import 'package:table_calendar/table_calendar.dart';
import 'screens/sport_schedule.dart';
import 'screens/sport.dart' as globals;
import 'dart:convert';
class Calendar extends StatefulWidget {
@@ -16,13 +17,13 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
AnimationController _animationController;
CalendarController _calController;
//** ----- Fix so it can be any sport ----- **
//static final sportUrl = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80';
//Future<List<sport_schedule>> getEvents(int sportID) async {
int sportID = globals.Sport.sport_ID;
static final sportUrl = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80';
Future<List<sport_schedule>> getEvents() async {
//var url = '$sportUrl&sport_id=,$sportID&name=&extra=%7B%7D';
var url = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80&sport_id=3&name=&extra=%7B%7D';
var url = '$sportUrl&sport_id=$sportID&name=&extra=%7B%7D';
print(url); //temp
http.Response response = await http.get(url);
Iterable games = json.decode(response.body);
@@ -44,25 +45,13 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
if (original == null) {
//print("null");
mapGrab[sportEvent] = [eventInfo[i].location];
mapGrab[sportEvent] = [eventInfo[i].sportTitle];
mapGrab[sportEvent] = [eventInfo[i].opponentTitle];
mapGrab[sportEvent] = [eventInfo[i].status];
mapGrab[sportEvent] = [eventInfo[i].team_score];
mapGrab[sportEvent] = [eventInfo[i].opponent_score];
} else {
//print(eventInfo[i].date);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].location]);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].sportTitle]);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].opponentTitle]);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].status]);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].team_score]);
mapGrab[sportEvent] = List.from(original)..addAll([eventInfo[i].opponent_score]);
}
print([eventInfo[i].location]);
//print([eventInfo[i].opponentTitle]); //temp
}
return mapGrab;
}
@@ -85,7 +74,6 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
getGames().then((val) => setState(() {
_events = val;
}));
//print( ' ${_events.toString()} ');
});
super.initState();
@@ -308,7 +296,6 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
//----- Creates event display -----
Widget _eventLister() {
return ListView(
//children: <Widget>[
children: _selectedEvents.map((event) => Container(
decoration: BoxDecoration(
@@ -324,18 +311,16 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0),
child: ListTile(
leading: Icon(Icons.accessible), //opponent logo
leading: Icon(Icons.accessible), //opponent logo
title: Row(
children: <Widget>[
//Text('vs. '), //home or away (vs. / @)
Text('at '), //home or away (vs. / at)
Text('Opponent')
//Text(event.toString()),
//Text('vs. '), //home or away (vs. / @)
Text('at '), //home or away (vs. / at)
Text(event.toString()), //opponent name
],
),
//title: Text(event.toString()),
//subtitle: Text('Sport '),
//subtitle: Text(event.toString()), //Type of sport - Location
subtitle: Text('Sport - Location'),
trailing: Row(
@@ -354,13 +339,3 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
);
}
}
class TextScore { //Displays score of game
String team;
String opponent;
TextScore({String this.team, String this.opponent});
@override
String toString() => team + " - " + opponent;
}

View File

@@ -12,9 +12,14 @@ class Sport extends StatelessWidget {
Item _curSport = colorList[0];
final feed = Feed(); // was var not final
bool genderSportSwitch = false;
final String imageMale = 'images/male.png';
final String imageFemale = 'images/female.png';
static int sport_ID;
@override
Widget build(BuildContext context) {
Item selectedSport;
@@ -25,6 +30,28 @@ class Sport extends StatelessWidget {
centerTitle: false,
title: buildDropdownButton(selectedSport, setState),
backgroundColor: _curSport.color,
//--Gender Switch-- **Important; Need to make condition to determine gender
actions: <Widget>[
if (genderSportSwitch == true)
Switch(
value: false,
onChanged: (value) {
setState(() {});
},
inactiveThumbColor: Colors.lightBlue,
inactiveThumbImage: Image
.asset(imageMale)
.image,
activeColor: Colors.pinkAccent,
activeThumbImage: Image
.asset(imageFemale)
.image,
),
]
),
body: ListView(
children: <Widget>[
@@ -91,6 +118,37 @@ class Sport extends StatelessWidget {
onChanged: (Item value) {
setState(() {
_curSport = value;
//Will set the sport id / Display gender switch
switch (_curSport.name) { //prints are temporary
case 'FootBall':
print(_curSport.name);
print(genderSportSwitch);
genderSportSwitch = false;
sport_ID = 3;
break;
case 'BasketBall':
print(_curSport.name);
print(genderSportSwitch);
genderSportSwitch = true;
sport_ID = 5; //Male
//sport_ID = 13; //Female
break;
case 'Soccer':
print(_curSport.name);
print(genderSportSwitch);
genderSportSwitch = true;
sport_ID = 9; //Male
//sport_ID = 17; //Female
break;
case 'Baseball':
print(_curSport.name);
print(genderSportSwitch);
genderSportSwitch = false;
sport_ID = 1;
break;
}
print(sport_ID);
});
},
items: colorList.map<DropdownMenuItem<Item>>((Item item) {

View File

@@ -14,7 +14,8 @@ description: A sports app for UNC-Charlotte 49ers
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
#sdk: ">=2.1.0 <3.0.0"
sdk: ">=2.5.2 <3.0.0"
dependencies:
flutter:
@@ -48,6 +49,9 @@ flutter:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
assets:
- images/male.png
- images/female.png
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.