grantedPermissions method

Future<bool?> grantedPermissions({
  1. bool chat = false,
  2. int index = -1,
})

Implementation

Future<bool?> grantedPermissions({bool chat = false, int index = -1}) async {
  bool have = true;
  PermissionStatus status;
  if (chat) {
    status = await Permission.camera.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
    status = await Permission.microphone.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else if (index == 0) {
    status = await Permission.camera.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else if (index == 1) {
    status = Platform.isAndroid
        ? await Permission.storage.status
        : await Permission.photos.status;
    if (status != PermissionStatus.granted &&
        status != PermissionStatus.limited) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else if (index == 2) {
    status = await Permission.microphone.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else if (index == 4) {
    status = await Permission.phone.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else if (index == 5) {
    status = await Permission.appTrackingTransparency.status;
    if (status != PermissionStatus.granted) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  } else {
    status = await Permission.storage.status;
    if (status != PermissionStatus.granted &&
        status != PermissionStatus.limited) {
      have = false;
    }
    if (checkDenied(status)) {
      return null;
    }
  }
  return have;
}