V2TimMessageDownloadElemParam constructor

V2TimMessageDownloadElemParam(
  1. {required V2TimMessage message,
  2. int? imageType,
  3. bool? isSnapshot}
)

Implementation

V2TimMessageDownloadElemParam({
  required this.message,
  this.imageType,
  this.isSnapshot,
}) {
  fileUUID = '';
  downloadType = _downloadImage;
  downloadUrl = '';
  switch (message.elemType) {
    case MessageElemType.V2TIM_ELEM_TYPE_IMAGE:
      int requiredType = imageType ?? V2TIM_IMAGE_TYPE.V2TIM_IMAGE_TYPE_ORIGIN;
      for (V2TimImage? image in message.imageElem?.imageList ?? []) {
        if (image?.type != null && image?.type == requiredType) {
          fileUUID = '${requiredType}_${image?.uuid ?? ''}';
          downloadType = _downloadImage;
          downloadUrl = image?.url ?? '';

          downloadElement = image;
          break;
        }
      }

      break;

    case MessageElemType.V2TIM_ELEM_TYPE_VIDEO:
      bool requiredSnapshot = isSnapshot ?? false;
      if (requiredSnapshot) {
        fileUUID = message.videoElem?.snapshotUUID ?? '';
        downloadType = _downloadImage;
        downloadUrl = message.videoElem?.snapshotUrl ?? '';
      } else {
        fileUUID = message.videoElem?.UUID ?? '';
        downloadType = _downloadVideo;
        downloadUrl = message.videoElem?.videoUrl ?? '';
      }

      downloadElement = message.videoElem;

      break;

    case MessageElemType.V2TIM_ELEM_TYPE_SOUND:
      fileUUID = message.soundElem?.UUID ?? '';
      downloadType = _downloadSound;
      downloadUrl = message.soundElem?.url ?? '';

      downloadElement = message.soundElem;

      break;

    case MessageElemType.V2TIM_ELEM_TYPE_FILE:
      fileUUID = message.fileElem?.UUID ?? '';
      downloadType = _downloadFile;
      downloadUrl = message.fileElem?.url ?? '';

      downloadElement = message.fileElem;

      break;

    default:
      downloadElement = null;
      print('invalid message type');
  }
}