From 9dfaee792b0c872a5b0d3083904c2dcd0a21532d Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Mon, 9 Nov 2020 17:00:02 +0200 Subject: [PATCH] fix loading issue in splash_screen_page --- lib/config/config.dart | 2 ++ lib/core/service/orders_service.dart | 28 +++++++++++++++------- lib/core/viewModels/orders_view_model.dart | 19 +++++++++++---- lib/pages/dashboard/dashboard_screen.dart | 14 ++++------- lib/pages/orders/deliverd_orders_page.dart | 3 ++- lib/pages/orders/pending_orders_page.dart | 3 ++- lib/pages/splash_screen_page.dart | 11 +-------- 7 files changed, 46 insertions(+), 34 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 850adf6..dbe681a 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,6 +13,8 @@ const NEXT_ORDER = "/Patients.svc/REST/PatientER_Delivery_NextOrder"; const GET_ALL_DELIVERD_ORDER = '/Patients.svc/REST/PatientER_Delivery_GetAllDeliverdOrder'; +const GET_ALL_ORDERS_STATUS = + '/Patients.svc/REST/PatientER_Delivery_GetAllOrderstatus'; /// Body Constant const CHANNEL = 9; diff --git a/lib/core/service/orders_service.dart b/lib/core/service/orders_service.dart index d837ebb..5e06c27 100644 --- a/lib/core/service/orders_service.dart +++ b/lib/core/service/orders_service.dart @@ -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/deliverd_order_res_model.dart'; import 'package:driverapp/core/model/orders/next_order_request_model.dart'; import 'package:driverapp/core/model/orders/pending_orders_req_model.dart'; @@ -24,13 +23,8 @@ class OrdersService extends BaseService { bool isOrderStatusUpdated; bool isGetPendingOrdersServices = false; bool isGetDeliveredOrdersServices = false; - DeliverdOrderModel _requestGetDeliveredOrders = DeliverdOrderModel( - searchKey: "", - pageSize: 0, - pageIndex: 0, - latitude: "24.640000", - longitude: "46.753000", - ); + int listCountDelivered; + int listCountUnDelivered; Future getPendingOrders() async { LocationData loc = await Utils.getLocation(); @@ -84,6 +78,24 @@ class OrdersService extends BaseService { } } + Future getOrdersStatus() async { + hasError = false; + try { + await baseAppClient.post(GET_ALL_ORDERS_STATUS, + onSuccess: (dynamic response, int statusCode) { + listCountDelivered = response["ListCountDeliverd"]; + listCountUnDelivered = response["ListCountUnDeliverd"]; + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: {}); + } catch (e) { + hasError = true; + super.error = error; + throw e; + } + } + Future updateOrderStatus( UpdateOrderStatusRequestModel updateOrderStatusRequestModel) async { hasError = false; diff --git a/lib/core/viewModels/orders_view_model.dart b/lib/core/viewModels/orders_view_model.dart index eec100a..f996232 100644 --- a/lib/core/viewModels/orders_view_model.dart +++ b/lib/core/viewModels/orders_view_model.dart @@ -20,11 +20,9 @@ class OrdersViewModel extends BaseViewModel { List get nextOrdersList => _ordersService.nextOrdersList; bool isBottomSheetAppear = false; - bool get isGetPendingOrdersServices => - _ordersService.isGetPendingOrdersServices; + int get listCountDelivered => _ordersService.listCountDelivered; - bool get isGetDeliveredOrdersServices => - _ordersService.isGetDeliveredOrdersServices; + int get listCountUnDelivered => _ordersService.listCountUnDelivered; Future getPendingOrders() async { setState(ViewState.Busy); @@ -32,7 +30,18 @@ class OrdersViewModel extends BaseViewModel { if (_ordersService.hasError) { error = _ordersService.error; setState(ViewState.Error); - } + } else + setState(ViewState.Idle); + } + + Future getOrdersStatus() async { + setState(ViewState.Busy); + await _ordersService.getOrdersStatus(); + if (_ordersService.hasError) { + error = _ordersService.error; + setState(ViewState.Error); + } else + setState(ViewState.Idle); } Future getDeliveredOrders() async { diff --git a/lib/pages/dashboard/dashboard_screen.dart b/lib/pages/dashboard/dashboard_screen.dart index d2f38ff..0526538 100644 --- a/lib/pages/dashboard/dashboard_screen.dart +++ b/lib/pages/dashboard/dashboard_screen.dart @@ -54,17 +54,11 @@ class _DashboardScreenState extends State { int orderId; return BaseView( onModelReady: (model) async { - if (!model.isGetPendingOrdersServices) { await model.getPendingOrders(); - } - if (!model.isGetDeliveredOrdersServices) { - await model.getDeliveredOrders(); - } }, builder: (BuildContext context, OrdersViewModel model, Widget child) => AppScaffold( - baseViewModel: model, body: SingleChildScrollView( child: Container( height: MediaQuery.of(context).orientation == Orientation.landscape @@ -193,7 +187,8 @@ class _DashboardScreenState extends State { ), ), Text( - model.orders.length.toString(), + model.listCountUnDelivered + .toString(), style: TextStyle( color: Colors.white, fontSize: SizeConfig @@ -313,12 +308,13 @@ class _DashboardScreenState extends State { ), ), Text( - model.deliverdOrders.length + + model.listCountDelivered .toString(), style: TextStyle( color: Colors.white, fontSize: SizeConfig - .textMultiplier * + .textMultiplier * 3.0), ), Text( diff --git a/lib/pages/orders/deliverd_orders_page.dart b/lib/pages/orders/deliverd_orders_page.dart index 9f21fa6..9b44e61 100644 --- a/lib/pages/orders/deliverd_orders_page.dart +++ b/lib/pages/orders/deliverd_orders_page.dart @@ -17,11 +17,12 @@ class _DeliverdOrdersPageState extends State { @override Widget build(BuildContext context) { return BaseView( - // onModelReady: (model) => model.getDeliveredOrders(), + onModelReady: (model) => model.getDeliveredOrders(), builder: (BuildContext context, OrdersViewModel model, Widget child) => AppScaffold( isShowAppBar: true, appBarTitle: 'Delivered List', + baseViewModel: model, titleColor: Colors.black, body: Column( children: [ diff --git a/lib/pages/orders/pending_orders_page.dart b/lib/pages/orders/pending_orders_page.dart index abe8613..186697f 100644 --- a/lib/pages/orders/pending_orders_page.dart +++ b/lib/pages/orders/pending_orders_page.dart @@ -18,9 +18,10 @@ class _OrdersListScreenState extends State { @override Widget build(BuildContext context) { return BaseView( -// onModelReady: (model) => model.getPendingOrders(), + onModelReady: (model) => model.getPendingOrders(), builder: (BuildContext context, OrdersViewModel model, Widget child) => AppScaffold( + baseViewModel: model, isShowAppBar: true, appBarTitle: TranslationBase.of(context).yourDeliveryQue, titleColor: Colors.black, diff --git a/lib/pages/splash_screen_page.dart b/lib/pages/splash_screen_page.dart index b9c6f11..bb7aa8c 100644 --- a/lib/pages/splash_screen_page.dart +++ b/lib/pages/splash_screen_page.dart @@ -16,18 +16,9 @@ class SplashScreenPage extends StatefulWidget { class _SplashScreenPageState extends State { OrdersViewModel _ordersViewModel = locator(); - // AuthenticationService _authenticationService = - // locator(); - startTime() async { - // if (_authenticationService.isLogin) { - await _ordersViewModel.getPendingOrders(); - await _ordersViewModel.getDeliveredOrders(); - // } - + await _ordersViewModel.getOrdersStatus(); navigationPage(); - // var _duration = new Duration(seconds: 5); - // return new Timer(_duration, navigationPage); } @override