handleMethodCall method

Future handleMethodCall(
  1. MethodCall call
)

Implementation

Future<dynamic> handleMethodCall(MethodCall call) async {
  if (kIsWeb) {
    switch (call.method) {
      case 'joinRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('joinRoomJs', [jsData]);

        break;
      case 'setupVideo':
        // jsData1 = JsObject.jsify(call.arguments);
        // js.context.callMethod("createNativeView",[jsData1]);

        break;
      case 'publish':
        js.context.callMethod('publish');
        break;
      case 'disconnect':
        js.context.callMethod('disConnectRoom');
        break;
      case 'switchMediaDevice':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('switchMediaDevice', [jsData]);

        break;
      case 'getRole':
        _jsRoleCallbackCompleter = Completer<dynamic>();
        js.context.callMethod('getRole');
        return _jsRoleCallbackCompleter.future;
      case 'subscribe':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('subscribe', [jsData]);
        break;
      case 'muteSelfAudio':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('muteSelfAudio', [jsData]);
        break;
      case 'muteSelfVideo':
        var jsData = JsObject.jsify(call.arguments);

        js.context.callMethod('muteSelfVideo', [jsData]);
        break;
      case 'switchCamera':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('switchCamera', [jsData]);

        break;
      case 'getDevices':
        // Reset the Completer each time
        _jsCallbackCompleter = Completer<List<dynamic>>();
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('getAllDevicesList', [jsData]);
        return _jsCallbackCompleter.future;
      case 'destroy':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('destroy', [jsData]);
        break;
      case 'extendConferenceDuration':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('extendConferenceDuration', [jsData]);
        break;
      case 'lockRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('lockRoom', [jsData]);
        break;
      case 'unLockRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('unlockRoom', [jsData]);
        break;

      case 'startRecord':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startRecord', [jsData]);

        break;
      case 'stopRecord':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopRecord', [jsData]);
        break;

      case 'setTalkerCount':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('setTalkerCount', [jsData]);
        break;

      case 'getTalkerCount':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('getTalkerCount', [jsData]);

        break;
      case 'getMaxTalkers':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('getMaxTalkers', [jsData]);

        break;
      case 'hardMute':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardMute', [jsData]);
        break;

      case 'hardUnMute':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardUnMute', [jsData]);
        break;

      case 'hardMuteAudio':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardUnMute', [jsData]);
        break;
      case 'hardUnMuteAudio':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardUnMute', [jsData]);
        break;
      case 'hardMuteVideo':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardUnMute', [jsData]);
        break;
      case 'hardUnMuteVideo':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('hardUnMute', [jsData]);
        break;
      case 'approveAwaitedUser':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('approveAwaitedUser', [jsData]);
        break;
      case 'denyAwaitedUser':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('denyAwaitedUser', [jsData]);
        break;

      case 'switchUserRole':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('switchUserRole', [jsData]);
        break;
      case 'pinUsers':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('pinUsers', [jsData]);
        break;
      case 'unpinUsers':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('unpinUsers', [jsData]);
        break;
      case 'addSpotlightUsers':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('addSpotlightUsers', [jsData]);
        break;
      case 'removeSpotlightUsers':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('removeSpotlightUsers', [jsData]);
        break;
      case 'switchRoomMode':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('switchRoomMode', [jsData]);
        break;
      case 'sendMessage':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('sendMessage', [jsData]);
        break;
      case 'sendUserData':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('sendUserData', [jsData]);
        break;
      case 'sendFiles':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('sendFiles', [jsData]);
        break;
      case 'startScreenShare':
        // var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startScreenShare');
        break;
      case 'stopScreenShare':
        // var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopScreenShare');
        break;
      case 'startAnnotation':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startAnnotation', [jsData]);
        break;
      case 'stopAnnotation':
        //  var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopAnnotation');
        break;
      case 'startCanvas':
        //  var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startCanvas');
        break;
      case 'stopCanvas':
        //  var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopCanvas');
        break;
      case 'startStreaming':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startStreaming', [jsData]);
        break;
      case 'stopStreaming':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopStreaming', [jsData]);
        break;
      case 'startLiveRecording':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startLiveRecording', [jsData]);
        break;
      case 'stopLiveRecording':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopLiveRecording', [jsData]);
        break;
      case 'startLiveTranscriptionForRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('startLiveTranscriptionForRoom', [jsData]);
        break;
      case 'stopLiveTranscription':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('stopLiveTranscription', [jsData]);
        break;
      case 'subscribeForTalkerNotification':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('subscribeForTalkerNotification', [jsData]);
        break;
      case 'enableStats':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('enableStats', [jsData]);
        break;
      case 'setAudioOnlyMode':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('setAudioOnlyMode', [jsData]);
        break;
      case 'makeOutboundCall':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('makeOutboundCall', [jsData]);
        break;
      case 'cancelOutboundCall':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('cancelOutboundCall', [jsData]);
        break;
      case 'sendDTMF':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('sendDTMF', [jsData]);
        break;
      case 'captureScreenShot':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('captureScreenShot', [jsData]);
        break;

      case 'requestFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('requestFloor', [jsData]);
        break;
      case 'grantFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('grantFloor', [jsData]);
        break;
      case 'cancelFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('cancelFloor', [jsData]);
        break;
      case 'finishFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('finishFloor', [jsData]);
        break;
      case 'denyFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('denyFloor', [jsData]);
        break;
      case 'releaseFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('releaseFloor', [jsData]);
        break;

      case 'inviteToFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('inviteToFloor', [jsData]);
        break;
      case 'cancelFloorInvite':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('cancelFloorInvite', [jsData]);
        break;
      case 'rejectInviteFloor':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('rejectInviteFloor', [jsData]);
        break;
      case 'acceptInviteFloorRequest':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('acceptInviteFloorRequest', [jsData]);
        break;
      case 'createBreakOutRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('createBreakOutRoom', [jsData]);
        break;
      case 'createAndInviteBreakoutRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('createAndInviteBreakoutRoom', [jsData]);
        break;
      case 'joinBreakOutRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('joinBreakOutRoom', [jsData]);
        break;
      case 'inviteToBreakOutRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('inviteToBreakOutRoom', [jsData]);
        break;
      case 'pause':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('pause', [jsData]);
        break;
      case 'resume':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('resume', [jsData]);
        break;
      case 'muteRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('muteRoom', [jsData]);
        break;
      case 'unmuteRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('unmuteRoom', [jsData]);
        break;
      case 'rejectBreakOutRoom':
        var jsData = JsObject.jsify(call.arguments);
        js.context.callMethod('rejectBreakOutRoom', [jsData]);
        break;
      default:
        throw PlatformException(
          code: 'Unimplemented',
          details: 'Method ${call.method} not implemented on web',
        );
    }
  }
}