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

 Conflicts:
	lib/core/service/orders_service.dart
	lib/pages/dashboard/dashboard_screen.dart
design_update
hussam al-habibeh 5 years ago
commit 237f0b12a8

@ -161,17 +161,59 @@
]
},
{
"uid": "3a5cc972b7f3f2ab8a20e22287b5598b",
"css": "group-169",
"code": 59412,
"uid": "f454f0b074a5a3194dbf7409c724a0e9",
"css": "call",
"code": 59408,
"src": "custom_icons",
"selected": false,
"selected": true,
"svg": {
"path": "M1185.4 990.2H156.1C78 990.2 9.8 926.8 9.8 843.9V156.1C9.8 78 73.2 9.8 156.1 9.8H1185.4C1263.4 9.8 1331.7 73.2 1331.7 156.1V848.8C1331.7 926.8 1268.3 990.2 1185.4 990.2ZM902.4 619.5L824.4 541.5C804.9 522 780.5 522 761 541.5 761 541.5 761 541.5 761 541.5L717.1 585.4C712.2 590.2 707.3 590.2 702.4 585.4 678 570.7 653.7 551.2 634.1 526.8 614.6 507.3 600 487.8 580.5 468.3 575.6 463.4 580.5 458.5 580.5 453.7L634.1 409.8C653.7 390.2 653.7 365.9 634.1 346.3L556.1 268.3C536.6 253.7 512.2 253.7 492.7 268.3L468.3 297.6C429.3 331.7 419.5 390.2 434.1 439 443.9 473.2 463.4 507.3 482.9 541.5 502.4 570.7 522 595.1 546.3 619.5 570.7 648.8 604.9 668.3 634.1 692.7 668.3 717.1 707.3 731.7 746.3 741.5 756.1 746.3 765.9 746.3 780.5 746.3 819.5 746.3 853.7 731.7 878 707.3L897.6 687.8C922 663.4 922 634.1 902.4 619.5Z",
"width": 1337
},
"search": [
"call"
]
},
{
"uid": "ecb856dd748af0bc0fca50e5c00802b2",
"css": "whatsapp",
"code": 59407,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M1180.5 990.2H151.2C73.2 990.2 4.9 926.8 4.9 843.9V151.2C4.9 73.2 68.3 4.9 151.2 4.9H1180.5C1258.5 4.9 1326.8 68.3 1326.8 151.2V843.9C1326.8 926.8 1263.4 990.2 1180.5 990.2ZM448.8 722L478 609.8C458.5 575.6 448.8 536.6 448.8 502.4 448.8 380.5 546.3 282.9 668.3 282.9 726.8 282.9 780.5 307.3 824.4 346.3 863.4 385.4 887.8 443.9 887.8 502.4 887.8 624.4 790.2 722 668.3 722 668.3 722 668.3 722 668.3 722H668.3C629.3 722 595.1 712.2 565.9 697.6L448.8 722ZM570.7 648.8L575.6 653.7C604.9 668.3 634.1 678 668.3 678H668.3C770.7 678 848.8 595.1 848.8 497.6 848.8 448.8 829.3 404.9 795.1 370.7 761 336.6 717.1 317.1 668.3 317.1 565.9 317.1 487.8 400 487.8 497.6 487.8 531.7 497.6 565.9 517.1 595.1L522 600 502.4 668.3 570.7 648.8ZM448.8 722L478 609.8C458.5 575.6 448.8 536.6 448.8 502.4 448.8 380.5 546.3 282.9 668.3 282.9 726.8 282.9 780.5 307.3 824.4 346.3 863.4 385.4 887.8 443.9 887.8 502.4 887.8 624.4 790.2 722 668.3 722 668.3 722 668.3 722 668.3 722H668.3C629.3 722 595.1 712.2 565.9 697.6L448.8 722ZM570.7 648.8L575.6 653.7C604.9 668.3 634.1 678 668.3 678H668.3C770.7 678 848.8 595.1 848.8 497.6 848.8 448.8 829.3 404.9 795.1 370.7 761 336.6 717.1 317.1 668.3 317.1 565.9 317.1 487.8 400 487.8 497.6 487.8 531.7 497.6 565.9 517.1 595.1L522 600 502.4 668.3 570.7 648.8ZM614.6 404.9C609.8 395.1 604.9 395.1 600 395.1 595.1 395.1 595.1 395.1 590.2 395.1 585.4 395.1 580.5 395.1 575.6 400 570.7 404.9 556.1 419.5 556.1 443.9 556.1 473.2 575.6 497.6 580.5 502.4 585.4 507.3 619.5 561 673.2 585.4 717.1 604.9 726.8 600 736.6 600 746.3 600 770.7 585.4 775.6 575.6 780.5 561 780.5 551.2 780.5 551.2 780.5 551.2 775.6 546.3 770.7 546.3 765.9 541.5 736.6 531.7 731.7 526.8 726.8 526.8 722 522 717.1 531.7 712.2 536.6 702.4 551.2 697.6 551.2 692.7 556.1 692.7 556.1 687.8 551.2 682.9 546.3 663.4 541.5 643.9 522 629.3 507.3 614.6 487.8 614.6 482.9 609.8 478 614.6 473.2 614.6 473.2 619.5 468.3 624.4 458.5 629.3 453.7 629.3 448.8 629.3 448.8 629.3 443.9 629.3 443.9 619.5 419.5 614.6 404.9Z",
"width": 1337
},
"search": [
"whatsapp"
]
},
{
"uid": "79e200375e576071502c28bb9054ee19",
"css": "message",
"code": 59406,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "",
"width": 663
"path": "M1180.5 990.2H151.2C73.2 990.2 4.9 926.8 4.9 843.9V151.2C4.9 73.2 68.3 4.9 151.2 4.9H1180.5C1258.5 4.9 1326.8 68.3 1326.8 151.2V843.9C1326.8 926.8 1263.4 990.2 1180.5 990.2ZM873.2 273.2H463.4C434.1 273.2 409.8 297.6 409.8 326.8V595.1C409.8 624.4 434.1 648.8 463.4 648.8H595.1C595.1 648.8 600 648.8 600 648.8L648.8 712.2C653.7 717.1 658.5 722 668.3 722H668.3C678 722 682.9 717.1 687.8 712.2L736.6 648.8C736.6 648.8 741.5 648.8 741.5 648.8H873.2C902.4 648.8 926.8 624.4 926.8 595.1V326.8C926.8 297.6 902.4 273.2 873.2 273.2L873.2 273.2ZM897.6 595.1C897.6 595.1 897.6 600 897.6 600L741.5 463.4 897.6 331.7 897.6 595.1ZM873.2 302.4C878 302.4 882.9 302.4 887.8 307.3L682.9 473.2C673.2 482.9 658.5 482.9 648.8 473.2L448.8 307.3C453.7 307.3 458.5 302.4 463.4 302.4L873.2 302.4ZM439 600C439 600 439 595.1 439 595.1V336.6L595.1 468.3 439 600ZM712.2 634.1L668.3 692.7 624.4 634.1C619.5 624.4 604.9 619.5 595.1 619.5H463.4L619.5 482.9 634.1 492.7C643.9 502.4 658.5 507.3 668.3 507.3 682.9 507.3 692.7 502.4 702.4 492.7L717.1 482.9 873.2 619.5H741.5C731.7 619.5 717.1 624.4 712.2 634.1L712.2 634.1Z",
"width": 1337
},
"search": [
"group-169"
"message"
]
},
{
"uid": "5c38c3d86ba300ea6939a53b5e4467fa",
"css": "location-1",
"code": 59392,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M1180.5 990.2H151.2C73.2 990.2 4.9 926.8 4.9 843.9V151.2C4.9 73.2 68.3 4.9 151.2 4.9H1180.5C1258.5 4.9 1326.8 68.3 1326.8 151.2V843.9C1326.8 926.8 1263.4 990.2 1180.5 990.2ZM863.4 443.9L487.8 287.8C478 282.9 468.3 287.8 463.4 292.7 458.5 297.6 453.7 307.3 458.5 317.1L600 697.6C604.9 707.3 609.8 712.2 619.5 712.2 629.3 712.2 639 707.3 639 697.6L702.4 551.2C707.3 546.3 707.3 541.5 717.1 541.5L863.4 482.9C873.2 482.9 878 473.2 878 463.4 878 458.5 873.2 448.8 863.4 443.9Z",
"width": 1337
},
"search": [
"location"
]
}
]

@ -21,26 +21,19 @@ class DriverApp {
static const _kFontFam = 'DriverApp';
static const _kFontPkg = null;
static const IconData logo =
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData closed_box =
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData location =
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData open_box =
IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData phone_call =
IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr =
IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData not_available =
IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData rejected_icon =
IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData not_reachable_icon =
IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData group_74 =
IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData deliverd_icon =
IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData location_1 = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData logo = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData closed_box = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData location = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData open_box = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData phone_call = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData not_available = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData rejected_icon = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData not_reachable_icon = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData group_74 = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData message = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData whatsapp = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData call = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData deliverd_icon = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
}

Binary file not shown.

@ -15,6 +15,7 @@ const GET_ALL_DELIVERD_ORDER =
/// Body Constant
const CHANNEL = 9;
const VERSION_ID = 8.3;
/// design constant
const MAX_SMALL_SCREEN = 660;

@ -33,9 +33,9 @@ class BaseAppClient {
body['UserID'] = '${doctorProfile?.userID}';
body['TokenID'] = token;
body['MobileNo'] = doctorProfile?.mobileNumber;
body['Channel'] = CHANNEL;
}
body['Channel'] = CHANNEL;
body['VersionID'] = VERSION_ID;
print("URL : $url");
print("Body : ${json.encode(body)}");

@ -1,5 +1,4 @@
import 'package:driverapp/config/config.dart';
import 'package:driverapp/core/model/orders/deliverd_order_req_model.dart';
import 'package:driverapp/core/model/orders/next_order_request_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_req_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_res_model.dart';
@ -10,12 +9,9 @@ import 'package:driverapp/core/service/base_service.dart';
class OrdersService extends BaseService {
List<PendingOrdersRes> _orders = List();
List<PendingOrdersRes> _nextOrdersList = List();
List<DeliverdOrderModel> _deliverdOrderList = List();
List<PendingOrdersRes> get orders => _orders;
List<DeliverdOrderModel> get deliverdOrderList => _deliverdOrderList;
List<PendingOrdersRes> get nextOrdersList => _nextOrdersList;
bool isOrderInserted;
bool isOrderStatusUpdated;
@ -26,14 +22,6 @@ class OrdersService extends BaseService {
pageIndex: 0,
);
DeliverdOrderModel _requestGetDeliverdOrders = DeliverdOrderModel(
searchKey: "",
pageSize: 0,
pageIndex: 0,
latitude: "24.640000",
longitude: "46.753000",
);
Future getPendingOrders() async {
hasError = false;
try {
@ -108,25 +96,4 @@ class OrdersService extends BaseService {
throw e;
}
}
Future getDeliverdList() async {
hasError = false;
try {
await baseAppClient.post(GET_ALL_DELIVERD_ORDER,
onSuccess: (dynamic response, int statusCode) {
_deliverdOrderList.clear();
response['PatientER_Delivery_GetAllDeliverdOrderList'].forEach((order) {
_deliverdOrderList.add(DeliverdOrderModel.fromJson(order));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: _requestGetPendingOrders.toJson());
} catch (e) {
hasError = true;
super.error = error;
throw e;
}
}
}

@ -1,22 +1,57 @@
import 'package:driverapp/config/shared_pref_kay.dart';
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/authentication/authenticated_user.dart';
import 'package:driverapp/core/model/authentication/login_request.dart';
import 'package:driverapp/core/service/authentication_service.dart';
import 'package:driverapp/core/service/client/base_app_client.dart';
import 'package:driverapp/core/viewModels/base_view_model.dart';
import 'package:flutter/cupertino.dart';
import '../../locator.dart';
enum APP_STATUS { LOADING, UNAUTHENTICATED, AUTHENTICATED }
class AuthenticationViewModel extends BaseViewModel {
AuthenticationService _authenticationService = locator<AuthenticationService>();
class AuthenticationViewModel with ChangeNotifier {
AuthenticationService _authenticationService =
locator<AuthenticationService>();
AuthenticatedUser user;
bool isLogin = false;
bool isLoading = false;
bool isError = false;
String error;
AuthenticationViewModel() {
getUser();
}
getUser() async {
if (user == null) {
isLoading = true;
notifyListeners();
var userProfile = await sharedPref.getObject(USER_PROFILE);
if (userProfile != null) {
user = AuthenticatedUser.fromJson(
await sharedPref.getObject(USER_PROFILE));
isLogin = true;
isLoading = false;
notifyListeners();
} else {
isLogin = false;
isLoading = false;
notifyListeners();
}
}
// else
// {
// isLogin = true;
// isLoading = false;
// notifyListeners();
// }
}
APP_STATUS get status {
if (state == ViewState.Busy || state == ViewState.BusyLocal) {
if (isLoading) {
return APP_STATUS.LOADING;
} else {
if ( user != null) {
if (isLogin) {
return APP_STATUS.AUTHENTICATED;
} else {
return APP_STATUS.UNAUTHENTICATED;
@ -25,16 +60,20 @@ class AuthenticationViewModel extends BaseViewModel {
}
login(LoginRequest loginRequest) async {
setState(ViewState.BusyLocal);
isLoading = true;
notifyListeners();
await _authenticationService.login(loginRequest);
if (_authenticationService.hasError) {
error = _authenticationService.error;
setState(ViewState.ErrorLocal);
isLoading = false;
isError = true;
notifyListeners();
} else {
sharedPref.setObject(
USER_PROFILE, _authenticationService.authenticatedUser);
sharedPref.setString(TOKEN, _authenticationService.token);
setState(ViewState.Idle);
user = _authenticationService.authenticatedUser;
notifyListeners();
}
}
}

@ -5,6 +5,7 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
import 'config/size_config.dart';
import 'core/viewModels/authentication_view_model.dart';
import 'core/viewModels/project_view_model.dart';
import 'locator.dart';
@ -25,7 +26,10 @@ class MyApp extends StatelessWidget {
providers: [
ChangeNotifierProvider<ProjectViewModel>(
create: (context) => ProjectViewModel(),
)
),
ChangeNotifierProvider<AuthenticationViewModel>(
create: (context) => AuthenticationViewModel(),
),
],
child: Consumer<ProjectViewModel>(
builder: (context, projectProvider, child) => MaterialApp(

@ -1,9 +1,7 @@
import 'package:driverapp/app-icons/driver_app_icons.dart';
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/model/authentication/login_request.dart';
import 'package:driverapp/core/viewModels/authentication_view_model.dart';
import 'package:driverapp/core/viewModels/project_view_model.dart';
import 'package:driverapp/pages/base/base_view.dart';
import 'package:driverapp/pages/dashboard/dashboard_screen.dart';
import 'package:driverapp/uitl/translations_delegate_base.dart';
import 'package:driverapp/uitl/utils.dart';
@ -21,14 +19,15 @@ class LoginPage extends StatelessWidget {
LoginRequest loginRequest = LoginRequest();
final loginFormKey = GlobalKey<FormState>();
ProjectViewModel projectViewModel;
AuthenticationViewModel authenticationViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
authenticationViewModel = Provider.of(context);
return AnimatedSwitcher(
duration: Duration(microseconds: 350),
child: BaseView<AuthenticationViewModel>(
builder: (_, model, widget) => AppScaffold(
child: AppScaffold(
isShowAppBar: false,
body: SingleChildScrollView(
child: Center(
@ -229,26 +228,26 @@ class LoginPage extends StatelessWidget {
SizedBox(
height: 10,
),
Container(
margin: EdgeInsets.all(10),
height: MediaQuery.of(context).size.height * 0.22,
child: Column(
children: <Widget>[
SecondaryButton(
label: TranslationBase.of(context).login,
onTap: () {
login(model, context);
},
disabled: model.state == ViewState.BusyLocal,
loading: model.state == ViewState.BusyLocal,
),
SizedBox(
height: 30,
),
],
))
],
),
Container(
margin: EdgeInsets.all(10),
height: MediaQuery.of(context).size.height * 0.22,
child: Column(
children: <Widget>[
SecondaryButton(
label: TranslationBase.of(context).login,
onTap: () {
login(context);
},
disabled: authenticationViewModel.isLoading,
loading: authenticationViewModel.isLoading,
),
SizedBox(
height: 30,
),
],
))
],
),
),
),
@ -256,14 +255,15 @@ class LoginPage extends StatelessWidget {
);
}
login(AuthenticationViewModel model, BuildContext context) async {
login(BuildContext context) async {
if (loginFormKey.currentState.validate()) {
loginFormKey.currentState.save();
await model.login(loginRequest);
if (model.state == ViewState.ErrorLocal) {
Utils.showErrorToast(model.error);
await authenticationViewModel.login(loginRequest);
if (authenticationViewModel.isError) {
Utils.showErrorToast(authenticationViewModel.error);
} else {
Navigator.push(context,
Navigator.push(
context,
MaterialPageRoute(builder: (context) => DashboardScreen()));
}
}

File diff suppressed because it is too large Load Diff

@ -22,46 +22,40 @@ class DeliveryConfirmedPage extends StatelessWidget {
Widget build(BuildContext context) {
return BaseView<OrdersViewModel>(
builder: (_, model, w) => AppScaffold(
body: SafeArea(
child: Container(
color: Theme.of(context).primaryColor,
child: ListView(
children: <Widget>[
Column(
isShowAppBar: true,
appBarColor: Theme.of(context).primaryColor,
arrowColor: Colors.white,
titleColor: Colors.white,
body: SafeArea(
child: Container(
color: Theme.of(context).primaryColor,
child: ListView(
children: <Widget>[
Stack(
children: <Widget>[
Column(
children: <Widget>[
Container(
child: Container(
alignment: Alignment.topLeft,
child: IconButton(
color: Colors.white,
iconSize: 40,
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(context);
},
),
),
),
Container(
child: Column(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width * 0.7,
padding: EdgeInsets.only(
top: MediaQuery.of(context).size.width * 0.2,
),
decoration: BoxDecoration(
color: Colors.white10,
shape: BoxShape.circle),
child: Column(
children: <Widget>[
Icon(
Icons.check_circle,
color: Colors.white,
size: 60,
child: Column(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width * 0.7,
padding: EdgeInsets.only(
top: MediaQuery.of(context).size.width * 0.12,
),
decoration: BoxDecoration(
color: Colors.white10, shape: BoxShape.circle),
child: Column(
children: <Widget>[
Icon(
Icons.check_circle,
color: Colors.white,
size: 75,
),
SizedBox(
height:
MediaQuery.of(context).size.width * 0.03,
),
Text(
TranslationBase.of(context).deliveryInfo,
@ -70,102 +64,101 @@ class DeliveryConfirmedPage extends StatelessWidget {
fontSize: 20,
fontWeight: FontWeight.bold),
),
Text(
TranslationBase.of(context)
.confirmationSent,
style: TextStyle(
color: Colors.white,
fontSize: 13,
),
SizedBox(
height:
MediaQuery.of(context).size.width * 0.03,
),
Text(
TranslationBase.of(context).confirmationSent,
style: TextStyle(
color: Colors.white,
fontSize: 13,
),
],
),
),
],
),
],
),
),
],
),
],
),
],
),
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width,
),
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width * 1.0,
margin: EdgeInsets.only(
top: MediaQuery.of(context).size.width * 0.75,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(80),
topRight: Radius.circular(80)),
),
Stack(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.width,
),
Container(
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,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(80),
topRight: Radius.circular(80)),
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).size.width * 0.09,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
margin: EdgeInsets.only(
bottom: MediaQuery.of(context).size.width *
0.15, //50
FlatButton.icon(
padding: EdgeInsets.all(8),
color: Colors.orangeAccent,
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(10.0),
),
child: Column(
children: <Widget>[
FlatButton.icon(
padding: EdgeInsets.all(8),
color: Colors.orangeAccent,
shape: RoundedRectangleBorder(
borderRadius:
new BorderRadius.circular(10.0),
),
label: Text(
TranslationBase.of(context).addNoteBtn,
style: TextStyle(color: Colors.white),
),
icon: Icon(
Icons.mode_edit,
color: Colors.white,
),
onPressed: () {},
),
SizedBox(
height:
MediaQuery.of(context).size.width *
0.1, //20,
),
Container(
margin: EdgeInsets.all(10),
child: SecondaryButton(
label: TranslationBase.of(context)
.nextDelivery,
onTap: () {
getNextOrder(context, model);
},
),
),
],
label: Text(
TranslationBase.of(context).addNoteBtn,
style: TextStyle(color: Colors.white),
),
icon: Icon(
Icons.mode_edit,
color: Colors.white,
),
onPressed: () {},
),
SizedBox(
height:
MediaQuery.of(context).size.width * 0.02, //20,
),
Container(
margin: EdgeInsets.all(10),
child: SecondaryButton(
label: TranslationBase.of(context).nextDelivery,
onTap: () {
getNextOrder(context, model);
},),
),
],
),
),
CustomerBriefCard(
itemId: item.orderID,
customerFirstName: item.firstName,
customerLastName: item.lastName,
mobileNo: item.mobileNumber,
totalPayment: item.amount,
deliveryTime: item.orderCreatedOn),
],
),
],
),
],
),
),
Container(
margin: EdgeInsets.only(
top: MediaQuery.of(context).size.width * 0.6,
),
child: CustomerBriefCard(
itemId: item.orderID,
customerFirstName: item.firstName,
customerLastName: item.lastName,
mobileNo: item.mobileNumber,
totalPayment: item.amount,
showDistance: false,
deliveryTime: item.orderCreatedOn),
),
],
),
],),
),
),
),

File diff suppressed because one or more lines are too long

@ -1,17 +1,18 @@
import 'package:driverapp/pages/authentication/login_page.dart';
import 'package:driverapp/pages/base/base_view.dart';
import 'package:driverapp/pages/landing/landing_page.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
import 'package:driverapp/pages/dashboard/dashboard_screen.dart';
import 'package:driverapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:driverapp/pages/dashboard/dashboard_screen.dart';
import 'package:provider/provider.dart';
import 'core/viewModels/authentication_view_model.dart';
class RootPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
Widget buildRoot(APP_STATUS status) {
AuthenticationViewModel authenticationViewModel = Provider.of(context);
APP_STATUS status = authenticationViewModel.status;
Widget buildRoot() {
switch (status) {
case APP_STATUS.UNAUTHENTICATED:
return LoginPage();
@ -19,16 +20,16 @@ class RootPage extends StatelessWidget {
case APP_STATUS.AUTHENTICATED:
return DashboardScreen();
break;
case APP_STATUS.LOADING:
return Center(child: AppCircularProgressIndicator());
break;
}
}
return AnimatedSwitcher(
duration: Duration(microseconds: 350),
child: BaseView<AuthenticationViewModel>(
builder: (_, model, widget) => AppScaffold(
baseViewModel: model,
body: buildRoot((model.status)),
),
child: Scaffold(
body: buildRoot(),
),
);
}

@ -14,6 +14,7 @@ class CustomerBriefCard extends StatelessWidget {
final String deliveryTime;
final double longitude;
final double latitude;
final bool showDistance;
CustomerBriefCard(
{this.itemId,
@ -25,7 +26,9 @@ class CustomerBriefCard extends StatelessWidget {
this.totalPayment,
this.deliveryTime,
this.longitude,
this.latitude});
this.latitude,
this.showDistance = true,
});
@override
Widget build(BuildContext context) {
@ -63,21 +66,24 @@ class CustomerBriefCard extends StatelessWidget {
style: TextStyle(color: Color(0xFFADACAD)),
),
),
Expanded(
child: CircleAvatar(
backgroundColor: Colors.black45,
radius: 28.0,
Visibility(
visible: showDistance,
child: Expanded(
child: CircleAvatar(
backgroundColor: Colors.white,
maxRadius: 25.1,
child: Padding(
padding: const EdgeInsets.only(left: 3),
child: Text(
'3 K.m \n away',
style: TextStyle(
color: Color(0xff30B7B9),
fontSize: 12.5,
fontWeight: FontWeight.w600),
backgroundColor: Colors.black45,
radius: 28.0,
child: CircleAvatar(
backgroundColor: Colors.white,
maxRadius: 26.1,
child: Padding(
padding: const EdgeInsets.only(left: 3),
child: Text(
'3 K.m \n away',
style: TextStyle(
color: Color(0xff30B7B9),
fontSize: 12.5,
fontWeight: FontWeight.w600),
),
),
),
),
@ -85,22 +91,24 @@ class CustomerBriefCard extends StatelessWidget {
),
],
),
SizedBox(height: MediaQuery.of(context).size.width * 0.02,),
Text(
'${customerFirstName} ${customerLastName}',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
SizedBox(height: MediaQuery.of(context).size.width * 0.019,),
Text(
mobileNo,
style: TextStyle(color: Color(0xFF50BDC5)),
),
SizedBox(
height: 10,
),
Text(
'Olaya street, behind KFC resturant, next to kingdom towers 2nd floor ofice 277',
style: TextStyle(
color: Color(0xFF464748), fontWeight: FontWeight.w600),
height:MediaQuery.of(context).size.width*0.005,
),
// Text(
// 'Olaya street, behind KFC resturant, next to kingdom towers 2nd floor ofice 277',
// style: TextStyle(
// color: Color(0xFF464748), fontWeight: FontWeight.w600),
// ),
SizedBox(
height: 10,
),
@ -141,7 +149,7 @@ class CustomerBriefCard extends StatelessWidget {
],
),
SizedBox(
height: 20,
height: MediaQuery.of(context).size.width*0.03,
),
Row(
children: <Widget>[

@ -24,22 +24,13 @@ class DeliveryInfoButton extends StatelessWidget {
.of(context)
.size
.width * 0.165, // specific value
child: RaisedButton(
padding: EdgeInsets.only(left: 2),
color: btnColor,
shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(8.0),
),
child: btnIcon,
onPressed: btnFunction,
child:
InkWell(
child: btnIcon,
onTap: btnFunction,
),
),
SizedBox(
height: MediaQuery
.of(context)
.size
.width * 0.05,
),
Text(
btnName,
style: TextStyle(

Loading…
Cancel
Save