Merge branch 'location' into 'development'

finish location request permission

See merge request Cloud_Solution/driver-app!110
barcode_scanner
Elham 5 years ago
commit c8ba893042

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

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

@ -45,7 +45,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
void initState() { void initState() {
super.initState(); super.initState();
// TODO return it // TODO return it
// Utils.getLocationPermission(); Utils.getLocation();
} }
@override @override

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

Loading…
Cancel
Save