permissions static method

Future<bool> permissions({
  1. bool isVideo = true,
})

Implementation

static Future<bool> permissions({bool isVideo = true}) async {
  if (isVideo) {
    if (kIsWeb) {
      final perm1 =
          await html.window.navigator.permissions?.query({"name": "camera"});
      final perm2 = await html.window.navigator.permissions
          ?.query({"name": "microphone"});
      appDebugPrint('perm1: ${perm1?.state}');
      appDebugPrint('perm2: ${perm2?.state}');
      if (perm1?.state != "granted" && perm2?.state != "granted") {
        return false;
      }
      return true;
    } else {
      Map<Permission, PermissionStatus> result =
          await [Permission.camera, Permission.microphone].request();
      return result[Permission.camera] == PermissionStatus.granted &&
          result[Permission.microphone] == PermissionStatus.granted;
    }
  } else {
    if (kIsWeb) {
      final perm2 = await html.window.navigator.permissions
          ?.query({"name": "microphone"});
      appDebugPrint('perm2: ${perm2?.state}');
      if (perm2?.state != "granted") {
        return false;
      }
      return true;
    } else {
      Map<Permission, PermissionStatus> result =
          await [Permission.microphone].request();
      return result[Permission.microphone] == PermissionStatus.granted;
    }
  }
}