From d8dc65d9bf661cb944887c72ba854961b1149883 Mon Sep 17 00:00:00 2001 From: Neel Patel Date: Sat, 2 Jan 2021 15:32:04 -0600 Subject: [PATCH] Create a main page structure along with scrollable video cards --- .../lib/{ => app/models}/constants.dart | 0 .../lib/{ => app/models}/themes.dart | 6 ++-- .../lib/{ => app/models}/video_data.dart | 0 .../lib/{ => app/pages}/app_scaffold.dart | 18 ++++------ .../lib/{ => app}/pages/login.dart | 4 +-- .../lib/{ => app}/pages/video_page.dart | 11 ++---- .../lib/{ => app}/pages/videos.dart | 0 .../lib/{ => app}/widgets/account_info.dart | 33 +----------------- .../lib/{ => app}/widgets/app_bar.dart | 10 +++--- .../lib/{ => app}/widgets/carousel.dart | 0 .../lib/{ => app/widgets}/drawer.dart | 15 ++++++-- .../lib/{ => app}/widgets/grid_results.dart | 7 ++-- .../lib/{ => app/widgets}/thumbnail.dart | 2 +- .../lib/{ => app}/widgets/video_card.dart | 4 +-- frontend/memoree_client/lib/main.dart | 12 +++---- frontend/memoree_client/pubspec.yaml | 1 + frontend/memoree_client/web/favicon.png | Bin 917 -> 1574 bytes 17 files changed, 44 insertions(+), 79 deletions(-) rename frontend/memoree_client/lib/{ => app/models}/constants.dart (100%) rename frontend/memoree_client/lib/{ => app/models}/themes.dart (94%) rename frontend/memoree_client/lib/{ => app/models}/video_data.dart (100%) rename frontend/memoree_client/lib/{ => app/pages}/app_scaffold.dart (58%) rename frontend/memoree_client/lib/{ => app}/pages/login.dart (95%) rename frontend/memoree_client/lib/{ => app}/pages/video_page.dart (87%) rename frontend/memoree_client/lib/{ => app}/pages/videos.dart (100%) rename frontend/memoree_client/lib/{ => app}/widgets/account_info.dart (67%) rename frontend/memoree_client/lib/{ => app}/widgets/app_bar.dart (95%) rename frontend/memoree_client/lib/{ => app}/widgets/carousel.dart (100%) rename frontend/memoree_client/lib/{ => app/widgets}/drawer.dart (66%) rename frontend/memoree_client/lib/{ => app}/widgets/grid_results.dart (77%) rename frontend/memoree_client/lib/{ => app/widgets}/thumbnail.dart (94%) rename frontend/memoree_client/lib/{ => app}/widgets/video_card.dart (97%) diff --git a/frontend/memoree_client/lib/constants.dart b/frontend/memoree_client/lib/app/models/constants.dart similarity index 100% rename from frontend/memoree_client/lib/constants.dart rename to frontend/memoree_client/lib/app/models/constants.dart diff --git a/frontend/memoree_client/lib/themes.dart b/frontend/memoree_client/lib/app/models/themes.dart similarity index 94% rename from frontend/memoree_client/lib/themes.dart rename to frontend/memoree_client/lib/app/models/themes.dart index 71fe319..297fbec 100755 --- a/frontend/memoree_client/lib/themes.dart +++ b/frontend/memoree_client/lib/app/models/themes.dart @@ -3,13 +3,13 @@ import 'package:flutter/material.dart'; class AppTheme { AppTheme._(); - static Color _iconColor = Colors.redAccent.shade200; + static Color _iconColor = Colors.black87; static const Color _lightPrimaryColor = Colors.white; static const Color _lightPrimaryVariantColor = Colors.white; static const Color _lightSecondaryColor = Colors.green; - static const Color _lightOnPrimaryColor = Colors.black; - static const String _fontFamily = "OpenSans"; + static const Color _lightOnPrimaryColor = Color(0xff3c4043); + static const String _fontFamily = "Montserrat"; static final ThemeData lightTheme = ThemeData( fontFamily: _fontFamily, diff --git a/frontend/memoree_client/lib/video_data.dart b/frontend/memoree_client/lib/app/models/video_data.dart similarity index 100% rename from frontend/memoree_client/lib/video_data.dart rename to frontend/memoree_client/lib/app/models/video_data.dart diff --git a/frontend/memoree_client/lib/app_scaffold.dart b/frontend/memoree_client/lib/app/pages/app_scaffold.dart similarity index 58% rename from frontend/memoree_client/lib/app_scaffold.dart rename to frontend/memoree_client/lib/app/pages/app_scaffold.dart index 2b85946..e04a17a 100755 --- a/frontend/memoree_client/lib/app_scaffold.dart +++ b/frontend/memoree_client/lib/app/pages/app_scaffold.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:memoree_client/drawer.dart'; -import 'package:memoree_client/widgets/app_bar.dart'; -import 'package:memoree_client/widgets/grid_results.dart'; +import 'package:memoree_client/app/pages/video_page.dart'; +import 'package:memoree_client/app/widgets/app_bar.dart'; +import 'package:memoree_client/app/widgets/drawer.dart'; class AppScaffold extends StatelessWidget { final String page; @@ -16,19 +16,13 @@ class AppScaffold extends StatelessWidget { return Scaffold( appBar: CustomAppBar(isMobile: isMobileLayout, isTablet: isTabletLayout), - drawer: isMobileLayout ? AppDrawer() : null, + drawer: isMobileLayout ? AppDrawer(isMobile: isMobileLayout,) : null, body: SafeArea( child: Container( child: Row(children: [ - if (!isMobileLayout) AppDrawer(), + if (!isMobileLayout) AppDrawer(isMobile: isMobileLayout,), Container( - child: Expanded(child: page == "videos" ? ContentGrid() : null)) + child: Expanded(child: VideoPage())) ])))); } - - Widget appDrawer(bool isMobile, bool isTablet) { - if (isMobile) return AppDrawer(); - - return null; - } } diff --git a/frontend/memoree_client/lib/pages/login.dart b/frontend/memoree_client/lib/app/pages/login.dart similarity index 95% rename from frontend/memoree_client/lib/pages/login.dart rename to frontend/memoree_client/lib/app/pages/login.dart index d61d00a..1a93ffe 100755 --- a/frontend/memoree_client/lib/pages/login.dart +++ b/frontend/memoree_client/lib/app/pages/login.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:memoree_client/app/services/firebase_auth.dart'; -import 'package:memoree_client/app_scaffold.dart'; -import 'package:memoree_client/constants.dart'; +import 'package:memoree_client/app/pages/app_scaffold.dart'; +import 'package:memoree_client/app/models/constants.dart'; class LoginPage extends StatefulWidget { @override diff --git a/frontend/memoree_client/lib/pages/video_page.dart b/frontend/memoree_client/lib/app/pages/video_page.dart similarity index 87% rename from frontend/memoree_client/lib/pages/video_page.dart rename to frontend/memoree_client/lib/app/pages/video_page.dart index 64e9c79..9e6072e 100755 --- a/frontend/memoree_client/lib/pages/video_page.dart +++ b/frontend/memoree_client/lib/app/pages/video_page.dart @@ -1,17 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:memoree_client/widgets/grid_results.dart'; + +import 'package:memoree_client/app/widgets/grid_results.dart'; class VideoPage extends StatelessWidget { @override Widget build(BuildContext context) { - // return Container( - // padding: const EdgeInsets.only(top: 10.0), - // child: Column( - // children: [ - // Text() - // ], - // ), - // ); return FutureBuilder( future: Future.delayed(Duration(seconds: 3)), builder: (context, snapshot) { diff --git a/frontend/memoree_client/lib/pages/videos.dart b/frontend/memoree_client/lib/app/pages/videos.dart similarity index 100% rename from frontend/memoree_client/lib/pages/videos.dart rename to frontend/memoree_client/lib/app/pages/videos.dart diff --git a/frontend/memoree_client/lib/widgets/account_info.dart b/frontend/memoree_client/lib/app/widgets/account_info.dart similarity index 67% rename from frontend/memoree_client/lib/widgets/account_info.dart rename to frontend/memoree_client/lib/app/widgets/account_info.dart index f39c133..88ddff8 100755 --- a/frontend/memoree_client/lib/widgets/account_info.dart +++ b/frontend/memoree_client/lib/app/widgets/account_info.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:memoree_client/app/pages/login.dart'; import 'package:memoree_client/app/services/firebase_auth.dart'; -import 'package:memoree_client/app_scaffold.dart'; -import 'package:memoree_client/pages/login.dart'; class AccountInfo extends StatefulWidget { @override @@ -12,22 +11,6 @@ class AccountInfo extends StatefulWidget { class _AccountInfoState extends State { @override Widget build(BuildContext context) { - // return Container( - // child: Center( - // child: Column( - // mainAxisSize: MainAxisSize.min, - // children: [ - // CircleAvatar( - // radius: 30, - // child: ClipOval( - // child: Image.network(widget.photoUrl, fit: BoxFit.cover), - // ), - // ) - // ], - // ) - // ), - // ); - return FutureBuilder( future: FirebaseAuthService().currentUser(), builder: (context, snapshot) { @@ -76,20 +59,6 @@ class _AccountInfoState extends State { padding: const EdgeInsets.all(10), child: Text("Sign out", textScaleFactor: 1.1,) ), - // child: Padding( - // padding: const EdgeInsets.only(top: 10.0, bottom: 10.0), - // child: Row( - // mainAxisSize: MainAxisSize.min, - // mainAxisAlignment: MainAxisAlignment.center, - // children: [ - // Image(image: AssetImage("logos/google_logo.png"), height: 30.0), - // Padding( - // padding: const EdgeInsets.only(left: 10.0), - // child: Text("Sign in with Google") - // ), - // ], - // ), - // ), ), ], ), diff --git a/frontend/memoree_client/lib/widgets/app_bar.dart b/frontend/memoree_client/lib/app/widgets/app_bar.dart similarity index 95% rename from frontend/memoree_client/lib/widgets/app_bar.dart rename to frontend/memoree_client/lib/app/widgets/app_bar.dart index ac2f6e0..a1ed34c 100755 --- a/frontend/memoree_client/lib/widgets/app_bar.dart +++ b/frontend/memoree_client/lib/app/widgets/app_bar.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; + import 'package:memoree_client/app/services/firebase_auth.dart'; -import 'package:memoree_client/constants.dart'; +import 'package:memoree_client/app/models/constants.dart'; +import 'package:memoree_client/app/widgets/account_info.dart'; import 'package:memoree_client/search.dart'; -import 'package:memoree_client/widgets/account_info.dart'; class CustomAppBar extends StatefulWidget with PreferredSizeWidget { final bool isMobile, isTablet; @@ -28,7 +29,8 @@ class _CustomAppBarState extends State { centerTitle: true, title: Row( children: [ - Text(PageTitles.appName), + Text(PageTitles.appName, style: TextStyle(fontWeight: FontWeight.w400, fontFamily: "ProductSans")), + SizedBox(width: 8,), if (!widget.isTablet) Flexible( flex: 5, @@ -93,7 +95,7 @@ class _CustomAppBarState extends State { barrierDismissible: true, builder: (context) { return Align( - alignment: Alignment(0.98, -0.84), + alignment: Alignment(0.98, -0.79), child: Material( shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5.0)), diff --git a/frontend/memoree_client/lib/widgets/carousel.dart b/frontend/memoree_client/lib/app/widgets/carousel.dart similarity index 100% rename from frontend/memoree_client/lib/widgets/carousel.dart rename to frontend/memoree_client/lib/app/widgets/carousel.dart diff --git a/frontend/memoree_client/lib/drawer.dart b/frontend/memoree_client/lib/app/widgets/drawer.dart similarity index 66% rename from frontend/memoree_client/lib/drawer.dart rename to frontend/memoree_client/lib/app/widgets/drawer.dart index cdd0847..27ea343 100755 --- a/frontend/memoree_client/lib/drawer.dart +++ b/frontend/memoree_client/lib/app/widgets/drawer.dart @@ -1,7 +1,12 @@ import 'package:flutter/material.dart'; -import 'package:memoree_client/constants.dart'; + +import 'package:memoree_client/app/models/constants.dart'; +import 'package:memoree_client/app/widgets/account_info.dart'; class AppDrawer extends StatefulWidget { + final isMobile; + + AppDrawer({this.isMobile}); @override _AppDrawerState createState() => _AppDrawerState(); @@ -22,15 +27,19 @@ class _AppDrawerState extends State { child: ListView( padding: EdgeInsets.only(top: 25.0), children: [ + if(widget.isMobile) + AccountInfo(), + if(widget.isMobile) + Divider(thickness: 2.0), ListTile( leading: const Icon(Icons.movie_outlined), - title: const Text(PageTitles.videos), + title: const Text(PageTitles.videos, style: TextStyle(fontWeight: FontWeight.w500)), selected: _selectedIndex == 0, onTap: () => { }, ), ListTile( leading: const Icon(Icons.video_library_outlined), - title: const Text(PageTitles.folders), + title: const Text(PageTitles.folders, style: TextStyle(fontWeight: FontWeight.w500)), selected: _selectedIndex == 1, onTap: () => {}, ), diff --git a/frontend/memoree_client/lib/widgets/grid_results.dart b/frontend/memoree_client/lib/app/widgets/grid_results.dart similarity index 77% rename from frontend/memoree_client/lib/widgets/grid_results.dart rename to frontend/memoree_client/lib/app/widgets/grid_results.dart index ea6bd64..deded30 100755 --- a/frontend/memoree_client/lib/widgets/grid_results.dart +++ b/frontend/memoree_client/lib/app/widgets/grid_results.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; -import 'package:memoree_client/widgets/video_card.dart'; + +import 'package:memoree_client/app/widgets/video_card.dart'; class ContentGrid extends StatefulWidget { @override @@ -17,7 +17,8 @@ class _ContentGridState extends State { gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( maxCrossAxisExtent: 300.0, crossAxisSpacing: 20.0, - // mainAxisSpacing: 20.0, + mainAxisSpacing: 10.0, + // childAspectRatio: 1.15, ), itemBuilder: (BuildContext context, int index) { return VideoCard(null); diff --git a/frontend/memoree_client/lib/thumbnail.dart b/frontend/memoree_client/lib/app/widgets/thumbnail.dart similarity index 94% rename from frontend/memoree_client/lib/thumbnail.dart rename to frontend/memoree_client/lib/app/widgets/thumbnail.dart index 18415d4..cf247ec 100755 --- a/frontend/memoree_client/lib/thumbnail.dart +++ b/frontend/memoree_client/lib/app/widgets/thumbnail.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:memoree_client/video_data.dart'; +import 'package:memoree_client/app/models/video_data.dart'; class ThumbnailGenerator extends StatelessWidget { final VideoData videoData; diff --git a/frontend/memoree_client/lib/widgets/video_card.dart b/frontend/memoree_client/lib/app/widgets/video_card.dart similarity index 97% rename from frontend/memoree_client/lib/widgets/video_card.dart rename to frontend/memoree_client/lib/app/widgets/video_card.dart index 32e5d1a..803bf6b 100755 --- a/frontend/memoree_client/lib/widgets/video_card.dart +++ b/frontend/memoree_client/lib/app/widgets/video_card.dart @@ -3,8 +3,8 @@ import 'dart:ui'; import 'package:fading_edge_scrollview/fading_edge_scrollview.dart'; import 'package:flutter/material.dart'; -import 'package:memoree_client/thumbnail.dart'; -import 'package:memoree_client/video_data.dart'; +import 'package:memoree_client/app/widgets/thumbnail.dart'; +import 'package:memoree_client/app/models/video_data.dart'; class VideoCard extends StatefulWidget { final VideoData videoData; diff --git a/frontend/memoree_client/lib/main.dart b/frontend/memoree_client/lib/main.dart index d2b417e..1fd0ee1 100755 --- a/frontend/memoree_client/lib/main.dart +++ b/frontend/memoree_client/lib/main.dart @@ -1,16 +1,12 @@ -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; -import 'package:memoree_client/app/models/user.dart'; -import 'package:memoree_client/app/services/firebase_auth.dart'; -import 'package:memoree_client/app_scaffold.dart'; -import 'package:memoree_client/constants.dart'; -import 'package:memoree_client/pages/login.dart'; -import 'package:memoree_client/themes.dart'; + +import 'package:memoree_client/app/models/constants.dart'; +import 'package:memoree_client/app/pages/login.dart'; +import 'package:memoree_client/app/models/themes.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { - // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( diff --git a/frontend/memoree_client/pubspec.yaml b/frontend/memoree_client/pubspec.yaml index 82d2f5c..e49f2b2 100755 --- a/frontend/memoree_client/pubspec.yaml +++ b/frontend/memoree_client/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: provider: ^4.3.2+3 video_player: ^1.0.1 video_thumbnail_generator: ^0.0.6 + fading_edge_scrollview: ^1.1.4 dev_dependencies: flutter_test: diff --git a/frontend/memoree_client/web/favicon.png b/frontend/memoree_client/web/favicon.png index 8aaa46ac1ae21512746f852a42ba87e4165dfdd1..147faf84c14fd3901328a5df08b76e938c068dad 100755 GIT binary patch delta 1571 zcmV+;2Hg3T2c`^viBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^Z)<>g=s@W zP)S2WAaHVTW@&6?001bFeUUv#!$2IxUsFYqih~7<2xh3dSP&I)lqwd%LTM|s>R@u| z7c^-|Qd}Gb*Mfr|i&X~~XI&j!1wrrw#L3Y~(M3x9Us7m)5#zyeKi=JY+`R*YdYP$a z#{{5imXVA_#Y}cp?0Q82!x+FALJ~9ecxo{X&+&B+A7AexJj?sspQBgFnGEoW#B)qH zEaDB~nN3UQyiXitMM)t(CmuKGg2azpmtB72TyR+6nL#6+oF@(vi-k6p+n5y%m3W#s ztf(603mKPx70z3n)pC_J@5x^n$Z0DnuG1Vs3`>Y30TD8)D4`4s5n44;OeASP>fs-B z{0VZ&sb!v*z~J+{fty zkfyGdZ-9eCV6;Hl>mKj!Ztv~iGtK^f0L<}n%Mv!mn*aa+24YJ`L;(K){{a7>y{D6r zE*F0Q2XskIMF-^p0RRL#t>JR=0000PbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0} zP*;Ht7XSbQ{YgYYR9M5+*L&#SQy2&E*M9q9j9klQ5prk32s@gFbj&rYwLf%75n>|u z%iJYGY?FKKkeYjm9l2i)xvVUgBu$ZMF3W#qZn632{PgMDem}q8wp^b2)aRV@JkNQ~ z^Sqz;=Y05=Wz?z|myp)OEm#Mi#hT9@sgJ%@Jitk~J=Q!O>y?o9SuFvSkj9sgCJ)2@ zH*8Zv>c^ICylMfIkaoZgm|8+ge`9|Sj>00m6l-3%Ix?^}e#cUb9m+V?{4*}WL$QD6 z>sO|ReJgOf5OeSW)-558{u>_~V#&&asBe&y&5t$D#l1MagfvvQY=mz|&^dj>?t)nJ zH+TfMl#u3?koH>H07^)sOGuC5g%Z*+BWc4gFaa0f&Jxm*C8Vu~3ZR6veF0Nw|H}N%gZEd#x9J%_70>MzHdXLRlROGsB@GUmmaXZJW?v$ff=E84ut z7|f3~FKssSN=TDhc7Nzl_9j@~Yut~+u{R244*;g6@I2fZYyM$~B&{{Dd53?V&uH)S zN=S3C0lvcSC8UM1=8wAp%*9K1r7_<)9D<**8@BHS7#7ExziU&=dOGKOT+?)q!-uiv zS#7)(Zo?6ObwRB8)>!kTSo6jB9^1v54~{h-fopMcXY&(r9p<;RYOFb!OvJ;T;66oP zmkWB^a9cdt89#w;?~liQSloYV3V#d&-kn+o_vp-x!5XpVW!(~V80j@*bV_ z@fgm;r?|Rhb39(foLKYcO?ND&VqKJ2^P=7^7;w54_H8wtfHklS4#R&_J#ij|S+VAK zo9$V69h2G@vJ1+k$b*5Tzt!db2Ec3$Kj1w^Q87ywBJ7+z-av1-hUZMIagN+#x%m(81KiL&+&hhKLG1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM