Merge branch 'development' into 'master'

Development

See merge request Cloud_Solution/driver-app!112
barcode_scanner
Mohammad Aljammal 6 years ago
commit 566fd360e0

@ -13,15 +13,17 @@ import 'package:location/location.dart';
class OrdersService extends BaseService {
List<PendingOrdersRes> _orders = List();
List<PendingOrdersRes> _nextOrdersList = List();
List<DeliverdOrderResModel> _deliverdOrderList = List();
List<DeliverdOrderResModel> _deliveredOrderList = List();
List<PendingOrdersRes> get orders => _orders;
List<DeliverdOrderResModel> get deliverdOrderList => _deliverdOrderList;
List<DeliverdOrderResModel> get deliveredOrderList => _deliveredOrderList;
List<PendingOrdersRes> get nextOrdersList => _nextOrdersList;
bool isOrderInserted;
bool isOrderStatusUpdated;
DeliverdOrderModel _requestGetDeliverdOrders = DeliverdOrderModel(
DeliverdOrderModel _requestGetDeliveredOrders = DeliverdOrderModel(
searchKey: "",
pageSize: 0,
pageIndex: 0,
@ -30,7 +32,6 @@ class OrdersService extends BaseService {
);
Future getPendingOrders() async {
// if (await Utils.isLocationPermissionGranted()) {
LocationData loc = await Utils.getLocation();
if (loc != null) {
@ -117,7 +118,7 @@ class OrdersService extends BaseService {
}
}
Future getDeliverdList() async {
Future getDeliveredList() async {
LocationData loc = await Utils.getLocation();
PendingOrders _requestGetPendingOrders = PendingOrders(
searchKey: "",
@ -126,13 +127,15 @@ class OrdersService extends BaseService {
latitude: loc.latitude.toString(),
longitude: loc.longitude.toString(),
);
if (loc != null) {
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(DeliverdOrderResModel.fromJson(order));
_deliveredOrderList.clear();
response['PatientER_Delivery_GetAllDeliverdOrderList']
.forEach((order) {
_deliveredOrderList.add(DeliverdOrderResModel.fromJson(order));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
@ -145,4 +148,5 @@ class OrdersService extends BaseService {
throw e;
}
}
}
}

@ -1,11 +1,11 @@
import 'package:driverapp/core/enum/viewstate.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_res_model.dart';
import 'package:driverapp/core/model/orders/update_order_status_request_model.dart';
import 'package:driverapp/core/model/scan_qr/scan_qr_request_model.dart';
import 'package:driverapp/core/service/orders_service.dart';
import 'package:driverapp/core/model/orders/deliverd_order_res_model.dart';
import '../../locator.dart';
import 'base_view_model.dart';
@ -15,7 +15,7 @@ class OrdersViewModel extends BaseViewModel {
List<PendingOrdersRes> get orders => _ordersService.orders;
List<DeliverdOrderResModel> get deliverdOrders =>
_ordersService.deliverdOrderList;
_ordersService.deliveredOrderList;
List<PendingOrdersRes> get nextOrdersList => _ordersService.nextOrdersList;
bool isBottomSheetAppear = false;
@ -32,7 +32,7 @@ class OrdersViewModel extends BaseViewModel {
Future getDeliverdOrders() async {
setState(ViewState.Busy);
await _ordersService.getDeliverdList();
await _ordersService.getDeliveredList();
if (_ordersService.hasError) {
error = _ordersService.error;
setState(ViewState.Error);

@ -45,7 +45,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
void initState() {
super.initState();
// TODO return it
// Utils.getLocationPermission();
Utils.getLocation();
}
@override
@ -55,9 +55,10 @@ class _DashboardScreenState extends State<DashboardScreen> {
onModelReady: (model) => model.getPendingOrders(),
builder: (BuildContext context, OrdersViewModel model, Widget child) =>
AppScaffold(
body: Container(
body: SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height * 1.6,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -147,7 +148,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
gradient: LINEAR_GRADIENT,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
child: Padding(
@ -271,15 +273,18 @@ class _DashboardScreenState extends State<DashboardScreen> {
MainAxisAlignment.spaceEvenly,
children: <Widget>[
Text(
TranslationBase.of(context).youHave,
TranslationBase.of(context)
.youHave,
style: TextStyle(
color: Colors.white,
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
? SizeConfig
.textMultiplier *
2.2
: SizeConfig.textMultiplier *
: SizeConfig
.textMultiplier *
1.3,
),
),
@ -287,8 +292,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
'3',
style: TextStyle(
color: Colors.white,
fontSize:
SizeConfig.textMultiplier *
fontSize: SizeConfig
.textMultiplier *
3.0),
),
Text(
@ -299,9 +304,11 @@ class _DashboardScreenState extends State<DashboardScreen> {
fontSize: MediaQuery.of(context)
.orientation ==
Orientation.landscape
? SizeConfig.textMultiplier *
? SizeConfig
.textMultiplier *
2.2
: SizeConfig.textMultiplier *
: SizeConfig
.textMultiplier *
1.3,
),
)
@ -357,7 +364,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
],
),
Padding(
padding: EdgeInsets.symmetric(vertical: 16.0, horizontal: 15.0),
padding:
EdgeInsets.symmetric(vertical: 16.0, horizontal: 15.0),
child: Row(
children: <Widget>[
Expanded(
@ -444,7 +452,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 1.0),
padding:
EdgeInsets.symmetric(horizontal: 20.0, vertical: 1.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
@ -467,7 +476,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
Text(
TranslationBase.of(context).seeAll,
style: TextStyle(
fontSize: 14.5, color: Color(0xff42B6AD)),
fontSize: 14.5,
color: Color(0xff42B6AD)),
),
Icon(
Icons.arrow_forward_ios,
@ -487,15 +497,21 @@ class _DashboardScreenState extends State<DashboardScreen> {
],
),
),
if (model.state == ViewState.Idle)
model.orders.length == 0
? Text("There's No Orders To deliver")
: Text(""),
NetworkBaseView(
baseViewModel: model,
child: Column(
children: <Widget>[
...List.generate(
model.orders == null
child: Expanded(
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.vertical,
itemCount: model.orders == null
? 0
: model.orders.length < 3 ? model.orders.length : 3,
(index) => Padding(
itemBuilder: (BuildContext context, int index) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 0.2),
child: OrderInfoCard(
order: model.orders[index],
@ -503,19 +519,21 @@ class _DashboardScreenState extends State<DashboardScreen> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
InformationPage(
builder: (context) => InformationPage(
item: model.orders[index],
)));
}),
))
],
},
),
);
},
),
),
),
],
),
),
),
),
);
}
@ -537,5 +555,3 @@ class _DashboardScreenState extends State<DashboardScreen> {
}
}
}

@ -1,3 +1,4 @@
import 'package:driverapp/core/enum/viewstate.dart';
import 'package:driverapp/core/viewModels/orders_view_model.dart';
import 'package:driverapp/widgets/order/order_info_card.dart';
import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
@ -27,6 +28,10 @@ class _DeliverdOrdersPageState extends State<DeliverdOrdersPage> {
SizedBox(
height: 20,
),
if (model.state == ViewState.Idle)
model.deliverdOrders.length == 0
? Text("There's No Orders To deliver")
: Text(''),
NetworkBaseView(
baseViewModel: model,
child: Expanded(

@ -1,3 +1,4 @@
import 'package:driverapp/core/enum/viewstate.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';
@ -28,6 +29,10 @@ class _OrdersListScreenState extends State<OrdersListScreen> {
SizedBox(
height: 20,
),
if (model.state == ViewState.Idle)
model.orders.length == 0
? Text("There's No Orders To deliver")
: Text(""),
Expanded(
child: ListView.builder(
shrinkWrap: true,

File diff suppressed because one or more lines are too long

@ -4,6 +4,7 @@ import 'package:driverapp/config/config.dart';
import 'package:driverapp/pages/setting/request_permission_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:location/location.dart';
import 'app_shared_preferences.dart';
@ -48,13 +49,9 @@ class Utils {
FocusScope.of(context).unfocus();
}
static isLocationPermissionGranted() async {
return (await location.hasPermission()) == PermissionStatus.granted;
}
static Location location = new Location();
static Future<PermissionStatus> getLocationPermission() async {
static getLocation() async {
Location location = new Location();
LocationData currentLocation;
bool _serviceEnabled;
PermissionStatus _permissionGranted;
@ -67,12 +64,18 @@ class Utils {
}
if (!_serviceEnabled) {
// Route to another page and send to him message "You have to enable location"
Navigator.pushReplacement(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => RequestPermissionPage(),
),
);
}
}
_permissionGranted = await location.hasPermission();
if (_permissionGranted == PermissionStatus.denied) {
// _permissionGranted = await location.requestPermission();
_permissionGranted = await location.requestPermission();
if (_permissionGranted == PermissionStatus.denied) {
// Route to another page and send to him message "You have to give Permission"
Navigator.pushReplacement(
@ -83,30 +86,27 @@ class Utils {
);
//return _permissionGranted;
} else if (_permissionGranted == PermissionStatus.deniedForever) {
try {
SystemNavigator.pop();
AppSettings.openLocationSettings();
} catch (e) {
print(e);
}
// open setting page
} else {
currentLocation = await location.getLocation();
return currentLocation;
}
} else if (_permissionGranted == PermissionStatus.deniedForever) {
SystemNavigator.pop();
AppSettings.openLocationSettings();
// open setting page
}
return _permissionGranted;
}
static getLocation() async {
// AppGlobal.context
Location location = new Location();
LocationData currentLocation;
// await getLocationPermission();
try {
// open setting page
} else {
currentLocation = await location.getLocation();
} catch (e) {
// await getLocationPermission();
print(e);
}
return currentLocation;
}
}
static formatStringToPascalCase(String name) {
List<String> names = name.split(" ");

Loading…
Cancel
Save