photoPermission static method

Future<Map<int, List<String>>> photoPermission({
  1. required String? mainKey,
  2. required List<String?>? matchkeyList,
  3. required bool isCamera,
})

Implementation

static Future<Map<int, List<String>>> photoPermission({
  required String? mainKey,
  required List<String?>? matchkeyList,
  required bool isCamera,
}) async {
  int isGspon = -1;
  // -1 ->  dont need

  Map<String, bool> permissions = {};

  bool containsKey = matchkeyList!.any(
          (key) => key?.trim().toLowerCase() == mainKey?.trim().toLowerCase());

  if (isCamera) {
    permissions = await requestCameraPermission();
  } else {
    permissions = await getPhotoPermission();
  }

  Map<String, bool> audioPermissions = await requestAudioPermission();

  permissions.addAll(audioPermissions);

  if (containsKey) {
    Map<String, bool> locationPermissions = await requestLocationPermission();
    permissions.addAll(locationPermissions);
    isGspon = await Geolocator.isLocationServiceEnabled() ? 1 : 0;
  }

  List<String> errorList = permissions.entries
      .where((entry) => !entry.value)
      .map((entry) => entry.key)
      .toList();

  return {isGspon: errorList};
}