From 18c8ed39f4a23997901e6c8d2fa8f9f5d719f06a Mon Sep 17 00:00:00 2001 From: kconnel7 Date: Wed, 29 Apr 2020 22:32:14 -0400 Subject: [PATCH] Standings --- lib/monthly_calendar.dart | 2 +- lib/screens/sport_standings_basketball.dart | 79 +++++++++++++++++++++ lib/screens/sport_standings_football.dart | 64 +++++++++++++++++ lib/screens/standing.dart | 71 +++++------------- lib/screens/test_standings.dart | 26 +++++++ 5 files changed, 186 insertions(+), 56 deletions(-) create mode 100644 lib/screens/sport_standings_basketball.dart create mode 100644 lib/screens/sport_standings_football.dart create mode 100644 lib/screens/test_standings.dart diff --git a/lib/monthly_calendar.dart b/lib/monthly_calendar.dart index 0641a5a..eb16c58 100644 --- a/lib/monthly_calendar.dart +++ b/lib/monthly_calendar.dart @@ -20,7 +20,7 @@ Map> _events; class _Calendar extends State with TickerProviderStateMixin { int sportID; - _Calendar(this. sportID); + _Calendar(this.sportID); AnimationController _animationController; CalendarController _calController; diff --git a/lib/screens/sport_standings_basketball.dart b/lib/screens/sport_standings_basketball.dart new file mode 100644 index 0000000..949a7be --- /dev/null +++ b/lib/screens/sport_standings_basketball.dart @@ -0,0 +1,79 @@ +import 'package:flutter/material.dart'; + +class sport_standings_basketball { + final int id; + final String displayName; + final String image; + + final String position; + + // -- Conference stats -- + final String conferenceRecord; + final String gamesBehind; + final String conferencePercentRecord; + + // -- Overall stats -- + final String overallRecord; + final String overallPercentRecord; + final String homeRecord; + final String awayRecord; + final String gameStreak; + + // -- Polls stats -- + //final String apRecord; + //final String usaRecord; + + sport_standings_basketball( + this.id, { + this.displayName, + this.image, + + this.position, + + this.conferenceRecord, + this.gamesBehind, + this.conferencePercentRecord, + + this.overallRecord, + this.overallPercentRecord, + this.homeRecord, + this.awayRecord, + this.gameStreak, + + //this.apRecord, + //this.usaRecord, + }); + + factory sport_standings_basketball.fromJson(Map json) { + return sport_standings_basketball( + json['id'], + displayName: json['standings']['entries']['team']['displayName'], + image: json['standings']['entries']['team']['logos']['href'], + + /*for (team in json['standings']['entries']) { + var stats = new Map(); + for (stat in team['stats']) { + stats[stat['type']] = stat; + } + + var team_widget = basketball_widget( + position: stats['playoffseed']['displayValue'], + + conferenceRecord: stats['vsconf']['displayValue'], + gamesBehind: stats['vsconf_gamesbehind']['displayValue'], + conferencePercentRecord: stats['vsconf_winpercent']['displayValue'], + + + overallRecord: stats['total']['displayValue'], + overallPercentRecord: stats['winpercent']['displayValue'], + homeRecord: stats['home']['displayValue'], + awayRecord: stats['road']['displayValue'], + gameStreak: stats['streak']['displayValue'], + + //apRecord: json['standings']['entries']['stats']['displayValue'], + //usaRecord: json['standings']['entries']['stats']['displayValue'], + ) + }*/ + ); + } +} \ No newline at end of file diff --git a/lib/screens/sport_standings_football.dart b/lib/screens/sport_standings_football.dart new file mode 100644 index 0000000..03ec2eb --- /dev/null +++ b/lib/screens/sport_standings_football.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; + +class sport_standings_football { + final int id; //id for each game + final DateTime date; //date: 2020-09-05T00:00:00 + final String location_indicator; //location_indicator: H-Home / A-Away + final String location; //location: Knoxville, Tenn., Charlotte, NC + + // -- sport json -- + final int idSport; //id: Each sport different number + final String sportTitle; //title: Football, Men's Soccer + final String gender; //gender: M - F + + // -- opponent json -- + final String opponentTitle; //title: Tennessee, Norfolk State + final String image; + + // -- result json -- + final String status; //status: W - T - L + final String team_score; //team_score: + final String opponent_score; //opponent_score: + final String postscore; + + sport_standings_football( + this.id, { + this.date, + this.location_indicator, + this.location, + + this.idSport, + this.sportTitle, + this.gender, + + this.opponentTitle, + this.image, + + this.status, + this.team_score, + this.opponent_score, + this.postscore, + }); + + factory sport_standings_football.fromJson(Map json) { + return sport_standings_football( + json['id'], + date: DateTime.parse(json['date']), + location_indicator: json['location_indicator'], + location: json['location'], + + idSport: json['sport']['id'], + sportTitle: json['sport']['title'], + gender: json['sport']['gender'], + + opponentTitle: json['opponent']['title'], + image: json['opponent']['image'], + + status: json['result']['status'], + + team_score: json['result']['team_score'], + opponent_score: json['result']['opponent_score'], + postscore: json['result']['postscore'], + ); + } +} \ No newline at end of file diff --git a/lib/screens/standing.dart b/lib/screens/standing.dart index 8a57a29..fb1c0c6 100644 --- a/lib/screens/standing.dart +++ b/lib/screens/standing.dart @@ -32,67 +32,28 @@ class Standing extends StatelessWidget { children: [ Container( child: Text( - "W L", + "W L ", style: TextStyle(fontWeight: FontWeight.bold), ), alignment: Alignment(.85, 0), height: 20, color: Colors.grey, ), - SportLine( - s: _schools[0], - position: 1, - ), - SportLine( - s: _schools[1], - position: 2, - ), - SportLine( - s: _schools[2], - position: 3, - ), - SportLine( - s: _schools[3], - position: 4, - ), - SportLine( - s: _schools[4], - position: 5, - ), - SportLine( - s: _schools[5], - position: 6, - ), - SportLine( - s: _schools[6], - position: 7, - ), - SportLine( - s: _schools[7], - position: 8, - ), - SportLine( - s: _schools[8], - position: 9, - ), - SportLine( - s: _schools[9], - position: 10, - ), - SportLine( - s: _schools[10], - position: 11, - ), - SportLine( - s: _schools[11], - position: 12, - ),SportLine( - s: _schools[12], - position: 13, - ),SportLine( - s: _schools[13], - position: 14, - ), + + SportLine(s: _schools[0], position: 1,), + SportLine(s: _schools[1], position: 2,), + SportLine(s: _schools[2], position: 3,), + SportLine(s: _schools[3], position: 4,), + SportLine(s: _schools[4], position: 5,), + SportLine(s: _schools[5], position: 6,), + SportLine(s: _schools[6], position: 7,), + SportLine(s: _schools[7], position: 8,), + SportLine(s: _schools[8], position: 9,), + SportLine(s: _schools[9], position: 10,), + SportLine(s: _schools[10], position: 11,), + SportLine(s: _schools[11], position: 12,), + SportLine(s: _schools[12], position: 13,), + SportLine(s: _schools[13], position: 14,), ], ), ), diff --git a/lib/screens/test_standings.dart b/lib/screens/test_standings.dart new file mode 100644 index 0000000..794d0e9 --- /dev/null +++ b/lib/screens/test_standings.dart @@ -0,0 +1,26 @@ +/*import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; + +import 'dart:convert'; + +class Standings extends StatefulWidget { + @override + _Standings createState() => _Standings(); +} + +List _selectedTeams; + +class _Standings extends State { + static final sportUrl = 'https://charlotte49ers.com/services/adaptive_components.ashx?type=scoreboard&start=0&count=80'; + + Future> getEvents() async { + var url = '$sportUrl&sport_id=$sportID&name=&extra=%7B%7D'; + + print(url.toString()); + + http.Response response = await http.get(url); + Iterable games = json.decode(response.body); + + return games.map((json) => sport_standings_basketball.fromJson(json)).toList(); + //return games.map((e) => sport_schedule.fromJson(e)).toList(); + }*/ \ No newline at end of file