checkPermission static method

Future<bool> checkPermission()

Implementation

static Future<bool> checkPermission() async {
  if (kIsWeb) {
    final permission = await Location().hasPermission();
    if (permission == PermissionStatus.granted ||
        permission == PermissionStatus.grantedLimited) {
      return true;
    } else {
      return false;
    }
  }
  if (Platform.isIOS) {
    final status = await gl.Geolocator.requestPermission();

    if (status == gl.LocationPermission.always ||
        status == gl.LocationPermission.whileInUse) {
      return true;
    } else if (status == gl.LocationPermission.denied) {
      return false;
    } else if (status == gl.LocationPermission.deniedForever) {
      openAppSettings();
      return false;
    } else if (status == gl.LocationPermission.unableToDetermine) {
      return requestPermission();
    } else {
      return false;
    }
  } else if (Platform.isAndroid) {
    final status = await Permission.location.status;
    if (status.isGranted) {
      return true;
    } else if (status.isDenied) {
      return false;
    } else if (status.isPermanentlyDenied) {
      openAppSettings();
      return false;
    } else if (!status.isRestricted && !status.isLimited) {
      return requestPermission();
    } else {
      return false;
    }
  } else {
    throw UnimplementedError();
  }
}