diff --git a/packages/stream_chat/lib/src/core/api/requests.dart b/packages/stream_chat/lib/src/core/api/requests.dart index 719b2b9b..f81ee70b 100644 --- a/packages/stream_chat/lib/src/core/api/requests.dart +++ b/packages/stream_chat/lib/src/core/api/requests.dart @@ -40,7 +40,7 @@ class SortOption { final int direction; /// Sorting field Comparator required for offline sorting - @JsonKey(ignore: true) + @JsonKey(includeToJson: false, includeFromJson: false) final Comparator? comparator; /// Serialize model to json diff --git a/packages/stream_chat/lib/src/core/models/attachment_file.dart b/packages/stream_chat/lib/src/core/models/attachment_file.dart index e6750843..ee6690ca 100644 --- a/packages/stream_chat/lib/src/core/models/attachment_file.dart +++ b/packages/stream_chat/lib/src/core/models/attachment_file.dart @@ -52,7 +52,7 @@ class AttachmentFile { /// Byte data for this file. Particularly useful if you want to manipulate /// its data or easily upload to somewhere else. - @JsonKey(ignore: true) + @JsonKey(includeToJson: false, includeFromJson: false) final Uint8List? bytes; /// The file size in bytes. diff --git a/packages/stream_chat_flutter/example/lib/main.dart b/packages/stream_chat_flutter/example/lib/main.dart index c8978a45..e4f291fe 100644 --- a/packages/stream_chat_flutter/example/lib/main.dart +++ b/packages/stream_chat_flutter/example/lib/main.dart @@ -177,7 +177,7 @@ class _SplitViewState extends State { : Center( child: Text( 'Pick a channel to show the messages 💬', - style: Theme.of(context).textTheme.headline5, + style: Theme.of(context).textTheme.headlineSmall, ), ), ), diff --git a/packages/stream_chat_flutter/example/lib/split_view.dart b/packages/stream_chat_flutter/example/lib/split_view.dart index 2ae8e8aa..bbfe6301 100644 --- a/packages/stream_chat_flutter/example/lib/split_view.dart +++ b/packages/stream_chat_flutter/example/lib/split_view.dart @@ -78,7 +78,7 @@ class _SplitViewState extends State { : Center( child: Text( 'Pick a channel to show the messages 💬', - style: Theme.of(context).textTheme.headline5, + style: Theme.of(context).textTheme.headlineSmall, ), ), ), diff --git a/packages/stream_chat_flutter/lib/src/channel/channel_header.dart b/packages/stream_chat_flutter/lib/src/channel/channel_header.dart index d8dce9ff..b97af492 100644 --- a/packages/stream_chat_flutter/lib/src/channel/channel_header.dart +++ b/packages/stream_chat_flutter/lib/src/channel/channel_header.dart @@ -162,8 +162,8 @@ class StreamChannelHeader extends StatelessWidget showMessage: showConnectionStateTile && showStatus, message: statusString, child: AppBar( - toolbarTextStyle: theme.textTheme.bodyText2, - titleTextStyle: theme.textTheme.headline6, + toolbarTextStyle: theme.textTheme.bodyMedium, + titleTextStyle: theme.textTheme.titleLarge, systemOverlayStyle: theme.brightness == Brightness.dark ? SystemUiOverlayStyle.light : SystemUiOverlayStyle.dark, diff --git a/packages/stream_chat_flutter/lib/src/channel/channel_list_header.dart b/packages/stream_chat_flutter/lib/src/channel/channel_list_header.dart index 95cf640d..20c214b1 100644 --- a/packages/stream_chat_flutter/lib/src/channel/channel_list_header.dart +++ b/packages/stream_chat_flutter/lib/src/channel/channel_list_header.dart @@ -131,8 +131,8 @@ class StreamChannelListHeader extends StatelessWidget showMessage: showConnectionStateTile && showStatus, message: statusString, child: AppBar( - toolbarTextStyle: theme.textTheme.bodyText2, - titleTextStyle: theme.textTheme.headline6, + toolbarTextStyle: theme.textTheme.bodyMedium, + titleTextStyle: theme.textTheme.titleLarge, systemOverlayStyle: theme.brightness == Brightness.dark ? SystemUiOverlayStyle.light : SystemUiOverlayStyle.dark, @@ -181,7 +181,10 @@ class StreamChannelListHeader extends StatelessWidget package: 'stream_chat_flutter', width: 24, height: 24, - color: color, + colorFilter: ColorFilter.mode( + color, + BlendMode.srcIn, + ), ); }, ), diff --git a/packages/stream_chat_flutter/lib/src/gallery/gallery_header.dart b/packages/stream_chat_flutter/lib/src/gallery/gallery_header.dart index 866e3c5e..19aed6e6 100644 --- a/packages/stream_chat_flutter/lib/src/gallery/gallery_header.dart +++ b/packages/stream_chat_flutter/lib/src/gallery/gallery_header.dart @@ -80,8 +80,8 @@ class StreamGalleryHeader extends StatelessWidget final galleryHeaderThemeData = StreamGalleryHeaderTheme.of(context); final theme = Theme.of(context); return AppBar( - toolbarTextStyle: theme.textTheme.bodyText2, - titleTextStyle: theme.textTheme.headline6, + toolbarTextStyle: theme.textTheme.bodyMedium, + titleTextStyle: theme.textTheme.titleLarge, systemOverlayStyle: theme.brightness == Brightness.dark ? SystemUiOverlayStyle.light : SystemUiOverlayStyle.dark, diff --git a/packages/stream_chat_flutter/lib/src/message_input/stream_message_text_field.dart b/packages/stream_chat_flutter/lib/src/message_input/stream_message_text_field.dart index 5a0fd63a..a04ab829 100644 --- a/packages/stream_chat_flutter/lib/src/message_input/stream_message_text_field.dart +++ b/packages/stream_chat_flutter/lib/src/message_input/stream_message_text_field.dart @@ -80,7 +80,6 @@ class StreamMessageTextField extends StatefulWidget { this.textAlignVertical, this.textDirection, this.readOnly = false, - ToolbarOptions? toolbarOptions, this.showCursor, this.autofocus = false, this.obscuringCharacter = '•', @@ -155,31 +154,7 @@ class StreamMessageTextField extends StatefulWidget { keyboardType = keyboardType ?? (maxLines == 1 ? TextInputType.text : TextInputType.multiline), enableInteractiveSelection = - enableInteractiveSelection ?? (!readOnly || !obscureText), - toolbarOptions = toolbarOptions ?? - (obscureText - ? (readOnly - // No point in even offering "Select All" in a read-only obscured - // field. - ? const ToolbarOptions() - // Writable, but obscured. - : const ToolbarOptions( - selectAll: true, - paste: true, - )) - : (readOnly - // Read-only, not obscured. - ? const ToolbarOptions( - selectAll: true, - copy: true, - ) - // Writable, not obscured. - : const ToolbarOptions( - copy: true, - cut: true, - selectAll: true, - paste: true, - ))); + enableInteractiveSelection ?? (!readOnly || !obscureText); /// Controls the message being edited. /// @@ -304,13 +279,6 @@ class StreamMessageTextField extends StatefulWidget { /// {@macro flutter.widgets.editableText.readOnly} final bool readOnly; - /// Configuration of toolbar options. - /// - /// If not set, select all and paste will default to be enabled. Copy and cut - /// will be disabled if [obscureText] is true. If [readOnly] is true, - /// paste and cut will be disabled regardless. - final ToolbarOptions toolbarOptions; - /// {@macro flutter.widgets.editableText.showCursor} final bool? showCursor; @@ -720,7 +688,6 @@ class _StreamMessageTextFieldState extends State textAlignVertical: widget.textAlignVertical, textDirection: widget.textDirection, readOnly: widget.readOnly, - toolbarOptions: widget.toolbarOptions, showCursor: widget.showCursor, autofocus: widget.autofocus, obscuringCharacter: widget.obscuringCharacter, diff --git a/packages/stream_chat_flutter/lib/src/misc/stream_svg_icon.dart b/packages/stream_chat_flutter/lib/src/misc/stream_svg_icon.dart index 8472af6e..a040bd42 100644 --- a/packages/stream_chat_flutter/lib/src/misc/stream_svg_icon.dart +++ b/packages/stream_chat_flutter/lib/src/misc/stream_svg_icon.dart @@ -1088,7 +1088,12 @@ class StreamSvgIcon extends StatelessWidget { key: key, width: width, height: height, - color: color, + colorFilter: color != null + ? ColorFilter.mode( + color!, + BlendMode.srcIn, + ) + : null, ); } } diff --git a/packages/stream_chat_flutter/lib/src/misc/thread_header.dart b/packages/stream_chat_flutter/lib/src/misc/thread_header.dart index b6e24cf9..1142ac45 100644 --- a/packages/stream_chat_flutter/lib/src/misc/thread_header.dart +++ b/packages/stream_chat_flutter/lib/src/misc/thread_header.dart @@ -149,8 +149,8 @@ class StreamThreadHeader extends StatelessWidget final theme = Theme.of(context); return AppBar( automaticallyImplyLeading: false, - toolbarTextStyle: theme.textTheme.bodyText2, - titleTextStyle: theme.textTheme.headline6, + toolbarTextStyle: theme.textTheme.bodyMedium, + titleTextStyle: theme.textTheme.titleLarge, systemOverlayStyle: theme.brightness == Brightness.dark ? SystemUiOverlayStyle.light : SystemUiOverlayStyle.dark, diff --git a/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_view.dart b/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_view.dart index 6cc18e69..d2829ffd 100644 --- a/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_view.dart @@ -409,7 +409,7 @@ class StreamChannelListErrorWidget extends StatelessWidget { TextSpan(text: context.translations.loadingChannelsError), ], ), - style: Theme.of(context).textTheme.headline6, + style: Theme.of(context).textTheme.titleLarge, ), TextButton( onPressed: onPressed, diff --git a/packages/stream_chat_flutter_core/test/stream_channel_test.dart b/packages/stream_chat_flutter_core/test/stream_channel_test.dart index 60a199f2..f4acf3c9 100644 --- a/packages/stream_chat_flutter_core/test/stream_channel_test.dart +++ b/packages/stream_chat_flutter_core/test/stream_channel_test.dart @@ -94,7 +94,7 @@ void main() { final error = DioError( type: DioErrorType.badResponse, message: errorMessage, - requestOptions: RequestOptions(path: ''), + requestOptions: RequestOptions(), ); when(() => mockChannel.initialized) .thenAnswer((_) => Future.error(error)); diff --git a/packages/stream_chat_localizations/test/basics_test.dart b/packages/stream_chat_localizations/test/basics_test.dart index ae52a1af..2c8bb4db 100644 --- a/packages/stream_chat_localizations/test/basics_test.dart +++ b/packages/stream_chat_localizations/test/basics_test.dart @@ -103,7 +103,7 @@ class LocalizationTrackerState extends State { @override Widget build(BuildContext context) { - captionFontSize = Theme.of(context).textTheme.caption!.fontSize!; + captionFontSize = Theme.of(context).textTheme.bodySmall!.fontSize!; return Container(); } }