import 'dart:developer'; import 'dart:io'; import 'package:app_settings/app_settings.dart'; import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import '../base/widget/dialog/request_permission_dialog.dart'; class LocationPermissionRequest { LocationPermissionRequest._init(); static LocationPermissionRequest? _instance; static LocationPermissionRequest get instance => _instance ??= LocationPermissionRequest._init(); // Future checkLocationPermission(context) async { // var status = await Permission.location.status; // log("Status1: $status"); // log("Status2: ${status.isDenied}"); // log("Status3: ${status.isPermanentlyDenied}"); // log("Status4: ${status.isGranted}"); // if (status.isDenied || status.isPermanentlyDenied) { // requestLocationPermisson(context, Icons.location_on_outlined, // Permission.location, AppSettingsType.location, "Location"); // return false; // } else { // return true; // } // } void requestLocationPermisson( context, IconData icon, Permission service, AppSettingsType appSettingsType, String serviceName, ) async { var status = await service.status; if (status.isDenied) { await service.request(); } else if (status.isPermanentlyDenied) { if (Platform.isAndroid) { RequestPermissionDialog.instance.requestPermissionDialogAndroid( context, icon, serviceName, appSettingsType, ); } else if (Platform.isIOS) { RequestPermissionDialog.instance.requestPermissionDialogIOS( context, appSettingsType, serviceName, appSettingsType, ); } else { log("Location Permission: Undefined Platform"); } } else {} } }