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 6 years ago
commit 237f0b12a8

@ -161,17 +161,59 @@
] ]
}, },
{ {
"uid": "3a5cc972b7f3f2ab8a20e22287b5598b", "uid": "f454f0b074a5a3194dbf7409c724a0e9",
"css": "group-169", "css": "call",
"code": 59412, "code": 59408,
"src": "custom_icons", "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": { "svg": {
"path": "", "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": 663 "width": 1337
}, },
"search": [ "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 _kFontFam = 'DriverApp';
static const _kFontPkg = null; static const _kFontPkg = null;
static const IconData logo = static const IconData location_1 = IconData(0xe800, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData logo = IconData(0xe801, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData closed_box = static const IconData closed_box = IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe803, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData location = IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData location = static const IconData open_box = IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe804, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData phone_call = IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData open_box = static const IconData qr = IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe805, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData not_available = IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData phone_call = static const IconData rejected_icon = IconData(0xe80b, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe806, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData not_reachable_icon = IconData(0xe80c, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData qr = static const IconData group_74 = IconData(0xe80d, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe807, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData message = IconData(0xe80e, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData not_available = static const IconData whatsapp = IconData(0xe80f, fontFamily: _kFontFam, fontPackage: _kFontPkg);
IconData(0xe80a, fontFamily: _kFontFam, fontPackage: _kFontPkg); static const IconData call = IconData(0xe810, fontFamily: _kFontFam, fontPackage: _kFontPkg);
static const IconData rejected_icon = static const IconData deliverd_icon = IconData(0xe812, fontFamily: _kFontFam, fontPackage: _kFontPkg);
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);
} }

Binary file not shown.

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

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

@ -1,5 +1,4 @@
import 'package:driverapp/config/config.dart'; 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/next_order_request_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_req_model.dart'; import 'package:driverapp/core/model/orders/pending_orders_req_model.dart';
import 'package:driverapp/core/model/orders/pending_orders_res_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 { class OrdersService extends BaseService {
List<PendingOrdersRes> _orders = List(); List<PendingOrdersRes> _orders = List();
List<PendingOrdersRes> _nextOrdersList = List(); List<PendingOrdersRes> _nextOrdersList = List();
List<DeliverdOrderModel> _deliverdOrderList = List();
List<PendingOrdersRes> get orders => _orders; List<PendingOrdersRes> get orders => _orders;
List<DeliverdOrderModel> get deliverdOrderList => _deliverdOrderList;
List<PendingOrdersRes> get nextOrdersList => _nextOrdersList; List<PendingOrdersRes> get nextOrdersList => _nextOrdersList;
bool isOrderInserted; bool isOrderInserted;
bool isOrderStatusUpdated; bool isOrderStatusUpdated;
@ -26,14 +22,6 @@ class OrdersService extends BaseService {
pageIndex: 0, pageIndex: 0,
); );
DeliverdOrderModel _requestGetDeliverdOrders = DeliverdOrderModel(
searchKey: "",
pageSize: 0,
pageIndex: 0,
latitude: "24.640000",
longitude: "46.753000",
);
Future getPendingOrders() async { Future getPendingOrders() async {
hasError = false; hasError = false;
try { try {
@ -108,25 +96,4 @@ class OrdersService extends BaseService {
throw e; 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/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/model/authentication/login_request.dart';
import 'package:driverapp/core/service/authentication_service.dart'; import 'package:driverapp/core/service/authentication_service.dart';
import 'package:driverapp/core/service/client/base_app_client.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'; import '../../locator.dart';
enum APP_STATUS { LOADING, UNAUTHENTICATED, AUTHENTICATED } enum APP_STATUS { LOADING, UNAUTHENTICATED, AUTHENTICATED }
class AuthenticationViewModel extends BaseViewModel { class AuthenticationViewModel with ChangeNotifier {
AuthenticationService _authenticationService = locator<AuthenticationService>(); 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 { APP_STATUS get status {
if (state == ViewState.Busy || state == ViewState.BusyLocal) { if (isLoading) {
return APP_STATUS.LOADING; return APP_STATUS.LOADING;
} else { } else {
if ( user != null) { if (isLogin) {
return APP_STATUS.AUTHENTICATED; return APP_STATUS.AUTHENTICATED;
} else { } else {
return APP_STATUS.UNAUTHENTICATED; return APP_STATUS.UNAUTHENTICATED;
@ -25,16 +60,20 @@ class AuthenticationViewModel extends BaseViewModel {
} }
login(LoginRequest loginRequest) async { login(LoginRequest loginRequest) async {
setState(ViewState.BusyLocal); isLoading = true;
notifyListeners();
await _authenticationService.login(loginRequest); await _authenticationService.login(loginRequest);
if (_authenticationService.hasError) { if (_authenticationService.hasError) {
error = _authenticationService.error; error = _authenticationService.error;
setState(ViewState.ErrorLocal); isLoading = false;
isError = true;
notifyListeners();
} else { } else {
sharedPref.setObject( sharedPref.setObject(
USER_PROFILE, _authenticationService.authenticatedUser); USER_PROFILE, _authenticationService.authenticatedUser);
sharedPref.setString(TOKEN, _authenticationService.token); 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 'package:provider/provider.dart';
import 'config/size_config.dart'; import 'config/size_config.dart';
import 'core/viewModels/authentication_view_model.dart';
import 'core/viewModels/project_view_model.dart'; import 'core/viewModels/project_view_model.dart';
import 'locator.dart'; import 'locator.dart';
@ -25,7 +26,10 @@ class MyApp extends StatelessWidget {
providers: [ providers: [
ChangeNotifierProvider<ProjectViewModel>( ChangeNotifierProvider<ProjectViewModel>(
create: (context) => ProjectViewModel(), create: (context) => ProjectViewModel(),
) ),
ChangeNotifierProvider<AuthenticationViewModel>(
create: (context) => AuthenticationViewModel(),
),
], ],
child: Consumer<ProjectViewModel>( child: Consumer<ProjectViewModel>(
builder: (context, projectProvider, child) => MaterialApp( builder: (context, projectProvider, child) => MaterialApp(

@ -1,9 +1,7 @@
import 'package:driverapp/app-icons/driver_app_icons.dart'; 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/model/authentication/login_request.dart';
import 'package:driverapp/core/viewModels/authentication_view_model.dart'; import 'package:driverapp/core/viewModels/authentication_view_model.dart';
import 'package:driverapp/core/viewModels/project_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/pages/dashboard/dashboard_screen.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';
@ -21,14 +19,15 @@ class LoginPage extends StatelessWidget {
LoginRequest loginRequest = LoginRequest(); LoginRequest loginRequest = LoginRequest();
final loginFormKey = GlobalKey<FormState>(); final loginFormKey = GlobalKey<FormState>();
ProjectViewModel projectViewModel; ProjectViewModel projectViewModel;
AuthenticationViewModel authenticationViewModel;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
authenticationViewModel = Provider.of(context);
return AnimatedSwitcher( return AnimatedSwitcher(
duration: Duration(microseconds: 350), duration: Duration(microseconds: 350),
child: BaseView<AuthenticationViewModel>( child: AppScaffold(
builder: (_, model, widget) => AppScaffold(
isShowAppBar: false, isShowAppBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Center( child: Center(
@ -229,26 +228,26 @@ class LoginPage extends StatelessWidget {
SizedBox( SizedBox(
height: 10, height: 10,
), ),
Container(
margin: EdgeInsets.all(10), Container(
height: MediaQuery.of(context).size.height * 0.22, margin: EdgeInsets.all(10),
child: Column( height: MediaQuery.of(context).size.height * 0.22,
children: <Widget>[ child: Column(
SecondaryButton( children: <Widget>[
label: TranslationBase.of(context).login, SecondaryButton(
onTap: () { label: TranslationBase.of(context).login,
login(model, context); onTap: () {
}, login(context);
disabled: model.state == ViewState.BusyLocal, },
loading: model.state == ViewState.BusyLocal, disabled: authenticationViewModel.isLoading,
), loading: authenticationViewModel.isLoading,
SizedBox( ),
height: 30, 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()) { if (loginFormKey.currentState.validate()) {
loginFormKey.currentState.save(); loginFormKey.currentState.save();
await model.login(loginRequest); await authenticationViewModel.login(loginRequest);
if (model.state == ViewState.ErrorLocal) { if (authenticationViewModel.isError) {
Utils.showErrorToast(model.error); Utils.showErrorToast(authenticationViewModel.error);
} else { } else {
Navigator.push(context, Navigator.push(
context,
MaterialPageRoute(builder: (context) => DashboardScreen())); 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) { Widget build(BuildContext context) {
return BaseView<OrdersViewModel>( return BaseView<OrdersViewModel>(
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
body: SafeArea( isShowAppBar: true,
child: Container( appBarColor: Theme.of(context).primaryColor,
color: Theme.of(context).primaryColor, arrowColor: Colors.white,
child: ListView( titleColor: Colors.white,
children: <Widget>[ body: SafeArea(
Column( child: Container(
color: Theme.of(context).primaryColor,
child: ListView(
children: <Widget>[
Stack(
children: <Widget>[ children: <Widget>[
Column( Column(
children: <Widget>[ children: <Widget>[
Container( Container(
child: Container( child: Column(
alignment: Alignment.topLeft, children: <Widget>[
child: IconButton( Container(
color: Colors.white, width: MediaQuery.of(context).size.width,
iconSize: 40, height: MediaQuery.of(context).size.width * 0.7,
icon: Icon(Icons.arrow_back), padding: EdgeInsets.only(
onPressed: () { top: MediaQuery.of(context).size.width * 0.12,
Navigator.pop(context); ),
}, decoration: BoxDecoration(
), color: Colors.white10, shape: BoxShape.circle),
), child: Column(
), children: <Widget>[
Container( Icon(
child: Column( Icons.check_circle,
children: <Widget>[ color: Colors.white,
Container( size: 75,
width: MediaQuery.of(context).size.width, ),
height: MediaQuery.of(context).size.width * 0.7, SizedBox(
padding: EdgeInsets.only( height:
top: MediaQuery.of(context).size.width * 0.2, MediaQuery.of(context).size.width * 0.03,
),
decoration: BoxDecoration(
color: Colors.white10,
shape: BoxShape.circle),
child: Column(
children: <Widget>[
Icon(
Icons.check_circle,
color: Colors.white,
size: 60,
), ),
Text( Text(
TranslationBase.of(context).deliveryInfo, TranslationBase.of(context).deliveryInfo,
@ -70,102 +64,101 @@ class DeliveryConfirmedPage extends StatelessWidget {
fontSize: 20, fontSize: 20,
fontWeight: FontWeight.bold), fontWeight: FontWeight.bold),
), ),
Text( SizedBox(
TranslationBase.of(context) height:
.confirmationSent, MediaQuery.of(context).size.width * 0.03,
style: TextStyle( ),
color: Colors.white, Text(
fontSize: 13, 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>[ children: <Widget>[
Container( Container(
width: MediaQuery.of(context).size.width, margin: EdgeInsets.only(
height: MediaQuery.of(context).size.width, bottom: MediaQuery.of(context).size.width * 0.09,
),
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)),
), ),
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Container( FlatButton.icon(
margin: EdgeInsets.only( padding: EdgeInsets.all(8),
bottom: MediaQuery.of(context).size.width * color: Colors.orangeAccent,
0.15, //50 shape: RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(10.0),
), ),
child: Column( label: Text(
children: <Widget>[ TranslationBase.of(context).addNoteBtn,
FlatButton.icon( style: TextStyle(color: Colors.white),
padding: EdgeInsets.all(8), ),
color: Colors.orangeAccent, icon: Icon(
shape: RoundedRectangleBorder( Icons.mode_edit,
borderRadius: color: Colors.white,
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);
},
),
),
],
), ),
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/authentication/login_page.dart';
import 'package:driverapp/pages/base/base_view.dart'; import 'package:driverapp/pages/dashboard/dashboard_screen.dart';
import 'package:driverapp/pages/landing/landing_page.dart'; import 'package:driverapp/widgets/progress_indicator/app_circular_progress_Indeicator.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:driverapp/pages/dashboard/dashboard_screen.dart'; import 'package:provider/provider.dart';
import 'core/viewModels/authentication_view_model.dart'; import 'core/viewModels/authentication_view_model.dart';
class RootPage extends StatelessWidget { class RootPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Widget buildRoot(APP_STATUS status) { AuthenticationViewModel authenticationViewModel = Provider.of(context);
APP_STATUS status = authenticationViewModel.status;
Widget buildRoot() {
switch (status) { switch (status) {
case APP_STATUS.UNAUTHENTICATED: case APP_STATUS.UNAUTHENTICATED:
return LoginPage(); return LoginPage();
@ -19,16 +20,16 @@ class RootPage extends StatelessWidget {
case APP_STATUS.AUTHENTICATED: case APP_STATUS.AUTHENTICATED:
return DashboardScreen(); return DashboardScreen();
break; break;
case APP_STATUS.LOADING:
return Center(child: AppCircularProgressIndicator());
break;
} }
} }
return AnimatedSwitcher( return AnimatedSwitcher(
duration: Duration(microseconds: 350), duration: Duration(microseconds: 350),
child: BaseView<AuthenticationViewModel>( child: Scaffold(
builder: (_, model, widget) => AppScaffold( body: buildRoot(),
baseViewModel: model,
body: buildRoot((model.status)),
),
), ),
); );
} }

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

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

Loading…
Cancel
Save