diff --git a/lib/route_generator.dart b/lib/route_generator.dart index ac14084..7678fff 100644 --- a/lib/route_generator.dart +++ b/lib/route_generator.dart @@ -6,6 +6,7 @@ import 'package:capstone_hungry_hippos/screens/home_widget.dart'; import 'package:capstone_hungry_hippos/screens/sport.dart'; import 'package:capstone_hungry_hippos/screens/twitter_widget.dart'; import 'package:capstone_hungry_hippos/screens/favorites_reorder.dart'; +import 'package:capstone_hungry_hippos/screens/game_details.dart'; class RouteGenerator { static Route generateRoute(RouteSettings settings) { @@ -24,6 +25,8 @@ class RouteGenerator { return MaterialPageRoute(builder: (_) => Standing()); case '/Chat': return MaterialPageRoute(builder: (_) => Chat()); + case '/Details': + return MaterialPageRoute(builder: (_) => Details()); case '/Favorites': return MaterialPageRoute(builder: (_) => FavoritesManager()); case '/Twitter': diff --git a/lib/screens/game_details.dart b/lib/screens/game_details.dart new file mode 100644 index 0000000..ff25921 --- /dev/null +++ b/lib/screens/game_details.dart @@ -0,0 +1,332 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'dart:io'; + +class Details extends StatelessWidget { + + static final List colorList = [ + const Item('FootBall', Colors.green), + const Item("BasketBall", Colors.red), + const Item("Soccer", Colors.pinkAccent), + const Item('Baseball', Colors.orange), + ]; + + Item _curSport = colorList[0]; + + + + @override + Widget build(BuildContext context) { + Item selectedSport; + + return StatefulBuilder( + builder: (context, StateSetter setState) => Scaffold( + appBar: AppBar( + centerTitle: false, + title: Text('Game Details'), + backgroundColor: Colors.green, + ), + body: Container( + color: Colors.black12, + child: Column( + children: [ + Container( + color: Colors.black12, + child: Container( + decoration: BoxDecoration( + border: Border( + top: BorderSide( + color: Colors.black, + width: 2.0, + ), + ), + ), + child: Padding( + padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 40.0), + child: Row( + children: [ + Padding( + padding: EdgeInsets.only(right: 5), + child: Column( + children: [ + SizedBox( + height: 45, + width: 45, + child: Image.network('https://upload.wikimedia.org/wikipedia/en/thumb/3/33/Charlotte_49ers_logo.svg/1200px-Charlotte_49ers_logo.svg.png'), + ), + Text('UNCC', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 0, horizontal: 25), + child: Text('10', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold) + ), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 0, horizontal: 25), + child: Text('vs', + style: TextStyle( + decoration: TextDecoration.underline, + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 0, horizontal: 25), + child: Text('52', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ), + ), + Padding( + padding: EdgeInsets.only(left: 5), + child: Column( + children: [ + SizedBox( + width: 50, + height: 50, + child: Image.network('https://www.clemson.edu/brand/resources/logos/paw/orange.png'), + ), + Text('Clemson', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + Container( + color: Colors.black12, + child: Container( + decoration: BoxDecoration( + border: Border( + top: BorderSide( + color: Colors.black, + width: 2.0, + ), + bottom: BorderSide( + color: Colors.black, + width: 2.0, + ), + ), + ), + child: Padding( + padding: EdgeInsets.symmetric(vertical: 0.0, horizontal: 5.0), + child: Row( + children: [ + Container( + child: Card( + child: SizedBox( + width: 90, + height: 30, + child: Center( + child: Text('Standings', + style: TextStyle(fontSize: 16), + ), + ), + ), + ), + ), + Container( + child: Card( + child: SizedBox( + width: 90, + height: 30, + child: Center( + child: Text('Schedule', + style: TextStyle(fontSize: 16), + ), + ), + ), + ), + ), + Container( + child: Card( + child: SizedBox( + width: 100, + height: 30, + child: Center( + child: Text('Play-By-Play', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + ), + Container( + color: Colors.black12, + child: Card( + child: SizedBox( + width: 89, + height: 30, + child: Center( + child: Text('Chat', + style: TextStyle(fontSize: 16), + ), + ), + ), + ), + ), + ], + ), + ), + ), + ), + Container( + child: GameUpdates(), + ), + ], + ), + ), + drawer: Drawer( + child: ListView( + children: [ + DrawerHeader( + child: Text( + 'Drawer Header', + style: TextStyle( + color: Colors.white, + fontSize: 24, + ), + ), + decoration: BoxDecoration( + color: Colors.green, + ), + ), + ListTile( + title: IconButton( + icon: Icon(Icons.home), + onPressed: () => Navigator.pushNamed(context, '/'), + ), + ), + ListTile( + title: IconButton( + icon: Icon(Icons.table_chart), + onPressed: () => Navigator.pushNamed(context, '/Standing'), + ), + ), + ListTile( + title: IconButton( + icon: Icon(Icons.calendar_today), + onPressed: () => Navigator.pushNamed(context, '/Schedule'), + ), + ), + ], + ), + ), + ), + ); + } + + +} + +class Item { + const Item(this.name, this.color); + + final String name; + final Color color; +} + +class Play { + final String title; + final String action; + + Play( + this.title, + this.action, + ); +} + +class GameUpdates extends StatelessWidget{ + List myList = []; + final test1 = new Play('1st and 10 at CLT 25', '(6:12 - 4th) Aidan Swanson kickoff for 65 yds for a touchback'); + final test2 = new Play('2nd & 10 at CLT 25', '(5:00 - 4th) Ishod Finger run for no gain to the Charl 25'); + final test3 = new Play('3rd & 10 at CLT 25', '(4:30 - 4th) CHARLOTTE Penalty, False Start (-5 Yards) to the Charl 20'); + final test4 = new Play('3rd & 15 at CLT 20', '(4:00 - 4th) Brett Kean run for 5 yds to the Charl 25'); + final test5 = new Play('4th & 10 at CLT 25', '(3:31 - 4th) Connor Bowler punt for 48 yds , Will Brown returns for 13 yds to the Clem 40'); + final test6 = new Play('1st & 10 at CLEM 40','(3:00 - 4th) Taisun Phommachanh pass complete to Will Brown for 8 yds to the Clem 48'); + final test7 = new Play('2nd & 2 at CLEM 48','(2:40 - 4th) Chez Mellusi run for 3 yds to the Charl 49 for a 1ST down'); + final test8 = new Play('1st & 10 at CLT 49','(2:25 - 4th) Chez Mellusi run for 8 yds to the Charl 41'); + final test9 = new Play('2nd & 2 at CLT 41','(1:37 - 4th) Ben Batson run for 5 yds to the Charl 36 for a 1ST down'); + final test10 = new Play('1st & 10 at CLT 36', '(1:30 - 4th) CLEMSON Penalty, False Start (-5 Yards) to the Charl 41'); + final test11 = new Play('1st & 15 at CLT 41','(0:55 - 4th) Chez Mellusi run for 4 yds to the Charl 37'); + final test12 = new Play('2nd & 11 at CLT 37','(0:25 - 4th) Patrick McClure run for 3 yds to the Charl 34'); + final test13 = new Play('3rd & 8 at CLT 34','(0:05 - 4th) Chez Mellusi run for 7 yds to the Charl 27'); + final test14 = new Play('4th & 1 at CLT 27','(0:00 - 4th) Patrick McClure run for 9 yds to the Charl 18 for a 1ST down'); + + + @override + Widget build(BuildContext context) { + var myStream = Stream.periodic(Duration(seconds:5), (x) => x).take(15); + myList.add(test1); + myList.add(test2); + myList.add(test3); + myList.add(test4); + myList.add(test5); + myList.add(test6); + myList.add(test7); + myList.add(test8); + myList.add(test9); + myList.add(test10); + myList.add(test11); + myList.add(test12); + myList.add(test13); + myList.add(test14); + + /* return StreamBuilder( + stream: myStream, + initialData: '0', + builder: (ctx, snapshot){ + return Card( + child: Padding( + padding: EdgeInsets.symmetric(vertical: 10, horizontal: 5), + child: Text('${snapshot.data}'), + ), + ); + }, + ); */ + + return Expanded( + child: Container( + child: ListView.builder( + scrollDirection: Axis.vertical, + itemCount: myList.length, + itemBuilder: (context, int index){ + return Card( + child: Padding( + padding: EdgeInsets.symmetric(vertical: 5,horizontal: 10), + child: ListTile( + title: Text('${myList[index].title}'), + subtitle: Padding( + padding: EdgeInsets.symmetric(vertical: 10, horizontal: 20), + child: Text('${myList[index].action}'), + ), + ), + ), + ); + + } + ), + ), + ); + + } +} + diff --git a/lib/screens/home_widget.dart b/lib/screens/home_widget.dart index 8af1840..1a7f475 100644 --- a/lib/screens/home_widget.dart +++ b/lib/screens/home_widget.dart @@ -48,6 +48,12 @@ class _HomeState extends State { onPressed: () => Navigator.pushNamed(context, '/Chat'), ), ), + ListTile( //added by Kaleb to test details page. Will update path / delete when we have game tiles implemented. + title: IconButton( + icon: Icon(Icons.book), + onPressed: () => Navigator.pushNamed(context, '/Details'), + ), + ), ListTile( title: IconButton( icon: Icon(Icons.voice_chat),