You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
driver-app/lib/uitl/utils.dart

123 lines
3.7 KiB
Dart

import 'package:app_settings/app_settings.dart';
import 'package:connectivity/connectivity.dart';
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';
import 'app_toast.dart';
AppSharedPreferences sharedPref = new AppSharedPreferences();
class Utils {
///show custom Error Toast
/// [message] to show for user
static showErrorToast([String message]) {
String localMsg = generateContactAdminMessage();
if (message != null) {
localMsg = message.toString();
}
AppToast.showErrorToast(message: localMsg);
}
/// Check The Internet Connection
static Future<bool> checkConnection() async {
ConnectivityResult connectivityResult =
await (Connectivity().checkConnectivity());
if ((connectivityResult == ConnectivityResult.mobile) ||
(connectivityResult == ConnectivityResult.wifi)) {
return true;
} else {
return false;
}
}
/// generate Contact Admin Message
static generateContactAdminMessage([err]) {
String localMsg = 'Something wrong happened, please contact the admin';
if (err != null) {
localMsg = localMsg + '\n \n' + err.toString();
}
return localMsg;
}
/// hides the keyboard if its already open
static hideKeyboard(BuildContext context) {
FocusScope.of(context).unfocus();
}
static getLocation() async {
Location location = new Location();
LocationData currentLocation;
bool _serviceEnabled;
PermissionStatus _permissionGranted;
_serviceEnabled = await location.serviceEnabled();
if (!_serviceEnabled) {
try {
_serviceEnabled = await location.requestService();
} catch (e) {
print(e);
}
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();
if (_permissionGranted == PermissionStatus.denied) {
// Route to another page and send to him message "You have to give Permission"
Navigator.pushReplacement(
AppGlobal.context,
MaterialPageRoute(
builder: (context) => RequestPermissionPage(),
),
);
//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
} else {
currentLocation = await location.getLocation();
return currentLocation;
}
}
static formatStringToPascalCase(String name) {
List<String> names = name.split(" ");
List<String> formattedNamesList = [];
names.forEach((name) {
name = name.toLowerCase();
name = name != "" ? name[0].toUpperCase() + name.substring(1) : "";
formattedNamesList.add(name);
});
return formattedNamesList.join(' ');
}
}