Merge remote-tracking branch 'origin/develop' into feat/offline-connect

This commit is contained in:
xsahil03x
2023-06-06 15:38:24 +05:30
23 changed files with 120 additions and 88 deletions
+6
View File
@@ -1,5 +1,11 @@
## Upcoming ## Upcoming
🔄 Changed
- Updated `dio` dependency to `^5.2.0`.
## 6.2.0
🐞 Fixed 🐞 Fixed
- [[#1422]](https://github.com/GetStream/stream-chat-flutter/issues/1422) Fixed `User.createdAt` property using - [[#1422]](https://github.com/GetStream/stream-chat-flutter/issues/1422) Fixed `User.createdAt` property using
@@ -89,8 +89,13 @@ class StreamChatNetworkError extends StreamChatError {
}) : super(message); }) : super(message);
/// ///
factory StreamChatNetworkError.fromDioError(DioError error) { @Deprecated('Use `StreamChatNetworkError.fromDioException` instead')
final response = error.response; factory StreamChatNetworkError.fromDioError(DioException error) =
StreamChatNetworkError.fromDioException;
///
factory StreamChatNetworkError.fromDioException(DioException exception) {
final response = exception.response;
ErrorResponse? errorResponse; ErrorResponse? errorResponse;
final data = response?.data; final data = response?.data;
if (data != null) { if (data != null) {
@@ -100,12 +105,12 @@ class StreamChatNetworkError extends StreamChatError {
code: errorResponse?.code ?? -1, code: errorResponse?.code ?? -1,
message: errorResponse?.message ?? message: errorResponse?.message ??
response?.statusMessage ?? response?.statusMessage ??
error.message ?? exception.message ??
'', '',
statusCode: errorResponse?.statusCode ?? response?.statusCode, statusCode: errorResponse?.statusCode ?? response?.statusCode,
data: errorResponse, data: errorResponse,
isRequestCancelledError: error.type == DioErrorType.cancel, isRequestCancelledError: exception.type == DioExceptionType.cancel,
)..stackTrace = error.stackTrace; )..stackTrace = exception.stackTrace;
} }
/// Error code /// Error code
@@ -46,26 +46,26 @@ class AuthInterceptor extends QueuedInterceptor {
@override @override
void onError( void onError(
DioError err, DioException exception,
ErrorInterceptorHandler handler, ErrorInterceptorHandler handler,
) async { ) async {
final data = err.response?.data; final data = exception.response?.data;
if (data == null || data is! Map<String, dynamic>) { if (data == null || data is! Map<String, dynamic>) {
return handler.next(err); return handler.next(exception);
} }
final error = ErrorResponse.fromJson(data); final error = ErrorResponse.fromJson(data);
if (error.code == ChatErrorCode.tokenExpired.code) { if (error.code == ChatErrorCode.tokenExpired.code) {
if (_tokenManager.isStatic) return handler.next(err); if (_tokenManager.isStatic) return handler.next(exception);
await _tokenManager.loadToken(refresh: true); await _tokenManager.loadToken(refresh: true);
try { try {
final options = err.requestOptions; final options = exception.requestOptions;
final response = await _client.fetch(options); final response = await _client.fetch(options);
return handler.resolve(response); return handler.resolve(response);
} on DioError catch (error) { } on DioException catch (exception) {
return handler.next(error); return handler.next(exception);
} }
} }
return handler.next(err); return handler.next(exception);
} }
} }
@@ -119,32 +119,32 @@ class LoggingInterceptor extends Interceptor {
} }
@override @override
void onError(DioError err, ErrorInterceptorHandler handler) { void onError(DioException exception, ErrorInterceptorHandler handler) {
if (error) { if (error) {
if (err.type == DioErrorType.badResponse) { if (exception.type == DioExceptionType.badResponse) {
final uri = err.response?.requestOptions.uri; final uri = exception.response?.requestOptions.uri;
_printBoxed( _printBoxed(
_logPrintError, _logPrintError,
header: header:
'DioError ║ Status: ${err.response?.statusCode} ${err.response?.statusMessage}', 'DioException ║ Status: ${exception.response?.statusCode} ${exception.response?.statusMessage}',
text: uri.toString(), text: uri.toString(),
); );
if (err.response != null && err.response?.data != null) { if (exception.response != null && exception.response?.data != null) {
_logPrintError('${err.type.toString()}'); _logPrintError('${exception.type.toString()}');
_printResponse(_logPrintError, err.response!); _printResponse(_logPrintError, exception.response!);
} }
_printLine(_logPrintError, ''); _printLine(_logPrintError, '');
_logPrintError(''); _logPrintError('');
} else { } else {
_printBoxed( _printBoxed(
_logPrintError, _logPrintError,
header: 'DioError${err.type}', header: 'DioException${exception.type}',
text: err.message, text: exception.message,
); );
_printRequestHeader(_logPrintError, err.requestOptions); _printRequestHeader(_logPrintError, exception.requestOptions);
} }
} }
super.onError(err, handler); super.onError(exception, handler);
} }
@override @override
@@ -2,7 +2,7 @@ import 'package:dio/dio.dart';
import 'package:stream_chat/src/core/error/error.dart'; import 'package:stream_chat/src/core/error/error.dart';
/// Error class specific to StreamChat and Dio /// Error class specific to StreamChat and Dio
class StreamChatDioError extends DioError { class StreamChatDioError extends DioException {
/// Initialize a stream chat dio error /// Initialize a stream chat dio error
StreamChatDioError({ StreamChatDioError({
required this.error, required this.error,
@@ -92,16 +92,16 @@ class StreamHttpClient {
/// calling [close] will throw an exception. /// calling [close] will throw an exception.
void close({bool force = false}) => httpClient.close(force: force); void close({bool force = false}) => httpClient.close(force: force);
StreamChatNetworkError _parseError(DioError err) { StreamChatNetworkError _parseError(DioException exception) {
StreamChatNetworkError error; StreamChatNetworkError error;
// locally thrown dio error // locally thrown dio error
if (err is StreamChatDioError) { if (exception is StreamChatDioError) {
error = err.error; error = exception.error;
} else { } else {
// real network request dio error // real network request dio error
error = StreamChatNetworkError.fromDioError(err); error = StreamChatNetworkError.fromDioException(exception);
} }
return error..stackTrace = err.stackTrace; return error..stackTrace = exception.stackTrace;
} }
/// Handy method to make http GET request with error parsing. /// Handy method to make http GET request with error parsing.
@@ -121,7 +121,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -147,7 +147,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -167,7 +167,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -193,7 +193,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -219,7 +219,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -268,7 +268,7 @@ class StreamHttpClient {
cancelToken: cancelToken, cancelToken: cancelToken,
); );
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
@@ -281,7 +281,7 @@ class StreamHttpClient {
try { try {
final response = await httpClient.fetch<T>(requestOptions); final response = await httpClient.fetch<T>(requestOptions);
return response; return response;
} on DioError catch (error) { } on DioException catch (error) {
throw _parseError(error); throw _parseError(error);
} }
} }
+11 -7
View File
@@ -1,12 +1,17 @@
library stream_chat; library stream_chat;
export 'package:async/async.dart'; export 'package:async/async.dart';
export 'package:dio/src/cancel_token.dart'; export 'package:dio/dio.dart'
export 'package:dio/src/dio_error.dart'; show
export 'package:dio/src/dio_mixin.dart' show Interceptor, InterceptorsWrapper; DioException,
export 'package:dio/src/multipart_file.dart'; DioExceptionType,
export 'package:dio/src/options.dart'; RequestOptions,
export 'package:dio/src/options.dart' show ProgressCallback; CancelToken,
Interceptor,
InterceptorsWrapper,
MultipartFile,
Options,
ProgressCallback;
export 'package:logging/logging.dart' show Logger, Level, LogRecord; export 'package:logging/logging.dart' show Logger, Level, LogRecord;
export 'package:rate_limiter/rate_limiter.dart'; export 'package:rate_limiter/rate_limiter.dart';
export 'package:uuid/uuid.dart'; export 'package:uuid/uuid.dart';
@@ -17,7 +22,6 @@ export 'src/client/key_stroke_handler.dart';
export 'src/core/api/attachment_file_uploader.dart'; export 'src/core/api/attachment_file_uploader.dart';
export 'src/core/api/requests.dart'; export 'src/core/api/requests.dart';
export 'src/core/api/responses.dart'; export 'src/core/api/responses.dart';
export 'src/core/api/stream_chat_api.dart' show PushProvider;
export 'src/core/api/stream_chat_api.dart'; export 'src/core/api/stream_chat_api.dart';
export 'src/core/error/error.dart'; export 'src/core/error/error.dart';
export 'src/core/http/interceptor/logging_interceptor.dart'; export 'src/core/http/interceptor/logging_interceptor.dart';
+1 -1
View File
@@ -3,4 +3,4 @@ import 'package:stream_chat/src/client/client.dart';
/// Current package version /// Current package version
/// Used in [StreamChatClient] to build the `x-stream-client` header /// Used in [StreamChatClient] to build the `x-stream-client` header
// ignore: constant_identifier_names // ignore: constant_identifier_names
const PACKAGE_VERSION = '6.1.0'; const PACKAGE_VERSION = '6.2.0';
+2 -2
View File
@@ -1,7 +1,7 @@
name: stream_chat name: stream_chat
homepage: https://getstream.io/ homepage: https://getstream.io/
description: The official Dart client for Stream Chat, a service for building chat applications. description: The official Dart client for Stream Chat, a service for building chat applications.
version: 6.1.0 version: 6.2.0
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -11,7 +11,7 @@ environment:
dependencies: dependencies:
async: ^2.10.0 async: ^2.10.0
collection: ^1.17.0 collection: ^1.17.0
dio: ^5.1.1 dio: ^5.2.0
equatable: ^2.0.5 equatable: ^2.0.5
freezed_annotation: ^2.2.0 freezed_annotation: ^2.2.0
http_parser: ^4.0.2 http_parser: ^4.0.2
@@ -60,7 +60,7 @@ void main() {
expect(error.message, message); expect(error.message, message);
}); });
test('.fromDioError', () { test('.fromDioException', () {
const code = 333; const code = 333;
const statusCode = 666; const statusCode = 666;
const message = 'test-error-message'; const message = 'test-error-message';
@@ -69,7 +69,7 @@ void main() {
..code = code ..code = code
..statusCode = statusCode ..statusCode = statusCode
..message = message; ..message = message;
final dioError = DioError( final dioError = DioException(
requestOptions: options, requestOptions: options,
response: Response( response: Response(
requestOptions: options, requestOptions: options,
@@ -77,7 +77,7 @@ void main() {
data: data.toJson(), data: data.toJson(),
), ),
); );
final error = StreamChatNetworkError.fromDioError(dioError); final error = StreamChatNetworkError.fromDioException(dioError);
expect(error, isNotNull); expect(error, isNotNull);
expect(error.code, code); expect(error.code, code);
expect(error.message, message); expect(error.message, message);
@@ -88,7 +88,7 @@ void main() {
requestOptions: options, requestOptions: options,
data: errorResponse.toJson(), data: errorResponse.toJson(),
); );
final err = DioError(requestOptions: options, response: response); final err = DioException(requestOptions: options, response: response);
final handler = ErrorInterceptorHandler(); final handler = ErrorInterceptorHandler();
when(() => tokenManager.isStatic).thenReturn(false); when(() => tokenManager.isStatic).thenReturn(false);
@@ -135,7 +135,7 @@ void main() {
requestOptions: options, requestOptions: options,
data: errorResponse.toJson(), data: errorResponse.toJson(),
); );
final err = DioError(requestOptions: options, response: response); final err = DioException(requestOptions: options, response: response);
final handler = ErrorInterceptorHandler(); final handler = ErrorInterceptorHandler();
when(() => tokenManager.isStatic).thenReturn(false); when(() => tokenManager.isStatic).thenReturn(false);
@@ -153,7 +153,7 @@ void main() {
} catch (e) { } catch (e) {
// need to cast it as the type is private in dio // need to cast it as the type is private in dio
final error = (e as dynamic).data; final error = (e as dynamic).data;
expect(error, isA<DioError>()); expect(error, isA<DioException>());
} }
verify(() => tokenManager.isStatic).called(1); verify(() => tokenManager.isStatic).called(1);
@@ -179,7 +179,7 @@ void main() {
requestOptions: options, requestOptions: options,
data: errorResponse.toJson(), data: errorResponse.toJson(),
); );
final err = DioError(requestOptions: options, response: response); final err = DioException(requestOptions: options, response: response);
final handler = ErrorInterceptorHandler(); final handler = ErrorInterceptorHandler();
when(() => tokenManager.isStatic).thenReturn(true); when(() => tokenManager.isStatic).thenReturn(true);
@@ -191,8 +191,8 @@ void main() {
} catch (e) { } catch (e) {
// need to cast it as the type is private in dio // need to cast it as the type is private in dio
final error = (e as dynamic).data; final error = (e as dynamic).data;
expect(error, isA<DioError>()); expect(error, isA<DioException>());
final response = StreamChatNetworkError.fromDioError(error); final response = StreamChatNetworkError.fromDioException(error);
expect(response.errorCode, code); expect(response.errorCode, code);
} }
@@ -207,7 +207,7 @@ void main() {
const path = 'test-request-path'; const path = 'test-request-path';
final options = RequestOptions(path: path); final options = RequestOptions(path: path);
final response = Response(requestOptions: options); final response = Response(requestOptions: options);
final err = DioError(requestOptions: options, response: response); final err = DioException(requestOptions: options, response: response);
final handler = ErrorInterceptorHandler(); final handler = ErrorInterceptorHandler();
authInterceptor.onError(err, handler); authInterceptor.onError(err, handler);
@@ -217,7 +217,7 @@ void main() {
} catch (e) { } catch (e) {
// need to cast it as the type is private in dio // need to cast it as the type is private in dio
final error = (e as dynamic).data; final error = (e as dynamic).data;
expect(error, isA<DioError>()); expect(error, isA<DioException>());
} }
}, },
); );
@@ -12,7 +12,7 @@ void main() {
requestOptions: options, requestOptions: options,
); );
expect(dioError, isA<DioError>()); expect(dioError, isA<DioException>());
expect(dioError, isNotNull); expect(dioError, isNotNull);
expect(dioError.error, error); expect(dioError.error, error);
expect(dioError.requestOptions, options); expect(dioError.requestOptions, options);
@@ -21,7 +21,7 @@ void main() {
statusCode: 200, statusCode: 200,
); );
DioError throwableError( DioException throwableError(
String path, { String path, {
StreamChatNetworkError? error, StreamChatNetworkError? error,
bool streamChatDioError = false, bool streamChatDioError = false,
@@ -32,11 +32,11 @@ void main() {
..code = error?.code ..code = error?.code
..statusCode = error?.statusCode ..statusCode = error?.statusCode
..message = error?.message; ..message = error?.message;
DioError? dioError; DioException? dioError;
if (streamChatDioError) { if (streamChatDioError) {
dioError = StreamChatDioError(error: error!, requestOptions: options); dioError = StreamChatDioError(error: error!, requestOptions: options);
} else { } else {
dioError = DioError( dioError = DioException(
error: error, error: error,
requestOptions: options, requestOptions: options,
response: Response( response: Response(
@@ -210,7 +210,7 @@ void main() {
await client.get(path); await client.get(path);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.get( verify(() => dio.get(
@@ -263,7 +263,7 @@ void main() {
await client.post(path); await client.post(path);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.post( verify(() => dio.post(
@@ -317,7 +317,7 @@ void main() {
await client.delete(path); await client.delete(path);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.delete( verify(() => dio.delete(
@@ -371,7 +371,7 @@ void main() {
await client.patch(path); await client.patch(path);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.patch( verify(() => dio.patch(
@@ -425,7 +425,7 @@ void main() {
await client.put(path); await client.put(path);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.put( verify(() => dio.put(
@@ -486,7 +486,7 @@ void main() {
await client.postFile(path, file); await client.postFile(path, file);
} catch (e) { } catch (e) {
expect(e, isA<StreamChatNetworkError>()); expect(e, isA<StreamChatNetworkError>());
expect(e, StreamChatNetworkError.fromDioError(error)); expect(e, StreamChatNetworkError.fromDioException(error));
} }
verify(() => dio.post( verify(() => dio.post(
@@ -1,5 +1,11 @@
## Upcoming ## Upcoming
🔄 Changed
- Updated `dio` dependency to `^5.2.0`.
## 6.2.0
🐞 Fixed 🐞 Fixed
- [[#1546]](https://github.com/GetStream/stream-chat-flutter/issues/1546) - [[#1546]](https://github.com/GetStream/stream-chat-flutter/issues/1546)
@@ -35,6 +41,8 @@
- Updated `shimmer` dependency to `^3.0.0`. - Updated `shimmer` dependency to `^3.0.0`.
- Updated `image_gallery_saver` dependency to `^2.0.1`. - Updated `image_gallery_saver` dependency to `^2.0.1`.
- Deprecated `ChannelPreview` in favor of `StreamChannelListTile`. - Deprecated `ChannelPreview` in favor of `StreamChannelListTile`.
- Updated `stream_chat_flutter_core` dependency
to [`6.2.0`](https://pub.dev/packages/stream_chat_flutter_core/changelog).
## 6.1.0 ## 6.1.0
+3 -3
View File
@@ -1,7 +1,7 @@
name: stream_chat_flutter name: stream_chat_flutter
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter. description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter.
version: 6.1.0 version: 6.2.0
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -17,7 +17,7 @@ dependencies:
dart_vlc: ^0.4.0 dart_vlc: ^0.4.0
desktop_drop: ^0.4.0 desktop_drop: ^0.4.0
diacritic: ^0.1.3 diacritic: ^0.1.3
dio: ^5.1.1 dio: ^5.2.0
ezanimation: ^0.6.0 ezanimation: ^0.6.0
file_picker: ^5.2.4 file_picker: ^5.2.4
file_selector: ^0.9.0 file_selector: ^0.9.0
@@ -38,7 +38,7 @@ dependencies:
rxdart: ^0.27.0 rxdart: ^0.27.0
share_plus: ^6.3.0 share_plus: ^6.3.0
shimmer: ^3.0.0 shimmer: ^3.0.0
stream_chat_flutter_core: ^6.1.0 stream_chat_flutter_core: ^6.2.0
synchronized: ^3.0.0 synchronized: ^3.0.0
thumblr: ^0.0.4 thumblr: ^0.0.4
url_launcher: ^6.1.0 url_launcher: ^6.1.0
@@ -1,8 +1,13 @@
## Upcoming ## Upcoming
- Updated `stream_chat` dependency to [`Upcoming`](https://pub.dev/packages/stream_chat/changelog).
## 6.2.0
- Fixed `StreamMessageInputController.textPatternStyle` not matching case-insensitive patterns. - Fixed `StreamMessageInputController.textPatternStyle` not matching case-insensitive patterns.
- Updated `connectivity_plus` dependency to `^4.0.0` - Updated `connectivity_plus` dependency to `^4.0.0`
- Fixed `StreamChannel` shows black screen while loading in some cases. - Fixed `StreamChannel` shows black screen while loading in some cases.
- Updated `stream_chat` dependency to [`6.2.0`](https://pub.dev/packages/stream_chat/changelog).
## 6.1.0 ## 6.1.0
@@ -430,16 +430,15 @@ class StreamChannelState extends State<StreamChannel> {
], ],
builder: (context, snapshot) { builder: (context, snapshot) {
if (snapshot.hasError) { if (snapshot.hasError) {
var message = snapshot.error.toString(); final error = snapshot.error;
if (snapshot.error is DioError) { if (error is DioException) {
final dioError = snapshot.error as DioError?; if (error.type == DioExceptionType.badResponse) {
if (dioError?.type == DioErrorType.badResponse) { return Center(child: Text(error.message ?? 'Bad response'));
message = dioError!.message ?? 'Bad response';
} else {
message = 'Check your connection and retry';
} }
return const Center(child: Text('Check your connection and retry'));
} }
return Center(child: Text(message));
return Center(child: Text(error.toString()));
} }
final dataLoaded = snapshot.data?.every((it) => it) == true; final dataLoaded = snapshot.data?.every((it) => it) == true;
@@ -1,7 +1,7 @@
name: stream_chat_flutter_core name: stream_chat_flutter_core
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter. description: Stream Chat official Flutter SDK Core. Build your own chat experience using Dart and Flutter.
version: 6.1.0 version: 6.2.0
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -17,7 +17,7 @@ dependencies:
freezed_annotation: ^2.0.3 freezed_annotation: ^2.0.3
meta: ^1.8.0 meta: ^1.8.0
rxdart: ^0.27.0 rxdart: ^0.27.0
stream_chat: ^6.1.0 stream_chat: ^6.2.0
dev_dependencies: dev_dependencies:
build_runner: ^2.3.3 build_runner: ^2.3.3
@@ -91,8 +91,8 @@ void main() {
); );
const errorMessage = 'Error! Error! Error!'; const errorMessage = 'Error! Error! Error!';
final error = DioError( final error = DioException(
type: DioErrorType.badResponse, type: DioExceptionType.badResponse,
message: errorMessage, message: errorMessage,
requestOptions: RequestOptions(), requestOptions: RequestOptions(),
); );
@@ -1,3 +1,7 @@
## 5.2.0
* Updated `stream_chat_flutter` dependency to [`6.2.0`](https://pub.dev/packages/stream_chat_flutter/changelog).
## 5.1.0 ## 5.1.0
* Updated `dart` sdk environment range to support `3.0.0`. * Updated `dart` sdk environment range to support `3.0.0`.
@@ -1,6 +1,6 @@
name: stream_chat_localizations name: stream_chat_localizations
description: The Official localizations for Stream Chat Flutter, a service for building chat applications description: The Official localizations for Stream Chat Flutter, a service for building chat applications
version: 5.1.0 version: 5.2.0
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -14,7 +14,7 @@ dependencies:
sdk: flutter sdk: flutter
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
stream_chat_flutter: ^6.1.0 stream_chat_flutter: ^6.2.0
dev_dependencies: dev_dependencies:
dart_code_metrics: ^5.7.2 dart_code_metrics: ^5.7.2
@@ -1,8 +1,9 @@
## Upcoming ## 6.2.0
- Added support for `StreamChatPersistenceClient.isConnected` for checking if the client is connected to the database. - Added support for `StreamChatPersistenceClient.isConnected` for checking if the client is connected to the database.
- [[#1422]](https://github.com/GetStream/stream-chat-flutter/issues/1422) Removed default values - [[#1422]](https://github.com/GetStream/stream-chat-flutter/issues/1422) Removed default values
from `UserEntity` `createdAt` and `updatedAt` fields. from `UserEntity` `createdAt` and `updatedAt` fields.
- Updated `stream_chat` dependency to [`6.2.0`](https://pub.dev/packages/stream_chat/changelog).
- Added support for `StreamChatPersistenceClient.openPersistenceConnection` - Added support for `StreamChatPersistenceClient.openPersistenceConnection`
and `StreamChatPersistenceClient.closePersistenceConnection` for opening and closing the database connection. and `StreamChatPersistenceClient.closePersistenceConnection` for opening and closing the database connection.
@@ -1,7 +1,7 @@
name: stream_chat_persistence name: stream_chat_persistence
homepage: https://github.com/GetStream/stream-chat-flutter homepage: https://github.com/GetStream/stream-chat-flutter
description: Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter. description: Official Stream Chat Persistence library. Build your own chat experience using Dart and Flutter.
version: 6.1.0 version: 6.2.0
repository: https://github.com/GetStream/stream-chat-flutter repository: https://github.com/GetStream/stream-chat-flutter
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
@@ -18,7 +18,7 @@ dependencies:
path: ^1.8.2 path: ^1.8.2
path_provider: ^2.0.1 path_provider: ^2.0.1
sqlite3_flutter_libs: ^0.5.0 sqlite3_flutter_libs: ^0.5.0
stream_chat: ^6.1.0 stream_chat: ^6.2.0
dev_dependencies: dev_dependencies:
build_runner: ^2.3.3 build_runner: ^2.3.3