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: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 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 isLocationPermissionGranted() async { return (await location.hasPermission()) == PermissionStatus.granted; } static Location location = new Location(); static Future getLocationPermission() async { 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" } } _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) { AppSettings.openLocationSettings(); // open setting page } } else if (_permissionGranted == PermissionStatus.deniedForever) { AppSettings.openLocationSettings(); // open setting page } return _permissionGranted; } static getLocation() async { // AppGlobal.context Location location = new Location(); LocationData currentLocation; // await getLocationPermission(); try { currentLocation = await location.getLocation(); } catch (e) { await getLocationPermission(); print(e); } return currentLocation; } static formatStringToPascalCase(String name) { List names = name.split(" "); List formattedNamesList = []; names.forEach((name) { name = name.toLowerCase(); name = name != "" ? name[0].toUpperCase() + name.substring(1) : ""; formattedNamesList.add(name); }); return formattedNamesList.join(' '); } }