Monthly Calendar - Switch case to handle ability to change sports as well as determine if sport needs gender switch
This commit is contained in:
BIN
images/male.png
BIN
images/male.png
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
@@ -3,6 +3,7 @@ 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 {
|
||||||
@@ -16,13 +17,13 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
|
|||||||
AnimationController _animationController;
|
AnimationController _animationController;
|
||||||
CalendarController _calController;
|
CalendarController _calController;
|
||||||
|
|
||||||
//** ----- Fix so it can be any sport ----- **
|
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(int sportID) async {
|
|
||||||
|
|
||||||
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';
|
||||||
var url = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80&sport_id=3&name=&extra=%7B%7D';
|
|
||||||
|
print(url); //temp
|
||||||
|
|
||||||
http.Response response = await http.get(url);
|
http.Response response = await http.get(url);
|
||||||
Iterable games = json.decode(response.body);
|
Iterable games = json.decode(response.body);
|
||||||
@@ -44,25 +45,13 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
|
|||||||
|
|
||||||
if (original == null) {
|
if (original == null) {
|
||||||
//print("null");
|
//print("null");
|
||||||
mapGrab[sportEvent] = [eventInfo[i].location];
|
|
||||||
mapGrab[sportEvent] = [eventInfo[i].sportTitle];
|
|
||||||
mapGrab[sportEvent] = [eventInfo[i].opponentTitle];
|
mapGrab[sportEvent] = [eventInfo[i].opponentTitle];
|
||||||
mapGrab[sportEvent] = [eventInfo[i].status];
|
|
||||||
mapGrab[sportEvent] = [eventInfo[i].team_score];
|
|
||||||
mapGrab[sportEvent] = [eventInfo[i].opponent_score];
|
|
||||||
} else {
|
} else {
|
||||||
//print(eventInfo[i].date);
|
//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].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].opponentTitle]); //temp
|
||||||
print([eventInfo[i].location]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return mapGrab;
|
return mapGrab;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +74,6 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
|
|||||||
getGames().then((val) => setState(() {
|
getGames().then((val) => setState(() {
|
||||||
_events = val;
|
_events = val;
|
||||||
}));
|
}));
|
||||||
//print( ' ${_events.toString()} ');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
super.initState();
|
super.initState();
|
||||||
@@ -308,7 +296,6 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
|
|||||||
//----- Creates event display -----
|
//----- Creates event display -----
|
||||||
Widget _eventLister() {
|
Widget _eventLister() {
|
||||||
return ListView(
|
return ListView(
|
||||||
//children: <Widget>[
|
|
||||||
children: _selectedEvents.map((event) => Container(
|
children: _selectedEvents.map((event) => Container(
|
||||||
|
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
@@ -324,18 +311,16 @@ class _Calendar extends State<Calendar> with TickerProviderStateMixin {
|
|||||||
margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0),
|
margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0),
|
||||||
|
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
leading: Icon(Icons.accessible), //opponent logo
|
leading: Icon(Icons.accessible), //opponent logo
|
||||||
title: Row(
|
title: Row(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
//Text('vs. '), //home or away (vs. / @)
|
//Text('vs. '), //home or away (vs. / @)
|
||||||
Text('at '), //home or away (vs. / at)
|
Text('at '), //home or away (vs. / at)
|
||||||
Text('Opponent')
|
Text(event.toString()), //opponent name
|
||||||
//Text(event.toString()),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
//title: Text(event.toString()),
|
//subtitle: Text(event.toString()), //Type of sport - Location
|
||||||
//subtitle: Text('Sport '),
|
|
||||||
subtitle: Text('Sport - Location'),
|
subtitle: Text('Sport - Location'),
|
||||||
|
|
||||||
trailing: Row(
|
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;
|
|
||||||
}
|
|
||||||
@@ -12,9 +12,14 @@ class Sport extends StatelessWidget {
|
|||||||
|
|
||||||
Item _curSport = colorList[0];
|
Item _curSport = colorList[0];
|
||||||
|
|
||||||
|
|
||||||
final feed = Feed(); // was var not final
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Item selectedSport;
|
Item selectedSport;
|
||||||
@@ -25,6 +30,28 @@ class Sport extends StatelessWidget {
|
|||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
title: buildDropdownButton(selectedSport, setState),
|
title: buildDropdownButton(selectedSport, setState),
|
||||||
backgroundColor: _curSport.color,
|
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(
|
body: ListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
@@ -91,6 +118,37 @@ class Sport extends StatelessWidget {
|
|||||||
onChanged: (Item value) {
|
onChanged: (Item value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_curSport = value;
|
_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) {
|
items: colorList.map<DropdownMenuItem<Item>>((Item item) {
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ description: A sports app for UNC-Charlotte 49ers
|
|||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.1.0 <3.0.0"
|
#sdk: ">=2.1.0 <3.0.0"
|
||||||
|
sdk: ">=2.5.2 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
@@ -48,6 +49,9 @@ flutter:
|
|||||||
# assets:
|
# assets:
|
||||||
# - images/a_dot_burr.jpeg
|
# - images/a_dot_burr.jpeg
|
||||||
# - images/a_dot_ham.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
|
# An image asset can refer to one or more resolution-specific "variants", see
|
||||||
# https://flutter.dev/assets-and-images/#resolution-aware.
|
# https://flutter.dev/assets-and-images/#resolution-aware.
|
||||||
|
|||||||
Reference in New Issue
Block a user