feat(llc): add support for AttachmentFileUploaderProvider. (#1246)

* feat(llc): add support for `AttachmentFileUploaderProvider`.

Signed-off-by: xsahil03x <[email protected]>

* chore(llc): update CHANGELOG.md

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2022-07-06 14:43:15 +02:00
committed by GitHub
parent a37bf2bde4
commit dd47db04dd
7 changed files with 42 additions and 11 deletions
@@ -3,7 +3,6 @@ import 'dart:math';
import 'package:collection/collection.dart'
show IterableExtension, ListEquality;
import 'package:dio/dio.dart';
import 'package:rxdart/rxdart.dart';
import 'package:stream_chat/src/client/retry_queue.dart';
import 'package:stream_chat/src/core/util/utils.dart';
@@ -70,8 +70,15 @@ class StreamChatClient {
Duration receiveTimeout = const Duration(seconds: 6),
StreamChatApi? chatApi,
WebSocket? ws,
AttachmentFileUploader? attachmentFileUploader,
}) {
@Deprecated('Use [attachmentFileUploaderProvider] instead')
AttachmentFileUploader? attachmentFileUploader,
AttachmentFileUploaderProvider? attachmentFileUploaderProvider,
}) : assert(
attachmentFileUploader == null ||
attachmentFileUploaderProvider == null,
'You can only use one of [attachmentFileUploader] '
'or [attachmentFileUploaderProvider]',
) {
logger.info('Initiating new StreamChatClient');
final options = StreamHttpClientOptions(
@@ -81,13 +88,23 @@ class StreamChatClient {
headers: {'X-Stream-Client': defaultUserAgent},
);
// TODO: simplify this once we remove the deprecated field.
final AttachmentFileUploaderProvider fileUploaderProvider;
if (attachmentFileUploaderProvider != null) {
fileUploaderProvider = attachmentFileUploaderProvider;
} else if (attachmentFileUploader != null) {
fileUploaderProvider = (httpClient) => attachmentFileUploader;
} else {
fileUploaderProvider = StreamAttachmentFileUploader.new;
}
_chatApi = chatApi ??
StreamChatApi(
apiKey,
options: options,
tokenManager: _tokenManager,
connectionIdManager: _connectionIdManager,
attachmentFileUploader: attachmentFileUploader,
attachmentFileUploaderProvider: fileUploaderProvider,
logger: detachedLogger('🕸️'),
);