Merge branch 'master' of gitlab.com:Cloud_Solution/driver-app into setting_branch

setting_branch
enadhilal 5 years ago
commit 7f8b4e9d22

@ -1,4 +1,5 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
/// End points /// End points
const BASE_URL = 'https://uat.hmgwebservices.com/Services'; const BASE_URL = 'https://uat.hmgwebservices.com/Services';
@ -23,3 +24,10 @@ const MAX_SMALL_SCREEN = 660;
class AppGlobal { class AppGlobal {
static BuildContext context; static BuildContext context;
} }
const LINEAR_GRADIENT = LinearGradient(
colors: [
Color(0xff49C1BC),
Color(0xff17AFB8),
],
);

@ -81,6 +81,10 @@ class AuthenticationViewModel with ChangeNotifier {
} }
logout() async { logout() async {
isLoading = false;
isError = false;
isLogin = false;
await sharedPref.clear(); await sharedPref.clear();
notifyListeners();
} }
} }

@ -3,6 +3,7 @@ import 'package:get_it/get_it.dart';
import 'core/service/authentication_service.dart'; import 'core/service/authentication_service.dart';
import 'core/service/hospital_service.dart'; import 'core/service/hospital_service.dart';
import 'core/service/orders_service.dart'; import 'core/service/orders_service.dart';
import 'core/viewModels/authentication_view_model.dart';
import 'core/viewModels/hospital_view_model.dart'; import 'core/viewModels/hospital_view_model.dart';
import 'core/viewModels/orders_view_model.dart'; import 'core/viewModels/orders_view_model.dart';
@ -17,6 +18,6 @@ void setupLocator() {
/// View Model /// View Model
locator.registerFactory(() => HospitalViewModel()); locator.registerFactory(() => HospitalViewModel());
// locator.registerFactory(() => AuthenticationViewModel()); locator.registerFactory(() => AuthenticationViewModel());
locator.registerFactory(() => OrdersViewModel()); locator.registerFactory(() => OrdersViewModel());
} }

@ -184,50 +184,50 @@ class LoginPage extends StatelessWidget {
} }
return null; return null;
}, },
onSaved: (value) { onSaved: (value) {
loginRequest.userID = loginRequest.userID = int.parse(value.trim());
int.parse(value.trim()); },
},
),
),
SizedBox(
height: 20,
),
Container(
child: TextFields(
borderRadiusValue: 6,
hintText:
TranslationBase.of(context).enterPassword,
validator: (value) {
if (value.isEmpty) {
return TranslationBase.of(context)
.pleaseEnterPassword;
}
return null;
},
onSaved: (value) {
loginRequest.password = value;
},
type: 'password',
),
), ),
SizedBox( ),
height: 25, SizedBox(
), height: 20,
Row( ),
mainAxisAlignment: MainAxisAlignment.end, Container(
children: <Widget>[ child: TextFields(
Text( borderRadiusValue: 6,
TranslationBase.of(context).forgotPassword, hintText:
style: TextStyle( TranslationBase.of(context).enterPassword,
fontSize: 14, validator: (value) {
color: Theme.of(context).primaryColor), if (value.isEmpty) {
), return TranslationBase.of(context)
], .pleaseEnterPassword;
}
return null;
},
onSaved: (value) {
loginRequest.password = value;
},
type: 'password',
), ),
], ),
), SizedBox(
height: 25,
),
//ToDo when forget page functions ready
// Row(
// mainAxisAlignment: MainAxisAlignment.end,
// children: <Widget>[
// Text(
// TranslationBase.of(context).forgotPassword,
// style: TextStyle(
// fontSize: 14,
// color: Theme.of(context).primaryColor),
// ),
// ],
// ),
],
), ),
),
], ],
), ),
), ),

@ -1,4 +1,5 @@
import 'package:barcode_scan/platform_wrapper.dart'; import 'package:barcode_scan/platform_wrapper.dart';
import 'package:driverapp/config/config.dart';
import 'package:driverapp/config/size_config.dart'; import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/core/enum/viewstate.dart'; import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart'; import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart';
@ -7,14 +8,13 @@ import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/delivery/information_page.dart'; import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/pages/orders/deliverd_orders_page.dart'; import 'package:driverapp/pages/orders/deliverd_orders_page.dart';
import 'package:driverapp/pages/orders/pending_orders_page.dart'; import 'package:driverapp/pages/orders/pending_orders_page.dart';
import 'package:driverapp/pages/setting/setting.dart'; import 'package:driverapp/pages/setting/setting_page.dart';
import 'package:driverapp/uitl/app_toast.dart'; import 'package:driverapp/uitl/app_toast.dart';
import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart';
import 'package:driverapp/uitl/utils.dart'; import 'package:driverapp/uitl/utils.dart';
import 'package:driverapp/widgets/data_display/circle-container.dart'; import 'package:driverapp/widgets/order/order_info_card.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:driverapp/widgets/others/network_base_view.dart'; import 'package:driverapp/widgets/others/network_base_view.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
@ -93,23 +93,27 @@ class _DashboardScreenState extends State<DashboardScreen> {
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
InkWell( InkWell(
child:CircleAvatar(
radius: 25.5,
backgroundColor: Color(0xff30B7B9),
child: CircleAvatar( child: CircleAvatar(
radius: 25.5,
backgroundColor: Color(0xff30B7B9), backgroundColor: Color(0xff30B7B9),
maxRadius: 26.0, child: CircleAvatar(
child: Image.asset( backgroundColor: Color(0xff30B7B9),
'assets/images/driver.png', maxRadius: 26.0,
fit: BoxFit.contain, child: Image.asset(
),), 'assets/images/driver.png',
fit: BoxFit.contain,
),
),
), ),
onTap: (){ onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) => SettingPage(
SettingPage(driverName:_authenticationViewModel.user.userName, driverID:_authenticationViewModel.user.userID))); driverName: _authenticationViewModel
.user.userName,
driverID: _authenticationViewModel
.user.userID)));
}, },
), ),
], ],
@ -133,10 +137,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: MediaQuery.of(context).size.width * 0.44, width: MediaQuery.of(context).size.width * 0.44,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient(colors: [ gradient: LINEAR_GRADIENT,
Color(0xff17AFB8),
Color(0xff49C1BC)
]),
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -243,10 +244,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient(colors: [ gradient: LINEAR_GRADIENT,
Color(0xff17AFB8),
Color(0xff49C1BC)
]),
), ),
child: InkWell( child: InkWell(
onTap: () => Navigator.push( onTap: () => Navigator.push(
@ -279,7 +277,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
), ),
), ),
Text( Text(
'5', '3',
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: fontSize:
@ -288,7 +286,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
), ),
Text( Text(
TranslationBase.of(context) TranslationBase.of(context)
.undeliveredPackages, .deliveredPackages,
style: TextStyle( style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: MediaQuery.of(context) fontSize: MediaQuery.of(context)
@ -310,8 +308,9 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: 100, width: 100,
height: 100, height: 100,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white10, color: Colors.white10,
shape: BoxShape.circle), shape: BoxShape.circle,
),
child: Column( child: Column(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.center, MainAxisAlignment.center,
@ -360,30 +359,14 @@ class _DashboardScreenState extends State<DashboardScreen> {
_scanQrAndGetPatient(context, model); _scanQrAndGetPatient(context, model);
}, },
child: Container( child: Container(
height: MediaQuery height: MediaQuery.of(context).orientation ==
.of(context) Orientation.portrait
.orientation == ? MediaQuery.of(context).size.height * 0.18
Orientation.portrait : MediaQuery.of(context).size.height * 0.30,
? MediaQuery width: MediaQuery.of(context).size.width * 0.50,
.of(context)
.size
.height * 0.18
: MediaQuery
.of(context)
.size
.height * 0.30,
width: MediaQuery
.of(context)
.size
.width * 0.50,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), borderRadius: BorderRadius.circular(15.0),
gradient: LinearGradient( gradient: LINEAR_GRADIENT,
colors: [
Hexcolor("#45B7AE"),
Hexcolor("#119FA9")
],
),
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
@ -396,32 +379,29 @@ class _DashboardScreenState extends State<DashboardScreen> {
width: MediaQuery.of(context).size.width * width: MediaQuery.of(context).size.width *
0.26, 0.26,
height: MediaQuery.of(context) height: MediaQuery.of(context)
.orientation == .orientation ==
Orientation.portrait Orientation.portrait
? MediaQuery.of(context).size.height * ? MediaQuery.of(context).size.height *
0.14 0.14
: MediaQuery.of(context).size.height * : MediaQuery.of(context).size.height *
0.28, 0.28,
fit: BoxFit.contain, fit: BoxFit.contain,
) )
], ],
), ),
Column( Column(
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceEvenly, MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Padding( Padding(
padding: EdgeInsets.only(top: 8.0), padding: EdgeInsets.only(top: 8.0),
child: Text( child: Text(
TranslationBase TranslationBase.of(context).scan,
.of(context)
.scan,
style: TextStyle( style: TextStyle(
fontSize: MediaQuery fontSize: MediaQuery.of(context)
.of(context) .orientation ==
.orientation == Orientation.landscape
Orientation.landscape
? SizeConfig.textMultiplier * 6.0 ? SizeConfig.textMultiplier * 6.0
: SizeConfig.textMultiplier * 4.0, : SizeConfig.textMultiplier * 4.0,
color: Colors.white, color: Colors.white,
@ -432,14 +412,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
Padding( Padding(
padding: EdgeInsets.only(top: 0.0), padding: EdgeInsets.only(top: 0.0),
child: Text( child: Text(
TranslationBase TranslationBase.of(context)
.of(context)
.toAddPackageToQue, .toAddPackageToQue,
style: TextStyle( style: TextStyle(
fontSize: MediaQuery fontSize: MediaQuery.of(context)
.of(context) .orientation ==
.orientation == Orientation.landscape
Orientation.landscape
? SizeConfig.textMultiplier * 3.0 ? SizeConfig.textMultiplier * 3.0
: SizeConfig.textMultiplier * 2.0, : SizeConfig.textMultiplier * 2.0,
color: Colors.white, color: Colors.white,
@ -465,8 +443,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
children: <Widget>[ children: <Widget>[
Column( Column(
children: <Widget>[ children: <Widget>[
Text( Text(TranslationBase.of(context).nearestDropOffs,
TranslationBase.of(context).nearestDropOffs,
style: TextStyle( style: TextStyle(
fontSize: 18.0, fontSize: 18.0,
color: Hexcolor("#343333"), color: Hexcolor("#343333"),
@ -492,12 +469,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
), ),
], ],
), ),
onTap: () => onTap: () => Navigator.push(
Navigator.push( context,
context, MaterialPageRoute(
MaterialPageRoute( builder: (context) => OrdersListScreen()),
builder: (context) => OrdersListScreen()), ),
),
), ),
], ],
), ),
@ -516,140 +492,15 @@ class _DashboardScreenState extends State<DashboardScreen> {
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Padding( return Padding(
padding: EdgeInsets.symmetric(horizontal: 0.2), padding: EdgeInsets.symmetric(horizontal: 0.2),
child: InkWell( child: OrderInfoCard(
child: Container( order: model.orders[index],
child: RoundedContainer( onTap: () {
showShadow: true, Navigator.push(
raduis: 25.0, context,
height: MediaQuery MaterialPageRoute(
.of(context) builder: (context) => InformationPage(
.orientation == model.orders[index])));
Orientation.portrait }),
? MediaQuery
.of(context)
.size
.height * 0.120
: MediaQuery
.of(context)
.size
.height * 0.209,
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 1,
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 15.0, top: 14.0),
child: Image.asset(
'assets/images/location.png',
height: MediaQuery
.of(context)
.orientation ==
Orientation.portrait
? MediaQuery
.of(context)
.size
.height *
0.06
: MediaQuery
.of(context)
.size
.height *
0.11,
width: MediaQuery
.of(context)
.orientation ==
Orientation.portrait
? MediaQuery
.of(context)
.size
.width *
0.05
: MediaQuery
.of(context)
.size
.width *
0.09,
),
)
],
),
),
if (model.orders.length != 0)
Expanded(
flex: 5,
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20.0),
child: Text(
model.orders[index].firstName +
' ' +
model.orders[index].lastName,
style: TextStyle(
fontSize: 18.0,
color: Hexcolor("#343333"),
fontWeight: FontWeight.bold),
),
),
Text(
model.orders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0,
),
),
Expanded(
child: Text(
model.orders[index].orderID
.toString(),
style: TextStyle(
fontSize: 15.0,
fontWeight: FontWeight.w400,
letterSpacing: 8.0),
),
),
],
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: CircleContainer(
borderWidth: 1.5,
child: Text(
model.orders[index].distanceInKilometers
.toString() +
'\nK.m\naway',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
),
),
],
),
),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
InformationPage(model.orders[index])));
},
),
); );
}, },
), ),
@ -680,3 +531,5 @@ class _DashboardScreenState extends State<DashboardScreen> {
} }
} }
} }

@ -88,10 +88,10 @@ class DeliveryConfirmedPage extends StatelessWidget {
), ),
], ],
), ),
Container( // Container(
width: MediaQuery.of(context).size.width, // width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width, // height: MediaQuery.of(context).size.width,
), // ),
Container( Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width * 1.0, height: MediaQuery.of(context).size.width * 1.0,
@ -105,12 +105,15 @@ class DeliveryConfirmedPage extends StatelessWidget {
topRight: Radius.circular(80)), topRight: Radius.circular(80)),
), ),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MediaQuery.of(context).orientation ==
Orientation.landscape
? MainAxisAlignment.center
: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Container( Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
bottom: MediaQuery.of(context).size.width * 0.09, bottom: MediaQuery.of(context).size.width * 0.00,
), ),
child: Column( child: Column(
children: <Widget>[ children: <Widget>[

File diff suppressed because one or more lines are too long

@ -1,11 +1,9 @@
import 'package:driverapp/core/viewModels/orders_view_model.dart'; import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/delivery/information_page.dart'; import 'package:driverapp/widgets/order/order_info_card.dart';
import 'package:driverapp/widgets/data_display/circle-container.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:driverapp/widgets/others/rounded_container.dart'; import 'package:driverapp/widgets/others/network_base_view.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import '../base/base_view.dart'; import '../base/base_view.dart';
@ -29,123 +27,23 @@ class _DeliverdOrdersPageState extends State<DeliverdOrdersPage> {
SizedBox( SizedBox(
height: 20, height: 20,
), ),
Expanded( NetworkBaseView(
child: ListView.builder( baseViewModel: model,
shrinkWrap: true, child: Expanded(
scrollDirection: Axis.vertical, child: ListView.builder(
itemCount: model.deliverdOrders == null shrinkWrap: true,
? 0 scrollDirection: Axis.vertical,
: model.deliverdOrders.length, itemCount: model.deliverdOrders == null
itemBuilder: (BuildContext context, int index) { ? 0
return Padding( : model.deliverdOrders.length,
padding: EdgeInsets.symmetric(horizontal: 12.2), itemBuilder: (BuildContext context, int index) {
child: InkWell( return Padding(
child: RoundedContainer( padding: EdgeInsets.symmetric(horizontal: 12.2),
raduis: 25.0, child: OrderInfoCard(
height: MediaQuery.of(context).orientation == order: model.deliverdOrders[index],
Orientation.portrait ));
? MediaQuery.of(context).size.height * 0.120 },
: MediaQuery.of(context).size.height * 0.209, ),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding:
EdgeInsets.only(left: 15.0, top: 14.0),
child: Image.asset(
'assets/images/location.png',
height: MediaQuery.of(context)
.orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height *
0.06
: MediaQuery.of(context).size.height *
0.11,
width: MediaQuery.of(context)
.orientation ==
Orientation.portrait
? MediaQuery.of(context).size.width *
0.05
: MediaQuery.of(context).size.width *
0.09,
),
)
],
),
),
if (model.orders.length != 0)
Expanded(
flex: 5,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20.0),
child: Text(
model.deliverdOrders[index].firstName +
' ' +
model.orders[index].lastName,
style: TextStyle(
fontSize: 18.0,
color: Hexcolor("#343333"),
fontWeight: FontWeight.bold),
),
),
Text(
model.deliverdOrders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0,
),
),
Expanded(
child: Text(
model.deliverdOrders[index].orderID
.toString(),
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w400,
letterSpacing: 8.0),
),
),
],
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: CircleContainer(
child: Text(
model.deliverdOrders[index]
.distanceInKilometers
.toString() +
'\nK.m\naway',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
),
),
],
),
),
// onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) =>
// InformationPage(model.orders[index])));
// },
),
);
},
), ),
), ),
], ],

@ -1,12 +1,9 @@
import 'package:driverapp/core/viewModels/orders_view_model.dart'; import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/pages/delivery/information_page.dart';
import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart';
import 'package:driverapp/widgets/data_display/circle-container.dart'; import 'package:driverapp/widgets/order/order_info_card.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import '../base/base_view.dart'; import '../base/base_view.dart';
@ -38,109 +35,7 @@ class _OrdersListScreenState extends State<OrdersListScreen> {
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Padding( return Padding(
padding: EdgeInsets.symmetric(horizontal: 12.2), padding: EdgeInsets.symmetric(horizontal: 12.2),
child: InkWell( child: OrderInfoCard(order: model.orders[index]),
child: RoundedContainer(
raduis: 25.0,
height: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height * 0.120
: MediaQuery.of(context).size.height * 0.209,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding:
EdgeInsets.only(left: 15.0, top: 14.0),
child: Image.asset(
'assets/images/location.png',
height: MediaQuery.of(context)
.orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height *
0.06
: MediaQuery.of(context).size.height *
0.11,
width: MediaQuery.of(context)
.orientation ==
Orientation.portrait
? MediaQuery.of(context).size.width *
0.05
: MediaQuery.of(context).size.width *
0.09,
),
)
],
),
),
if (model.orders.length != 0)
Expanded(
flex: 5,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20.0),
child: Text(
model.orders[index].firstName +
' ' +
model.orders[index].lastName,
style: TextStyle(
fontSize: 18.0,
color: Hexcolor("#343333"),
fontWeight: FontWeight.bold),
),
),
Text(
model.orders[index].mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0,
),
),
Expanded(
child: Text(
model.orders[index].orderID.toString(),
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w400,
letterSpacing: 8.0),
),
),
],
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: CircleContainer(
child: Text(
model.orders[index].distanceInKilometers
.toString() +
'\nK.m\naway',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
),
),
],
),
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
InformationPage(model.orders[index])));
},
),
); );
}, },
), ),

@ -1,11 +1,12 @@
import 'package:driverapp/core/viewModels/authentication_view_model.dart'; import 'package:driverapp/core/viewModels/authentication_view_model.dart';
import 'package:driverapp/pages/authentication/login_page.dart';
import 'package:driverapp/uitl/translations_delegate_base.dart'; import 'package:driverapp/uitl/translations_delegate_base.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart'; import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../root_page.dart';
class SettingPage extends StatelessWidget { class SettingPage extends StatelessWidget {
final String driverName; //_authenticationViewModel.user.userName final String driverName; //_authenticationViewModel.user.userName
final int driverID; final int driverID;
@ -79,11 +80,9 @@ class SettingPage extends StatelessWidget {
InkWell( InkWell(
onTap: () async { onTap: () async {
await _authenticationViewModel.logout(); await _authenticationViewModel.logout();
Navigator.push( Navigator.pushReplacement(
context, context,
MaterialPageRoute( MaterialPageRoute(builder: (context) => RootPage()),
builder: (context) => LoginPage()
),
); );
}, },
child: Column( child: Column(

@ -49,4 +49,16 @@ class Utils {
LocationData currentLocation = await location.getLocation(); LocationData currentLocation = await location.getLocation();
return currentLocation; return currentLocation;
} }
static formatName(String name) {
List<String> names = name.split(" ");
List<String> formattedNamesList = [];
names.forEach((name) {
name = name.toLowerCase();
name = name[0].toUpperCase() + name.substring(1);
formattedNamesList.add(name);
});
return formattedNamesList.join(' ');
}
} }

@ -1,3 +1,4 @@
import 'package:driverapp/config/config.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
@ -13,19 +14,18 @@ import 'package:hexcolor/hexcolor.dart';
/// [borderColor] the button border color /// [borderColor] the button border color
/// [noBorderRadius] remove border radius /// [noBorderRadius] remove border radius
class SecondaryButton extends StatefulWidget { class SecondaryButton extends StatefulWidget {
SecondaryButton( SecondaryButton({Key key,
{Key key, this.label = "",
this.label = "", this.icon,
this.icon, this.iconOnly = false,
this.iconOnly = false, this.color,
this.color, this.textColor,
this.textColor, this.onTap,
this.onTap, this.loading: false,
this.loading: false, this.small = false,
this.small = false, this.disabled = false,
this.disabled = false, this.borderColor,
this.borderColor, this.noBorderRadius = false})
this.noBorderRadius = false})
: super(key: key); : super(key: key);
final String label; final String label;
@ -148,7 +148,7 @@ class _SecondaryButtonState extends State<SecondaryButton>
decoration: BoxDecoration( decoration: BoxDecoration(
border: widget.borderColor != null border: widget.borderColor != null
? Border.all( ? Border.all(
color: widget.borderColor.withOpacity(0.1), width: 2.0) color: widget.borderColor.withOpacity(0.1), width: 2.0)
: null, : null,
borderRadius: BorderRadius.all(Radius.circular(100.0)), borderRadius: BorderRadius.all(Radius.circular(100.0)),
boxShadow: [ boxShadow: [
@ -191,14 +191,8 @@ class _SecondaryButtonState extends State<SecondaryButton>
height: MediaQuery.of(context).size.width * 2.2, height: MediaQuery.of(context).size.width * 2.2,
decoration: BoxDecoration( decoration: BoxDecoration(
shape: BoxShape.circle, shape: BoxShape.circle,
gradient: widget.color != null gradient:
? null widget.color != null ? null : LINEAR_GRADIENT,
: LinearGradient(
colors: [
Hexcolor("#45B7AE"),
Hexcolor("#119FA9")
],
),
color: widget.color != null color: widget.color != null
? widget.color ? widget.color
: Hexcolor("#000000"), : Hexcolor("#000000"),
@ -226,29 +220,29 @@ class _SecondaryButtonState extends State<SecondaryButton>
children: <Widget>[ children: <Widget>[
widget.loading widget.loading
? Padding( ? Padding(
padding: EdgeInsets.all(2.6), padding: EdgeInsets.all(2.6),
child: SizedBox( child: SizedBox(
height: 19.0, height: 19.0,
width: 19.0, width: 19.0,
child: CircularProgressIndicator( child: CircularProgressIndicator(
backgroundColor: Colors.white, backgroundColor: Colors.white,
valueColor: AlwaysStoppedAnimation<Color>( valueColor: AlwaysStoppedAnimation<Color>(
Colors.grey[300], Colors.grey[300],
), ),
), ),
), ),
) )
: Padding( : Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
bottom: widget.small ? 4.0 : 2.0), bottom: widget.small ? 4.0 : 2.0),
child: Text(widget.label, child: Text(widget.label,
style: TextStyle( style: TextStyle(
color: widget.textColor != null color: widget.textColor != null
? widget.textColor ? widget.textColor
: Colors.white, : Colors.white,
fontSize: 17.0, fontSize: 17.0,
fontFamily: "WorkSans")), fontFamily: "WorkSans")),
) )
], ],
) )
], ],

@ -6,7 +6,7 @@ class CircleContainer extends StatelessWidget {
{this.child, {this.child,
this.color = Colors.white, this.color = Colors.white,
this.borderColor, this.borderColor,
this.borderWidth = 1.5, this.borderWidth = 2,
this.onTap}); this.onTap});
final Widget child; final Widget child;

@ -1,6 +1,7 @@
import 'package:driverapp/widgets/data_display/circle-container.dart';
import 'package:flutter/material.dart';
import 'package:driverapp/config/size_config.dart'; import 'package:driverapp/config/size_config.dart';
import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart';
import 'package:flutter/material.dart';
import '../../uitl/date_uitl.dart'; import '../../uitl/date_uitl.dart';
import '../../uitl/translations_delegate_base.dart'; import '../../uitl/translations_delegate_base.dart';
@ -75,14 +76,8 @@ class CustomerBriefCard extends StatelessWidget {
Expanded( Expanded(
child: Padding( child: Padding(
padding: EdgeInsets.all(8.0), padding: EdgeInsets.all(8.0),
child: CircleContainer( child: DistanceInKilometers(
child: Text( distanceInKilometers: 0.0,
'0 K.m\naway',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
), ),
), ),
), ),

@ -0,0 +1,44 @@
import 'package:driverapp/widgets/data_display/circle-container.dart';
import 'package:flutter/material.dart';
class DistanceInKilometers extends StatelessWidget {
const DistanceInKilometers({
@required this.distanceInKilometers,
Key key,
}) : super(key: key);
final dynamic distanceInKilometers;
@override
Widget build(BuildContext context) {
return CircleContainer(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
distanceInKilometers.toString(),
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
Text(
'K.m',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
Text(
'away',
style: TextStyle(
color: Color(0xff42B6AD),
fontWeight: FontWeight.w800,
fontStyle: FontStyle.normal),
),
],
),
);
}
}

@ -27,4 +27,4 @@ class packageContent extends StatelessWidget {
], ],
); );
} }
} }

@ -0,0 +1,100 @@
import 'package:driverapp/uitl/utils.dart';
import 'package:driverapp/widgets/delivery/distance_in_kilometers.dart';
import 'package:driverapp/widgets/others/rounded_container.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class OrderInfoCard extends StatelessWidget {
const OrderInfoCard({Key key, this.order, this.onTap}) : super(key: key);
final dynamic order;
final Function onTap;
@override
Widget build(BuildContext context) {
return InkWell(
child: Container(
child: RoundedContainer(
showShadow: true,
raduis: 25.0,
height: MediaQuery.of(context).orientation == Orientation.portrait
? MediaQuery.of(context).size.height * 0.120
: MediaQuery.of(context).size.height * 0.209,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 15.0, top: 14.0),
child: Image.asset(
'assets/images/location.png',
height: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.height * 0.06
: MediaQuery.of(context).size.height * 0.11,
width: MediaQuery.of(context).orientation ==
Orientation.portrait
? MediaQuery.of(context).size.width * 0.05
: MediaQuery.of(context).size.width * 0.09,
),
)
],
),
),
Expanded(
flex: 5,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20.0),
child: Text(
Utils.formatName(
order.firstName + ' ' + order.lastName),
style: TextStyle(
fontSize: 18.0,
color: Hexcolor("#343333"),
fontWeight: FontWeight.bold),
),
),
Text(
order.mobileNumber,
style: TextStyle(
color: Color(0xff30B7B9),
fontWeight: FontWeight.w600,
fontSize: 15.0,
),
),
Expanded(
child: Text(
order.orderID.toString(),
style: TextStyle(
fontSize: 15.0,
fontWeight: FontWeight.w400,
letterSpacing: 8.0),
),
),
],
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: DistanceInKilometers(
distanceInKilometers: order.distanceInKilometers,
),
),
],
),
),
),
onTap: () {
onTap();
},
);
}
}

@ -17,17 +17,17 @@ class AppScaffold extends StatelessWidget {
final Color arrowColor; final Color arrowColor;
final Color appBarColor; final Color appBarColor;
AppScaffold( AppScaffold({
{@required this.body, @required this.body,
this.appBarTitle = '', this.appBarTitle = '',
this.isLoading = false, this.isLoading = false,
this.isShowAppBar = false, this.isShowAppBar = false,
this.baseViewModel, this.baseViewModel,
this.bottomSheet, this.bottomSheet,
this.titleColor, this.titleColor,
this.arrowColor, this.arrowColor,
this.appBarColor, this.appBarColor,
}); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -46,14 +46,16 @@ class AppScaffold extends StatelessWidget {
headline6: TextStyle( headline6: TextStyle(
color: titleColor ?? Colors.white, color: titleColor ?? Colors.white,
fontWeight: FontWeight.bold), fontWeight: FontWeight.bold),
), ),
title: Text(appBarTitle.toUpperCase()), title: Text(appBarTitle.toUpperCase()),
leading: Builder( leading: Builder(
builder: (BuildContext context) { builder: (BuildContext context) {
return ArrowBack(arrowColor: arrowColor,); return ArrowBack(
}, arrowColor: arrowColor,
), );
centerTitle: true, },
),
centerTitle: true,
// actions: <Widget>[ // actions: <Widget>[
// IconButton( // IconButton(
// icon: Icon(FontAwesomeIcons.home), // icon: Icon(FontAwesomeIcons.home),
@ -63,14 +65,15 @@ class AppScaffold extends StatelessWidget {
// }, // },
// ), // ),
// ], // ],
) )
: null, : null,
body: baseViewModel != null body: baseViewModel != null
? NetworkBaseView( ? NetworkBaseView(
child: buildBodyWidget(), child: buildBodyWidget(),
baseViewModel: baseViewModel, baseViewModel: baseViewModel,
) )
: buildBodyWidget(), bottomSheet: bottomSheet, : buildBodyWidget(),
bottomSheet: bottomSheet,
), ),
); );
} }

Loading…
Cancel
Save