checkPermission function

Future<int> checkPermission(
  1. CheckPermissionOptions options
)

Checks the permission based on the provided settings.

Parameters:

  • options (CheckPermissionOptions): The options containing permission settings.

Returns:

  • A Future<int> representing the permission status:
    • 0: Permission is allowed.
    • 1: Permission requires approval.
    • 2: Permission is disallowed or the permissionType is invalid.

Example:

final options = CheckPermissionOptions(
  permissionType: 'audioSetting',
  audioSetting: 'allow',
  videoSetting: 'approval',
  screenshareSetting: 'approval',
  chatSetting: 'allow',
);

checkPermission(options).then((result) {
  print('Permission result: $result');
}).catchError((error) {
  print('Error checking permission: $error');
});

Implementation

Future<int> checkPermission(CheckPermissionOptions options) async {
  try {
    // Determine the permission type and corresponding setting
    switch (options.permissionType) {
      case 'audioSetting':
        if (options.audioSetting == 'allow') return 0;
        if (options.audioSetting == 'approval') return 1;
        return 2;

      case 'videoSetting':
        if (options.videoSetting == 'allow') return 0;
        if (options.videoSetting == 'approval') return 1;
        return 2;

      case 'screenshareSetting':
        if (options.screenshareSetting == 'allow') return 0;
        if (options.screenshareSetting == 'approval') return 1;
        return 2;

      case 'chatSetting':
        if (options.chatSetting == 'allow') return 0;
        if (options.chatSetting == 'approval') return 1;
        return 2;

      default:
        // Return 2 for invalid permission type
        return 2;
    }
  } catch (error) {
    if (kDebugMode) {
      print('checkPermission error: $error');
    }
    return 2;
  }
}