setupMethodCallHandler static method

void setupMethodCallHandler()

Implementation

static void setupMethodCallHandler() {
  _subscription ??= _eventChannel.receiveBroadcastStream().listen(
    (event) {
      var map = event;
      if (Platform.isAndroid) {
        map = jsonDecode(map);
      }
      final String eventName = map['event'];
      var params = map['params'];
      TTFLogger.i('TTVideoEnginDownload', 'native to flutter eventChannel call:$eventName');
      switch (eventName) {
        case 'onComplete':
          TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
          TTError? error;
          int? errorCode = params['error_code'];
          String? errorMsg = params['error_msg'];
          if (errorCode != null || errorMsg != null) {
            error = TTError(errorCode ?? 0, errorMsg ?? '');
          } else {
            error = null;
          }
          onComplete?.call(task, error);
          break;

        case 'onProgress':
          TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
          onProgress?.call(task, task.progress!);
          break;

        case 'onResume':
          TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
          int fileOffset = params['fileOffset'];
          int expectedTotalBytes = params['expectedTotalBytes'];
          onResume?.call(task, fileOffset, expectedTotalBytes);
          break;

        case 'onStateChanged':
          TTVideoEngineDownloadTask task = TTVideoEngineDownloadTask.fromJson(params['task']);
          TTVideoEngineDownloadState state = TTVideoEngineDownloadState.values[params['state']];
          onStateChanged?.call(task, state);
          break;
        default:
          TTFLogger.e('TTVideoEnginDownload', 'notImplemented:$eventName');
      }
    },
    // onError: (error) {
    //   TTFLogger.e('TTVideoEnginDownload', 'event error:$error');
    // },
    // onDone: () {
    //   TTFLogger.e('TTVideoEnginDownload', 'event done');
    // },
    // cancelOnError: true,
  );
}