diff --git a/assets/fonts/Metropolis/Metropolis-Black.otf b/assets/fonts/Metropolis/Metropolis-Black.otf new file mode 100644 index 0000000..3abd623 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Black.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-BlackItalic.otf b/assets/fonts/Metropolis/Metropolis-BlackItalic.otf new file mode 100644 index 0000000..3d6a9e4 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-BlackItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-Bold.otf b/assets/fonts/Metropolis/Metropolis-Bold.otf new file mode 100644 index 0000000..a42b941 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Bold.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-BoldItalic.otf b/assets/fonts/Metropolis/Metropolis-BoldItalic.otf new file mode 100644 index 0000000..f242515 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-BoldItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-ExtraBold.otf b/assets/fonts/Metropolis/Metropolis-ExtraBold.otf new file mode 100644 index 0000000..ca0b9ec Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-ExtraBold.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-ExtraBoldItalic.otf b/assets/fonts/Metropolis/Metropolis-ExtraBoldItalic.otf new file mode 100644 index 0000000..667c708 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-ExtraBoldItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-ExtraLight.otf b/assets/fonts/Metropolis/Metropolis-ExtraLight.otf new file mode 100644 index 0000000..b02e041 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-ExtraLight.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-ExtraLightItalic.otf b/assets/fonts/Metropolis/Metropolis-ExtraLightItalic.otf new file mode 100644 index 0000000..2740b28 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-ExtraLightItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-Light.otf b/assets/fonts/Metropolis/Metropolis-Light.otf new file mode 100644 index 0000000..b8b917c Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Light.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-LightItalic.otf b/assets/fonts/Metropolis/Metropolis-LightItalic.otf new file mode 100644 index 0000000..717133c Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-LightItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-Medium.otf b/assets/fonts/Metropolis/Metropolis-Medium.otf new file mode 100644 index 0000000..239d69d Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Medium.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-MediumItalic.otf b/assets/fonts/Metropolis/Metropolis-MediumItalic.otf new file mode 100644 index 0000000..dc30091 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-MediumItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-Regular.otf b/assets/fonts/Metropolis/Metropolis-Regular.otf new file mode 100644 index 0000000..737760b Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Regular.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-RegularItalic.otf b/assets/fonts/Metropolis/Metropolis-RegularItalic.otf new file mode 100644 index 0000000..14d62bc Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-RegularItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-SemiBold.otf b/assets/fonts/Metropolis/Metropolis-SemiBold.otf new file mode 100644 index 0000000..f9889d0 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-SemiBold.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-SemiBoldItalic.otf b/assets/fonts/Metropolis/Metropolis-SemiBoldItalic.otf new file mode 100644 index 0000000..fdbd016 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-SemiBoldItalic.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-Thin.otf b/assets/fonts/Metropolis/Metropolis-Thin.otf new file mode 100644 index 0000000..f969dcc Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-Thin.otf differ diff --git a/assets/fonts/Metropolis/Metropolis-ThinItalic.otf b/assets/fonts/Metropolis/Metropolis-ThinItalic.otf new file mode 100644 index 0000000..248bd94 Binary files /dev/null and b/assets/fonts/Metropolis/Metropolis-ThinItalic.otf differ diff --git a/assets/images/closed_box.png b/assets/images/closed_box.png index 3f7844f..3c10c8e 100644 Binary files a/assets/images/closed_box.png and b/assets/images/closed_box.png differ diff --git a/assets/images/open_box.png b/assets/images/open_box.png deleted file mode 100644 index 415c732..0000000 Binary files a/assets/images/open_box.png and /dev/null differ diff --git a/assets/images/opend_box.png b/assets/images/opend_box.png new file mode 100644 index 0000000..c0697bd Binary files /dev/null and b/assets/images/opend_box.png differ diff --git a/assets/images/qr_code.png b/assets/images/qr_code.png index e50e92b..b6f6db5 100644 Binary files a/assets/images/qr_code.png and b/assets/images/qr_code.png differ diff --git a/lib/core/model/pending_orders/pending_orders_res_model.dart b/lib/core/model/pending_orders/pending_orders_res_model.dart index a5c8420..6809612 100644 --- a/lib/core/model/pending_orders/pending_orders_res_model.dart +++ b/lib/core/model/pending_orders/pending_orders_res_model.dart @@ -129,8 +129,8 @@ class PendingOrdersRes { class ItemsQuantitiesList { String itemName; - int productID; - int quantity; + var productID; + var quantity; ItemsQuantitiesList({this.itemName, this.productID, this.quantity}); diff --git a/lib/core/service/orders_service.dart b/lib/core/service/orders_service.dart index fbc4184..cf513e0 100644 --- a/lib/core/service/orders_service.dart +++ b/lib/core/service/orders_service.dart @@ -6,6 +6,7 @@ import 'package:driverapp/core/service/base_service.dart'; class OrdersService extends BaseService { List _orders = List(); + List get orders => _orders; bool isOrderInserted; diff --git a/lib/core/viewModels/orders_view_model.dart b/lib/core/viewModels/orders_view_model.dart index 6e3e6d1..8e25b6c 100644 --- a/lib/core/viewModels/orders_view_model.dart +++ b/lib/core/viewModels/orders_view_model.dart @@ -1,7 +1,7 @@ import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/model/pending_orders/pending_orders_res_model.dart'; import 'package:driverapp/core/service/orders_service.dart'; -import 'package:driverapp/core/model/pending_orders/pending_orders_req_model.dart'; + import '../../locator.dart'; import 'base_view_model.dart'; diff --git a/lib/main.dart b/lib/main.dart index 9626777..93879f9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,8 +8,6 @@ import 'config/size_config.dart'; import 'core/viewModels/project_view_model.dart'; import 'locator.dart'; - - void main() { setupLocator(); runApp(MyApp()); @@ -44,6 +42,7 @@ class MyApp extends StatelessWidget { const Locale('en', ''), // English ], theme: ThemeData( + fontFamily: 'Metropolis', primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, brightness: Brightness.light, @@ -53,12 +52,11 @@ class MyApp extends StatelessWidget { TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), }, ), - scaffoldBackgroundColor:Color.fromRGBO(239, 245, 245, 1) , + scaffoldBackgroundColor: Color.fromRGBO(239, 245, 245, 1), hintColor: Colors.grey[400], disabledColor: Colors.grey[300], bottomSheetTheme: BottomSheetThemeData( - backgroundColor: Color.fromRGBO(239, 245, 245, 1) - ), + backgroundColor: Color.fromRGBO(239, 245, 245, 1)), errorColor: Color.fromRGBO(235, 80, 60, 1.0), textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), textSelectionHandleColor: Color.fromRGBO(80, 100, 253, 1.0), diff --git a/lib/pages/dashboard/dashboard_screen.dart b/lib/pages/dashboard/dashboard_screen.dart index 0909123..9f58d6c 100644 --- a/lib/pages/dashboard/dashboard_screen.dart +++ b/lib/pages/dashboard/dashboard_screen.dart @@ -42,8 +42,11 @@ class _DashboardScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'Have a great day ,', - style: TextStyle(fontSize: 12.5), + 'Have a great day,', + style: TextStyle( + fontSize: 14.5, + color: Color(0xff636363), + fontWeight: FontWeight.w300), ), Padding( padding: EdgeInsets.only(top: 4.5), @@ -91,8 +94,14 @@ class _DashboardScreenState extends State { Padding( padding: EdgeInsets.symmetric(horizontal: 10.0), child: Container( - height: MediaQuery.of(context).size.height * 0.15, - width: MediaQuery.of(context).size.width * 0.44, + height: MediaQuery + .of(context) + .size + .height * 0.16, + width: MediaQuery + .of(context) + .size + .width * 0.44, decoration: BoxDecoration( borderRadius: BorderRadius.circular(15.0), gradient: LinearGradient( @@ -101,57 +110,64 @@ class _DashboardScreenState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Padding( - padding: EdgeInsets.all(10.0), + Expanded( + child: Padding( + padding: EdgeInsets.all(2.0), child: Column( mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - 'You Have', - style: TextStyle( - color: Colors.white, fontSize: 10.0), - ), - Text( - '5', - style: TextStyle( - color: Colors.white, fontSize: 25.0), - ), - Expanded( - child: Text( - 'Undelivered \n Packages', + MainAxisAlignment.spaceEvenly, + children: [ + Text( + 'You Have', style: TextStyle( color: Colors.white, fontSize: 10.0), ), - ) - ], + Text( + '5', + style: TextStyle( + color: Colors.white, + fontSize: 25.0), + ), + Text( + 'Undeliverd\nPackages', + style: TextStyle( + color: Colors.white, fontSize: 9.5), + ) + ], + ), ), ), - Expanded( - child: Padding( - padding: EdgeInsets.all(4.0), + Padding( + padding: EdgeInsets.only(right: 9.5), + child: Container( + width: 110, + height: 110, + decoration: BoxDecoration( + color: Colors.white10, + shape: BoxShape.circle), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Padding( - padding: EdgeInsets.only(right: 9.5), - child: Image.asset( + Image.asset( 'assets/images/closed_box.png', - height: MediaQuery.of(context) - .size - .height * - 0.09, - width: MediaQuery.of(context) - .size - .width * + height: MediaQuery + .of(context) + .size + .height * + 0.10, + width: MediaQuery + .of(context) + .size + .width * 0.20, - //fit: BoxFit.cover, - )), + scale: 0.9, + fit: BoxFit.cover, + ), ], ), ), - ) + ), ], ), ), @@ -159,27 +175,31 @@ class _DashboardScreenState extends State { ], ), ), - Column( - children: [ - Padding( - padding: EdgeInsets.symmetric(horizontal: 10.0), - child: Container( - height: MediaQuery.of(context).size.height * 0.15, - width: MediaQuery.of(context).size.width * 0.44, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(15.0), - gradient: LinearGradient( - colors: [Color(0xff17AFB8), Color(0xff49C1BC)]), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Padding( - padding: EdgeInsets.all(12.0), + Expanded( + child: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 10.0), + child: Container( + height: MediaQuery.of(context).size.height * 0.16, + width: MediaQuery + .of(context) + .size + .width * 0.45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15.0), + gradient: LinearGradient( + colors: [Color(0xff17AFB8), Color(0xff49C1BC)]), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Padding( + padding: EdgeInsets.all(2.0), child: Column( mainAxisAlignment: - MainAxisAlignment.spaceEvenly, + MainAxisAlignment.spaceEvenly, children: [ Text( 'You Have', @@ -191,40 +211,48 @@ class _DashboardScreenState extends State { style: TextStyle( color: Colors.white, fontSize: 25.0), ), - Expanded( - child: Text( - 'unWanted\n Packge', + Text( + 'Succesful\nDeliveries', style: TextStyle( color: Colors.white, fontSize: 10.0), - ), - ) - ], + ) + ], + ), ), ), - ), - Padding( - padding: EdgeInsets.only(right: 9.5), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - 'assets/images/open_box.png', - height: MediaQuery.of(context).size.height * - 0.10, - width: MediaQuery.of(context).size.width * - 0.20, - scale: 0.9, - fit: BoxFit.cover, + Padding( + padding: EdgeInsets.only(right: 9.5), + child: Container( + width: 110, + height: 110, + decoration: BoxDecoration( + color: Colors.white10, + shape: BoxShape.circle), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'assets/images/opend_box.png', + height: + MediaQuery.of(context).size.height * + 0.10, + width: + MediaQuery.of(context).size.width * + 0.20, + scale: 0.9, + fit: BoxFit.cover, + ), + ], ), - ], + ), ), - ), - ], + ], + ), ), - ), - ) - ], + ) + ], + ), ), ], ), @@ -235,8 +263,14 @@ class _DashboardScreenState extends State { Expanded( child: InkWell( child: Container( - height: MediaQuery.of(context).size.height * 0.16, - width: MediaQuery.of(context).size.width * 0.50, + height: MediaQuery + .of(context) + .size + .height * 0.18, + width: MediaQuery + .of(context) + .size + .width * 0.50, decoration: BoxDecoration( borderRadius: BorderRadius.circular(15.0), gradient: LinearGradient(colors: [ @@ -252,10 +286,16 @@ class _DashboardScreenState extends State { Image.asset( 'assets/images/qr_code.png', width: - MediaQuery.of(context).size.width * 0.25, + MediaQuery + .of(context) + .size + .width * 0.26, height: - MediaQuery.of(context).size.height * 0.14, - fit: BoxFit.cover, + MediaQuery + .of(context) + .size + .height * 0.14, + fit: BoxFit.contain, ) ], ), @@ -270,7 +310,9 @@ class _DashboardScreenState extends State { child: Text( 'SCAN', style: TextStyle( - fontSize: 35.0, color: Colors.white), + fontSize: 35.0, + color: Colors.white, + fontWeight: FontWeight.w400), ), ), Padding( @@ -296,7 +338,7 @@ class _DashboardScreenState extends State { ), ), Padding( - padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 1.0), + padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 1.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -319,19 +361,21 @@ class _DashboardScreenState extends State { children: [ Text( 'See All', - style: TextStyle(fontSize: 14.5), + style: TextStyle( + fontSize: 14.5, color: Color(0xff42B6AD)), ), Icon( Icons.arrow_forward_ios, size: 15.0, + color: Color(0xff42B6AD), ), ], ), onTap: () => Navigator.push( - context, - MaterialPageRoute( - builder: (context) => OrdersListScreen()), - )), + context, + MaterialPageRoute( + builder: (context) => OrdersListScreen()), + )), ], ), ], @@ -348,7 +392,10 @@ class _DashboardScreenState extends State { padding: EdgeInsets.symmetric(horizontal: 12.2), child: InkWell( child: RoundedContainer( - height: MediaQuery.of(context).size.height * 0.108, + height: MediaQuery + .of(context) + .size + .height * 0.109, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -358,14 +405,15 @@ class _DashboardScreenState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( - padding: EdgeInsets.only(left: 22.0), + padding: EdgeInsets.only( + left: 10.0, bottom: 5.0), child: Image.asset( 'assets/images/location.png', height: MediaQuery.of(context).size.height * - 0.10, + 0.06, width: MediaQuery.of(context).size.width * - 0.09, + 0.05, ), ) ], @@ -396,7 +444,7 @@ class _DashboardScreenState extends State { ), Expanded( child: Text( - 'Olaya ST, Behind kfc next to king ,', + 'Olaya ST, Behind kfc next to king , ', style: TextStyle(color: Colors.black45), ), ), @@ -421,8 +469,8 @@ class _DashboardScreenState extends State { '3 K.m \n away', style: TextStyle( color: Color(0xff30B7B9), - fontSize: 12.5, - fontWeight: FontWeight.w600), + fontSize: 10.5, + fontWeight: FontWeight.w400), ), ), ), @@ -445,7 +493,7 @@ class _DashboardScreenState extends State { ); }, ), - ) + ), ], ), ), diff --git a/lib/pages/delivery/delivery_confirmed_page.dart b/lib/pages/delivery/delivery_confirmed_page.dart index 1d219e8..8fab34f 100644 --- a/lib/pages/delivery/delivery_confirmed_page.dart +++ b/lib/pages/delivery/delivery_confirmed_page.dart @@ -39,9 +39,22 @@ class DeliveryConfirmedPage extends StatelessWidget { child: Column( children: [ Container( - width: 300, - height: 300, - padding: EdgeInsets.only(top: 60), + width: MediaQuery + .of(context) + .size + .width, + //300, + height: MediaQuery + .of(context) + .size + .width * 0.7, + //300, + padding: EdgeInsets.only( + top: MediaQuery + .of(context) + .size + .width * 0.2, //60, + ), decoration: BoxDecoration( color: Colors.white10, shape: BoxShape.circle), @@ -81,12 +94,26 @@ class DeliveryConfirmedPage extends StatelessWidget { Stack( children: [ Container( - width: 400, - height: 500, + width: MediaQuery + .of(context) + .size + .width, //400, + height: MediaQuery + .of(context) + .size + .width, //500, ), Container( - width: 800, - height: 440, + width: MediaQuery + .of(context) + .size + .width, + //800, + height: MediaQuery + .of(context) + .size + .width * 1.2, + //440, margin: EdgeInsets.only(top: 60), decoration: BoxDecoration( color: Colors.white, @@ -99,7 +126,12 @@ class DeliveryConfirmedPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - margin: EdgeInsets.only(bottom: 50), + margin: EdgeInsets.only( + bottom: MediaQuery + .of(context) + .size + .width * 0.15, //50 + ), child: Column( children: [ FlatButton.icon( @@ -107,7 +139,7 @@ class DeliveryConfirmedPage extends StatelessWidget { color: Colors.orangeAccent, shape: RoundedRectangleBorder( borderRadius: - new BorderRadius.circular(10.0), + new BorderRadius.circular(10.0), ), icon: Icon( Icons.mode_edit, @@ -122,17 +154,29 @@ class DeliveryConfirmedPage extends StatelessWidget { onPressed: () {}, ), SizedBox( - height: 20, + height: MediaQuery + .of(context) + .size + .width * 0.1, //20, ), FlatButton( color: Color(0xff41bdbb), padding: - EdgeInsets.only(right: 100, left: 100), + EdgeInsets.only( + right: MediaQuery + .of(context) + .size + .width * 0.25, //100, + left: MediaQuery + .of(context) + .size + .width * 0.25, //100 + ), shape: RoundedRectangleBorder( borderRadius: - new BorderRadius.circular(18.0), + new BorderRadius.circular(18.0), side: - BorderSide(color: Color(0xff41bdbb)), + BorderSide(color: Color(0xff41bdbb)), ), child: Text( TranslationBase @@ -149,10 +193,13 @@ class DeliveryConfirmedPage extends StatelessWidget { ), ), CustomerBrief( - itemId: item.driverID, + itemId: item.patientID, customerFirstName: item.firstName, customerLastName: item.lastName, - mobileNo: item.mobileNumber), + mobileNo: item.mobileNumber, + totalPayment: item.amount, + deliveryTime: item.orderCreatedOn + ), ], ), ], diff --git a/lib/pages/delivery/information_page.dart b/lib/pages/delivery/information_page.dart index 1604d95..d6c6502 100644 --- a/lib/pages/delivery/information_page.dart +++ b/lib/pages/delivery/information_page.dart @@ -15,224 +15,267 @@ class InformationPage extends StatelessWidget { @override Widget build(BuildContext context) { -// return AppScaffold( -// body: Center( -// child: InkWell(onTap: () {}, -// child: Texts('Replay Page')), -// ), -// ); return AppScaffold( body: Container( color: Color(0xff41bdbb), - child: ListView( - children: [ - Column( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - margin: EdgeInsets.only(right: 50), - child: IconButton( - color: Colors.white, - iconSize: 50, - icon: Icon(Icons.arrow_back), - onPressed: () { - Navigator.pop(context); - }, - ), - ), - Container( - child: Text( - TranslationBase - .of(context) - .deliveryInfo, - style: TextStyle( + child: Container( + color: Color(0xff41bdbb), + child: ListView( + children: [ + Column( + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.only( + right: MediaQuery + .of(context) + .size + .width * 0.15, //50 + ), + child: IconButton( color: Colors.white, - fontSize: 20, + iconSize: 50, + icon: Icon(Icons.arrow_back), + onPressed: () { + Navigator.pop(context); + }, ), ), - ), - ], - ), - Stack( - children: [ - Container( - width: 400, - height: 500, - ), - Container( - width: 800, - height: 700, - margin: EdgeInsets.only(top: 100), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.only( - topLeft: Radius.circular(45), - topRight: Radius.circular(45)), - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox( - height: 170, - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - delivery_info_button( - btnColor: Color(0xfff44336), - btnIcon: Icon( - Icons.near_me, - size: 30, - color: Colors.white, - ), - btnName: TranslationBase - .of(context) - .location, - btnFunction: () {}, - ), - delivery_info_button( - btnColor: Colors.green, - btnIcon: Icon( - Icons.whatshot, - size: 30, - color: Colors.white, - ), - btnName: 'Whatsapp', - btnFunction: () {}, - ), - delivery_info_button( - btnColor: Colors.orangeAccent, - btnIcon: Icon( - Icons.mail_outline, - size: 30, - color: Colors.white, - ), - btnName: TranslationBase - .of(context) - .sms, - btnFunction: () {}, - ), - delivery_info_button( - btnColor: Color(0xff41bdbb), - btnIcon: Icon( - Icons.phone, - size: 30, - color: Colors.white, - ), - btnName: TranslationBase - .of(context) - .call, - btnFunction: () {}, - ), - ], + Container( + child: Text( + TranslationBase + .of(context) + .deliveryInfo, + style: TextStyle( + color: Colors.white, + fontSize: 20, ), - SizedBox( - height: 30, - ), - Container( - margin: EdgeInsets.only(left: 15, right: 15), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + ), + ), + ], + ), + Stack( + children: [ + Container( + width: MediaQuery + .of(context) + .size + .width, //400, + height: MediaQuery + .of(context) + .size + .width, //500, + ), + Container( + width: MediaQuery + .of(context) + .size + .width * 1, + //800, + height: MediaQuery + .of(context) + .size + .width * 1.5, + //700, + margin: EdgeInsets.only( + top: MediaQuery + .of(context) + .size + .width * 0.3, //100 + ), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(45), + topRight: Radius.circular(45)), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + height: MediaQuery + .of(context) + .size + .width * 0.2, //170, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, children: [ - Text( - TranslationBase + delivery_info_button( + btnColor: Color(0xfff44336), + btnIcon: Icon( + Icons.near_me, + size: 30, + color: Colors.white, + ), + btnName: TranslationBase .of(context) - .packageContent, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 20), - ), - SizedBox( - height: 20, - ), - package_content( - packageName: 'Panadol Extra 50 tablet', - packageCount: '5 box', - ), - SizedBox( - height: 10, + .location, + btnFunction: () {}, ), - package_content( - packageName: 'Xeractan 20MG 30 Capsules', - packageCount: '1 PCS', + delivery_info_button( + btnColor: Colors.green, + btnIcon: Icon( + Icons.whatshot, + size: 30, + color: Colors.white, + ), + btnName: 'Whatsapp', + btnFunction: () {}, ), - SizedBox( - height: 10, - ), - package_content( - packageName: 'Oltment for Rash unbranded 50 ml', - packageCount: '1 tube', - ), - SizedBox( - height: 10, - ), - package_content( - packageName: 'Face Mask 50 Pieces', - packageCount: '1 box', - ), - SizedBox( - height: 10, - ), - package_content( - packageName: 'Panadol Extra 50 tablet', - packageCount: '5 box', + delivery_info_button( + btnColor: Colors.orangeAccent, + btnIcon: Icon( + Icons.mail_outline, + size: 30, + color: Colors.white, + ), + btnName: TranslationBase + .of(context) + .sms, + btnFunction: () {}, ), - SizedBox( - height: 10, + delivery_info_button( + btnColor: Color(0xff41bdbb), + btnIcon: Icon( + Icons.phone, + size: 30, + color: Colors.white, + ), + btnName: TranslationBase + .of(context) + .call, + btnFunction: () {}, ), ], ), - ), - SizedBox( - height: 30, - ), - FlatButton( - color: Color(0xff41bdbb), - padding: EdgeInsets.only( - right: 100, left: 100, bottom: 15, top: 15), - shape: RoundedRectangleBorder( - borderRadius: new BorderRadius.circular(30.0), - side: BorderSide(color: Color(0xff41bdbb)), + SizedBox( + height: MediaQuery + .of(context) + .size + .width * 0.1, //30, + ), + Container( + margin: EdgeInsets.only( + left: MediaQuery + .of(context) + .size + .width * 0.05, //15, + right: MediaQuery + .of(context) + .size + .width * 0.02, //15 + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + TranslationBase + .of(context) + .packageContent, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 20), + ), + SizedBox( + height: MediaQuery + .of(context) + .size + .width * 0.05, //20, + ), + Column( + children: List.generate( + item.itemsQuantitiesList.length, + (index) { + return package_content( + packageName: item + .itemsQuantitiesList[index] + .itemName + .toString(), + //'Panadol Extra 50 tablet', + packageCount: item + .itemsQuantitiesList[index] + .quantity + .toString(), + ); + }), + ), + SizedBox( + height: MediaQuery + .of(context) + .size + .width * 0.01, //10, + ), + ], + ), ), - child: Text( - TranslationBase + SizedBox( + height: MediaQuery .of(context) - .clientReached, - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 16), + .size + .width * 0.1, //30, ), - onPressed: () { - Navigator.push( - context, MaterialPageRoute( - builder: (context) => - DeliveryConfirmedPage(item))); - }, - ), - ], + FlatButton( + color: Color(0xff41bdbb), + padding: EdgeInsets.only( + right: MediaQuery + .of(context) + .size + .width * 0.3, //100, + left: MediaQuery + .of(context) + .size + .width * 0.3, //100, + bottom: MediaQuery + .of(context) + .size + .width * 0.035, //15, + top: MediaQuery + .of(context) + .size + .width * 0.035, //15 + ), + shape: RoundedRectangleBorder( + borderRadius: new BorderRadius.circular(30.0), + side: BorderSide(color: Color(0xff41bdbb)), + ), + child: Text( + TranslationBase + .of(context) + .clientReached, + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 16), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + DeliveryConfirmedPage(item))); + }, + ), + ], + ), ), - ), - CustomerBrief( - itemId: item.driverID, - customerFirstName: item.firstName, - customerLastName: item.lastName, - mobileNo: item.mobileNumber - ), - ], - ), - ], - ), - ], + CustomerBrief( + itemId: item.patientID, + customerFirstName: item.firstName, + customerLastName: item.lastName, + mobileNo: item.mobileNumber, + totalPayment: item.amount, + deliveryTime: item.orderCreatedOn), + ], + ), + ], + ), + ], + ), ), ), ); } } - - - - - diff --git a/lib/pages/orders/pending_orders_page.dart b/lib/pages/orders/pending_orders_page.dart index d309f8e..4d265b3 100644 --- a/lib/pages/orders/pending_orders_page.dart +++ b/lib/pages/orders/pending_orders_page.dart @@ -4,6 +4,7 @@ import 'package:driverapp/core/viewModels/orders_view_model.dart'; import '../base/base_view.dart'; import 'package:flutter/cupertino.dart'; import 'package:driverapp/widgets/others/rounded_container.dart'; +import 'package:driverapp/pages/delivery/information_page.dart'; class OrdersListScreen extends StatefulWidget { @override @@ -26,28 +27,17 @@ class _OrdersListScreenState extends State { ), body: Column( children: [ - Center( - child: Text( - 'Nearest', - style: TextStyle( - color: Color(0xff30B7B9), - fontSize: 18.0, - fontWeight: FontWeight.w400), - ), - ), Expanded( child: ListView.builder( - itemCount: model.orders == null ? 0 : model.orders.length, - scrollDirection: Axis.vertical, - shrinkWrap: true, - itemBuilder: (BuildContext context, int index) { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 12.2), + shrinkWrap: true, + scrollDirection: Axis.vertical, + itemCount: model.orders == null ? 0 : model.orders.length, + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: EdgeInsets.symmetric(horizontal: 12.2), + child: InkWell( child: RoundedContainer( - height: MediaQuery.of(context).orientation == - Orientation.portrait - ? MediaQuery.of(context).size.height * 0.107 - : MediaQuery.of(context).size.height * 0.18, + height: MediaQuery.of(context).size.height * 0.109, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -57,14 +47,17 @@ class _OrdersListScreenState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( - padding: EdgeInsets.only(left: 22.0), + padding: EdgeInsets.only( + left: 10.0, bottom: 5.0), child: Image.asset( 'assets/images/location.png', height: MediaQuery.of(context).size.height * - 0.101, + 0.06, + width: MediaQuery.of(context).size.width * + 0.05, ), - ), + ) ], ), ), @@ -75,7 +68,7 @@ class _OrdersListScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: EdgeInsets.only(top: 10.0), + padding: EdgeInsets.only(top: 5.0), child: Text( model.orders[index].firstName + ' ' + @@ -86,16 +79,17 @@ class _OrdersListScreenState extends State { Text( model.orders[index].mobileNumber, style: TextStyle( - color: Color(0xff30B7B9), - fontWeight: FontWeight.w600, - fontSize: 15.0), + color: Color(0xff30B7B9), + fontWeight: FontWeight.w600, + fontSize: 15.0, + ), ), Expanded( child: Text( - 'Olaya ST, Behind kfc next to king ', + 'Olaya ST, Behind kfc next to king ,', style: TextStyle(color: Colors.black45), ), - ) + ), ], ), ), @@ -110,15 +104,15 @@ class _OrdersListScreenState extends State { radius: 28.0, child: CircleAvatar( backgroundColor: Colors.white, - maxRadius: 25.1, + maxRadius: 24.1, child: Padding( padding: const EdgeInsets.all(8.0), child: Text( '3 K.m \n away', style: TextStyle( color: Color(0xff30B7B9), - fontSize: 12.5, - fontWeight: FontWeight.w600), + fontSize: 10.5, + fontWeight: FontWeight.w400), ), ), ), @@ -130,8 +124,17 @@ class _OrdersListScreenState extends State { ], ), ), - ); - }), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + InformationPage(model.orders[index]))); + }, + ), + ); + }, + ), ), ], ), diff --git a/lib/uitl/date_uitl.dart b/lib/uitl/date_uitl.dart index db73589..e050210 100644 --- a/lib/uitl/date_uitl.dart +++ b/lib/uitl/date_uitl.dart @@ -119,4 +119,14 @@ class DateUtil { else return ""; } + + + static String convertStringToHours(String date) { + DateTime stringDate = convertStringToDate(date); + DateTime dateTime = DateTime.parse(stringDate.toString()); + String hours = dateTime.toString(); + hours = hours.substring(10, 16); + return hours; + } + } diff --git a/lib/widgets/delivery/customer_brief_card.dart b/lib/widgets/delivery/customer_brief_card.dart index 7b2fce5..8ba11ea 100644 --- a/lib/widgets/delivery/customer_brief_card.dart +++ b/lib/widgets/delivery/customer_brief_card.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; +import '../../uitl/date_uitl.dart'; import '../../uitl/translations_delegate_base.dart'; class CustomerBrief extends StatelessWidget { - final int itemId; + final String itemId; final String time; final String customerFirstName; final String customerLastName; @@ -11,16 +12,20 @@ class CustomerBrief extends StatelessWidget { final String direction; final String totalPayment; final String deliveryTime; + final double longitude; + final double latitude; CustomerBrief( {this.itemId, - this.time, - this.customerFirstName, - this.customerLastName, - this.mobileNo, - this.direction, - this.totalPayment, - this.deliveryTime}); + this.time, + this.customerFirstName, + this.customerLastName, + this.mobileNo, + this.direction, + this.totalPayment, + this.deliveryTime, + this.longitude, + this.latitude}); @override Widget build(BuildContext context) { @@ -111,15 +116,13 @@ class CustomerBrief extends StatelessWidget { Row( children: [ Text( - TranslationBase - .of(context) - .payment, + TranslationBase.of(context).payment, ), SizedBox( width: 170, ), Text( - 'SAR 70', + totalPayment.toString(), //'SAR 70', style: TextStyle(fontWeight: FontWeight.bold), ), ], @@ -130,14 +133,17 @@ class CustomerBrief extends StatelessWidget { Row( children: [ Text( - TranslationBase - .of(context) - .delivryTime, + TranslationBase.of(context).delivryTime, ), SizedBox( width: 50, ), - Text('05 Aug 20 - 10:00 AM', + Text( + '${DateUtil.getMonthDayYearDateFormatted( + DateUtil.convertStringToDate( + deliveryTime))} ${(DateUtil + .convertStringToHours(deliveryTime))}', + //'05 Aug 20 - 10:00 AM', style: TextStyle(fontWeight: FontWeight.bold)), ], ) @@ -149,4 +155,4 @@ class CustomerBrief extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/pubspec.yaml b/pubspec.yaml index 358a44e..6184287 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -67,6 +67,8 @@ dependencies: # Qr code Scanner barcode_scan: ^3.0.1 + #mape + map_launcher: ^0.12.0 @@ -96,3 +98,9 @@ flutter: - family: DriverApp fonts: - asset: lib/app-icons/fonts/DriverApp.ttf + + - family: Metropolis + fonts: + - asset: assets/fonts/Metropolis/Metropolis-Regular.otf + - asset: assets/fonts/Metropolis/Metropolis-Bold.otf + - asset: assets/fonts/Metropolis/Metropolis-Light.otf