From d7624721b8a0feba8f96e92b7119c3e86db18b10 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Fri, 16 Oct 2020 12:38:07 +0200 Subject: [PATCH] use stream icons --- assets/Icon_LOL_reaction.svg | 5 - assets/Icon_love_reaction.svg | 3 - assets/Icon_thumbs_down_reaction.svg | 3 - assets/Icon_thumbs_up_reaction.svg | 3 - assets/Icon_wut_reaction.svg | 3 - assets/icon_edit.svg | 3 - assets/icon_user_minus.svg | 5 - fonts/stream-icons.ttf | Bin 0 -> 52056 bytes lib/src/channel_bottom_sheet.dart | 13 +- lib/src/channel_list_view.dart | 12 +- lib/src/channel_preview.dart | 7 +- lib/src/message_actions_modal.dart | 15 +- lib/src/reaction_asset.dart | 14 +- lib/src/reaction_bubble.dart | 10 +- lib/src/reaction_picker.dart | 14 +- lib/src/stream_chat_theme.dart | 36 +- lib/src/stream_icons.dart | 1189 ++++++++++++++++++++++++++ lib/stream_chat_flutter.dart | 1 + pubspec.yaml | 8 +- 19 files changed, 1244 insertions(+), 100 deletions(-) delete mode 100644 assets/Icon_LOL_reaction.svg delete mode 100644 assets/Icon_love_reaction.svg delete mode 100644 assets/Icon_thumbs_down_reaction.svg delete mode 100644 assets/Icon_thumbs_up_reaction.svg delete mode 100644 assets/Icon_wut_reaction.svg delete mode 100644 assets/icon_edit.svg delete mode 100644 assets/icon_user_minus.svg create mode 100644 fonts/stream-icons.ttf create mode 100644 lib/src/stream_icons.dart diff --git a/assets/Icon_LOL_reaction.svg b/assets/Icon_LOL_reaction.svg deleted file mode 100644 index 301fe02c..00000000 --- a/assets/Icon_LOL_reaction.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/Icon_love_reaction.svg b/assets/Icon_love_reaction.svg deleted file mode 100644 index 76b09fd3..00000000 --- a/assets/Icon_love_reaction.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/Icon_thumbs_down_reaction.svg b/assets/Icon_thumbs_down_reaction.svg deleted file mode 100644 index 0d55ad2a..00000000 --- a/assets/Icon_thumbs_down_reaction.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/Icon_thumbs_up_reaction.svg b/assets/Icon_thumbs_up_reaction.svg deleted file mode 100644 index ff4dcc72..00000000 --- a/assets/Icon_thumbs_up_reaction.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/Icon_wut_reaction.svg b/assets/Icon_wut_reaction.svg deleted file mode 100644 index c150b264..00000000 --- a/assets/Icon_wut_reaction.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icon_edit.svg b/assets/icon_edit.svg deleted file mode 100644 index 32f9cea7..00000000 --- a/assets/icon_edit.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icon_user_minus.svg b/assets/icon_user_minus.svg deleted file mode 100644 index 47210701..00000000 --- a/assets/icon_user_minus.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/fonts/stream-icons.ttf b/fonts/stream-icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2e4d854086f4e1e0258f7e509df0df139b8dc9da GIT binary patch literal 52056 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

tJawn`}K6L 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 O`TB9h ), IconSlideAction( color: backgroundColor, - icon: LineAwesomeIcons.volume_off, + icon: StreamIcons.mute, onTap: () async { if (!channel.isMuted) { await channel.mute(); @@ -374,13 +372,7 @@ class _ChannelListViewState extends State if (channel.isGroup && !channel.isDistinct) IconSlideAction( color: backgroundColor, - iconWidget: SvgPicture.asset( - 'assets/icon_user_minus.svg', - package: 'stream_chat_flutter', - color: - StreamChatTheme.of(context).primaryIconTheme.color, - width: 22, - ), + icon: StreamIcons.user_minus, onTap: () async { final confirm = await showConfirmationDialog( context, diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index de6c8222..de1daab8 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:jiffy/jiffy.dart'; -import 'package:line_awesome_icons/line_awesome_icons.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/unread_indicator.dart'; @@ -145,11 +144,11 @@ class ChannelPreview extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, children: [ Icon( - LineAwesomeIcons.volume_off, - size: 15, + StreamIcons.mute, + size: 16, ), Text( - 'Channel is muted', + ' Channel is muted', style: StreamChatTheme.of(context) .channelPreviewTheme .subtitle diff --git a/lib/src/message_actions_modal.dart b/lib/src/message_actions_modal.dart index 683f250b..31086885 100644 --- a/lib/src/message_actions_modal.dart +++ b/lib/src/message_actions_modal.dart @@ -1,10 +1,10 @@ import 'dart:ui'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/reaction_picker.dart'; import 'package:stream_chat_flutter/src/stream_channel.dart'; +import 'package:stream_chat_flutter/src/stream_icons.dart'; import 'message_input.dart'; import 'message_widget.dart'; @@ -129,7 +129,7 @@ class MessageActionsModal extends StatelessWidget { Theme.of(context).textTheme.headline6.copyWith(color: Colors.red), ), leading: Icon( - Icons.delete_outline, + StreamIcons.delete, color: Colors.red, ), onTap: () { @@ -148,12 +148,9 @@ class MessageActionsModal extends StatelessWidget { 'Edit message', style: Theme.of(context).textTheme.headline6, ), - leading: SvgPicture.asset( - 'assets/icon_edit.svg', - alignment: Alignment.center, - package: 'stream_chat_flutter', + leading: Icon( + StreamIcons.edit, color: StreamChatTheme.of(context).primaryIconTheme.color, - width: 24, ), onTap: () async { Navigator.pop(context); @@ -255,11 +252,11 @@ class MessageActionsModal extends StatelessWidget { Widget _buildReplyButton(BuildContext context) { return ListTile( title: Text( - 'Start a thread', + 'Thread reply', style: Theme.of(context).textTheme.headline6, ), leading: Icon( - Icons.reply, + StreamIcons.Thread_Reply, color: StreamChatTheme.of(context).primaryIconTheme.color, ), onTap: () { diff --git a/lib/src/reaction_asset.dart b/lib/src/reaction_asset.dart index d33bbf26..5f885643 100644 --- a/lib/src/reaction_asset.dart +++ b/lib/src/reaction_asset.dart @@ -1,11 +1,11 @@ -class ReactionAsset { - final String type; - final String svgAsset; - final String package; +import 'package:flutter/material.dart'; - ReactionAsset({ +class ReactionIcon { + final String type; + final IconData iconData; + + ReactionIcon({ this.type, - this.svgAsset, - this.package, + this.iconData, }); } diff --git a/lib/src/reaction_bubble.dart b/lib/src/reaction_bubble.dart index 46c2b238..c9768c8d 100644 --- a/lib/src/reaction_bubble.dart +++ b/lib/src/reaction_bubble.dart @@ -1,7 +1,6 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; class ReactionBubble extends StatelessWidget { @@ -22,7 +21,7 @@ class ReactionBubble extends StatelessWidget { @override Widget build(BuildContext context) { - final reactionAssets = StreamChatTheme.of(context).reactionAssets; + final reactionAssets = StreamChatTheme.of(context).reactionIcons; return Transform( transform: Matrix4.rotationY(reverse ? pi : 0), alignment: Alignment.center, @@ -55,10 +54,9 @@ class ReactionBubble extends StatelessWidget { ); } - return SvgPicture.asset( - reactionAsset.svgAsset, - package: reactionAsset.package, - height: 16, + return Icon( + reactionAsset.iconData, + size: 16, color: StreamChatTheme.of(context).accentColor, ); }).toList(), diff --git a/lib/src/reaction_picker.dart b/lib/src/reaction_picker.dart index c07c32cb..3b890230 100644 --- a/lib/src/reaction_picker.dart +++ b/lib/src/reaction_picker.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import '../stream_chat_flutter.dart'; @@ -23,7 +22,7 @@ class ReactionPicker extends StatelessWidget { @override Widget build(BuildContext context) { - final reactionAssets = StreamChatTheme.of(context).reactionAssets; + final reactionAssets = StreamChatTheme.of(context).reactionIcons; return Material( color: messageTheme.ownReactionsBackgroundColor, clipBehavior: Clip.hardEdge, @@ -34,15 +33,14 @@ class ReactionPicker extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, - children: reactionAssets.map((reactionAsset) { + children: reactionAssets.map((reactionIcon) { final ownReactionIndex = message.ownReactions?.indexWhere( - (reaction) => reaction.type == reactionAsset.type) ?? + (reaction) => reaction.type == reactionIcon.type) ?? -1; return IconButton( iconSize: 24, - icon: SvgPicture.asset( - reactionAsset.svgAsset, - package: reactionAsset.package, + icon: Icon( + reactionIcon.iconData, color: ownReactionIndex != -1 ? StreamChatTheme.of(context).accentColor : Theme.of(context).iconTheme.color, @@ -56,7 +54,7 @@ class ReactionPicker extends StatelessWidget { } else { sendReaction( context, - reactionAsset.type, + reactionIcon.type, ); } }, diff --git a/lib/src/stream_chat_theme.dart b/lib/src/stream_chat_theme.dart index 0f92a294..56f71a93 100644 --- a/lib/src/stream_chat_theme.dart +++ b/lib/src/stream_chat_theme.dart @@ -3,6 +3,7 @@ import 'package:stream_chat/stream_chat.dart'; import 'package:stream_chat_flutter/src/channel_header.dart'; import 'package:stream_chat_flutter/src/channel_preview.dart'; import 'package:stream_chat_flutter/src/message_input.dart'; +import 'package:stream_chat_flutter/src/stream_icons.dart'; import 'reaction_asset.dart'; @@ -75,7 +76,7 @@ class StreamChatThemeData { final IconThemeData primaryIconTheme; /// Assets used for rendering reactions - final List reactionAssets; + final List reactionIcons; /// Create a theme from scratch StreamChatThemeData({ @@ -90,7 +91,7 @@ class StreamChatThemeData { this.defaultChannelImage, this.defaultUserImage, this.primaryIconTheme, - this.reactionAssets, + this.reactionIcons, }); /// Create a theme from a Material [Theme] @@ -141,7 +142,7 @@ class StreamChatThemeData { Widget Function(BuildContext, Channel) defaultChannelImage, Widget Function(BuildContext, User) defaultUserImage, IconThemeData primaryIconTheme, - List reactionAssets, + List reactionAssets, }) => StreamChatThemeData( primaryColor: primaryColor ?? this.primaryColor, @@ -210,7 +211,7 @@ class StreamChatThemeData { this.otherMessageTheme.avatarTheme, ) ?? this.otherMessageTheme, - reactionAssets: reactionAssets ?? this.reactionAssets, + reactionIcons: reactionAssets ?? this.reactionIcons, ); /// Get the default Stream Chat theme @@ -353,31 +354,26 @@ class StreamChatThemeData { ), ), ), - reactionAssets: [ - ReactionAsset( + reactionIcons: [ + ReactionIcon( type: 'love', - svgAsset: 'assets/Icon_love_reaction.svg', - package: 'stream_chat_flutter', + iconData: StreamIcons.love_reaction, ), - ReactionAsset( + ReactionIcon( type: 'thumbs_up', - svgAsset: 'assets/Icon_thumbs_up_reaction.svg', - package: 'stream_chat_flutter', + iconData: StreamIcons.thumbs_up_reaction, ), - ReactionAsset( + ReactionIcon( type: 'thumbs_down', - svgAsset: 'assets/Icon_thumbs_down_reaction.svg', - package: 'stream_chat_flutter', + iconData: StreamIcons.thumbs_up_reaction_1, ), - ReactionAsset( + ReactionIcon( type: 'lol', - svgAsset: 'assets/Icon_LOL_reaction.svg', - package: 'stream_chat_flutter', + iconData: StreamIcons.LOL_reaction, ), - ReactionAsset( + ReactionIcon( type: 'wut', - svgAsset: 'assets/Icon_wut_reaction.svg', - package: 'stream_chat_flutter', + iconData: StreamIcons.wut_reaction, ), ], ); diff --git a/lib/src/stream_icons.dart b/lib/src/stream_icons.dart new file mode 100644 index 00000000..73d1e5c0 --- /dev/null +++ b/lib/src/stream_icons.dart @@ -0,0 +1,1189 @@ +import 'package:flutter/widgets.dart'; + +class StreamIcons { + StreamIcons._(); + + static const String _fontFamily = 'stream-icons'; + static const String _fontPackage = 'stream_chat_flutter'; + + static const IconData ambulance_car = IconData( + 0xe900, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData ambulance_signal = IconData( + 0xe901, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData ambulance = IconData( + 0xe902, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData apps = IconData( + 0xe903, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData archive = IconData( + 0xe904, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_down_left = IconData( + 0xe905, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_down = IconData( + 0xe906, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_drop_down = IconData( + 0xe907, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_drop_up = IconData( + 0xe908, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_left_up = IconData( + 0xe909, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_left = IconData( + 0xe90a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_right_down = IconData( + 0xe90b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_right = IconData( + 0xe90c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_up_right = IconData( + 0xe90d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData arrow_up = IconData( + 0xe90e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData at_mention = IconData( + 0xe90f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData atom = IconData( + 0xe910, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData attach = IconData( + 0xe911, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData attention = IconData( + 0xe912, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData basket = IconData( + 0xe913, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData blank_empty = IconData( + 0xe914, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData blank = IconData( + 0xe915, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData blood_add = IconData( + 0xe916, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData blood_delete = IconData( + 0xe917, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData brain = IconData( + 0xe918, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData building = IconData( + 0xe919, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData calculator = IconData( + 0xe91a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData calendar = IconData( + 0xe91b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData call_in = IconData( + 0xe91c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData call_out = IconData( + 0xe91d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData call = IconData( + 0xe91e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData camera = IconData( + 0xe91f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData car = IconData( + 0xe920, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData card = IconData( + 0xe921, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData cards = IconData( + 0xe922, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData cash = IconData( + 0xe923, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData chart_line = IconData( + 0xe924, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData chart = IconData( + 0xe925, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData check_all = IconData( + 0xe926, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData check_send = IconData( + 0xe927, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData check = IconData( + 0xe928, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData chemical = IconData( + 0xe929, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData circle_down = IconData( + 0xe92a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData circle_left = IconData( + 0xe92b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData circle_right = IconData( + 0xe92c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData circle_up = IconData( + 0xe92d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData close_circle = IconData( + 0xe92e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData close = IconData( + 0xe92f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData closed = IconData( + 0xe930, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData coin = IconData( + 0xe931, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData command_runner_rocket = IconData( + 0xe932, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData compass = IconData( + 0xe933, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData copy = IconData( + 0xe934, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData couch = IconData( + 0xe935, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_left_down = IconData( + 0xe936, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_down_left = IconData( + 0xe937, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_down_right = IconData( + 0xe938, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_left_up = IconData( + 0xe939, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_right_up = IconData( + 0xe93a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_up_left = IconData( + 0xe93b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_line_up_right = IconData( + 0xe93c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData curve_right_down = IconData( + 0xe93d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData daily_planner = IconData( + 0xe93e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData date = IconData( + 0xe93f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData delete = IconData( + 0xe940, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData desktop = IconData( + 0xe941, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData disabled = IconData( + 0xe942, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData dna = IconData( + 0xe943, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData doc = IconData( + 0xe944, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData documents = IconData( + 0xe945, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData down = IconData( + 0xe946, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData download_1 = IconData( + 0xe947, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData download = IconData( + 0xe948, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData edit = IconData( + 0xe949, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData emergency_call_add = IconData( + 0xe94a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData emergency_call = IconData( + 0xe94b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData emergency = IconData( + 0xe94c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData error = IconData( + 0xe94d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData exit = IconData( + 0xe94e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData experiment = IconData( + 0xe94f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData eye_off = IconData( + 0xe950, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData eye = IconData( + 0xe951, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData face = IconData( + 0xe952, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData female = IconData( + 0xe953, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData filter_hor = IconData( + 0xe954, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData filter = IconData( + 0xe955, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData first_aid = IconData( + 0xe956, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData flag = IconData( + 0xe957, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData flash = IconData( + 0xe958, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData folder = IconData( + 0xe959, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData form_edit = IconData( + 0xe95a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData grey600 = IconData( + 0xe95b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData grid = IconData( + 0xe95c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData heart_outline_add = IconData( + 0xe95d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData heart_outline_delete = IconData( + 0xe95e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData heart_pill = IconData( + 0xe95f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData heart_1 = IconData( + 0xe960, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData heart = IconData( + 0xe961, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData help = IconData( + 0xe962, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData home_1 = IconData( + 0xe963, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData home = IconData( + 0xe964, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData hospital = IconData( + 0xe965, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData hourglass_empty = IconData( + 0xe966, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData hourglass_full_1 = IconData( + 0xe967, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData hourglass_full = IconData( + 0xe968, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData hourglass = IconData( + 0xe969, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData insurance_outline = IconData( + 0xe96a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData insurance = IconData( + 0xe96b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData left_right = IconData( + 0xe96c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData left = IconData( + 0xe96d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData light = IconData( + 0xe96e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData lightning = IconData( + 0xe96f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData link = IconData( + 0xe970, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData location_map = IconData( + 0xe971, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData location = IconData( + 0xe972, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData LOL_reaction = IconData( + 0xe973, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData love_reaction = IconData( + 0xe974, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData love = IconData( + 0xe975, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData lungs = IconData( + 0xe976, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData mail_open = IconData( + 0xe977, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData mail = IconData( + 0xe978, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData male = IconData( + 0xe979, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_bed = IconData( + 0xe97a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_blank = IconData( + 0xe97b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_card_add = IconData( + 0xe97c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_card = IconData( + 0xe97d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_cross = IconData( + 0xe97e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData medical_load = IconData( + 0xe97f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData menu_point_v = IconData( + 0xe980, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData menu_point_1 = IconData( + 0xe981, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData menu_point = IconData( + 0xe982, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData menu = IconData( + 0xe983, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData message = IconData( + 0xe984, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData mic = IconData( + 0xe985, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData minus_circle = IconData( + 0xe986, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData minus = IconData( + 0xe987, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData molecule = IconData( + 0xe988, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData money = IconData( + 0xe989, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData multiply_circle = IconData( + 0xe98a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData mute = IconData( + 0xe98b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData notification_off = IconData( + 0xe98c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData notification = IconData( + 0xe98d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData nurse = IconData( + 0xe98e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData open = IconData( + 0xe98f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData patch = IconData( + 0xe990, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData payment = IconData( + 0xe991, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pc_graph = IconData( + 0xe992, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pen_write = IconData( + 0xe993, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData photo = IconData( + 0xe994, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData picture = IconData( + 0xe995, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pie_chart_empty = IconData( + 0xe996, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pie_chart_line = IconData( + 0xe997, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pie_chart = IconData( + 0xe998, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pill = IconData( + 0xe999, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pin = IconData( + 0xe99a, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData plus_circle = IconData( + 0xe99b, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData plus = IconData( + 0xe99c, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData podium = IconData( + 0xe99d, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pointer_leftright = IconData( + 0xe99e, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pointer = IconData( + 0xe99f, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData potion_circle = IconData( + 0xe9a0, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData potion_health = IconData( + 0xe9a1, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData potion = IconData( + 0xe9a2, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData print = IconData( + 0xe9a3, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pulse = IconData( + 0xe9a4, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData pyramid = IconData( + 0xe9a5, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData radiation = IconData( + 0xe9a6, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData rating = IconData( + 0xe9a7, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData record = IconData( + 0xe9a8, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData refresh_back = IconData( + 0xe9a9, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData refresh = IconData( + 0xe9aa, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData reload_vert = IconData( + 0xe9ab, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData reload = IconData( + 0xe9ac, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData right = IconData( + 0xe9ad, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData roll = IconData( + 0xe9ae, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData sale = IconData( + 0xe9af, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData save_check = IconData( + 0xe9b0, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData save_1 = IconData( + 0xe9b1, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData save = IconData( + 0xe9b2, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData schedule_square = IconData( + 0xe9b3, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData schedule = IconData( + 0xe9b4, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData scissors = IconData( + 0xe9b5, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData search = IconData( + 0xe9b6, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData send_message = IconData( + 0xe9b7, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData settings = IconData( + 0xe9b8, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData share_1 = IconData( + 0xe9b9, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData share = IconData( + 0xe9ba, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData signboard = IconData( + 0xe9bb, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData smile_sad = IconData( + 0xe9bc, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData smile = IconData( + 0xe9bd, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData sorting_down = IconData( + 0xe9be, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData sorting_up = IconData( + 0xe9bf, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData sorting = IconData( + 0xe9c0, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData square_down = IconData( + 0xe9c1, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData square_left = IconData( + 0xe9c2, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData square_right = IconData( + 0xe9c3, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData square_up = IconData( + 0xe9c4, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData stand = IconData( + 0xe9c5, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData star = IconData( + 0xe9c6, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData stats = IconData( + 0xe9c7, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData stethoscope = IconData( + 0xe9c8, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData sticker = IconData( + 0xe9c9, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData storage = IconData( + 0xe9ca, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData strl_down = IconData( + 0xe9cb, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData strl_left = IconData( + 0xe9cc, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData strl_right = IconData( + 0xe9cd, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData strl_up = IconData( + 0xe9ce, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData syringe = IconData( + 0xe9cf, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData tablet = IconData( + 0xe9d0, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData target = IconData( + 0xe9d1, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData test_tube = IconData( + 0xe9d2, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData Thread_Reply = IconData( + 0xe9d3, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData thumbs_up_reaction_1 = IconData( + 0xe9d4, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData thumbs_up_reaction = IconData( + 0xe9d5, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData time_wait = IconData( + 0xe9d6, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData time_1 = IconData( + 0xe9d7, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData time = IconData( + 0xe9d8, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData tooth = IconData( + 0xe9d9, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData tube_full = IconData( + 0xe9da, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData tv_check = IconData( + 0xe9db, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData tv_rating = IconData( + 0xe9dc, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData unfold_less_h = IconData( + 0xe9dd, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData unfold_less = IconData( + 0xe9de, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData unfold_more_h = IconData( + 0xe9df, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData unfold_more = IconData( + 0xe9e0, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData unread = IconData( + 0xe9e1, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData up_down = IconData( + 0xe9e2, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData up = IconData( + 0xe9e3, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData upload = IconData( + 0xe9e4, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData user_add = IconData( + 0xe9e5, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData user_delete = IconData( + 0xe9e6, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData user_minus = IconData( + 0xe9e7, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData user = IconData( + 0xe9e8, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData voice = IconData( + 0xe9e9, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData world = IconData( + 0xe9ea, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); + static const IconData wut_reaction = IconData( + 0xe9eb, + fontFamily: _fontFamily, + fontPackage: _fontPackage, + ); +} diff --git a/lib/stream_chat_flutter.dart b/lib/stream_chat_flutter.dart index dffbd154..4c5760bf 100644 --- a/lib/stream_chat_flutter.dart +++ b/lib/stream_chat_flutter.dart @@ -23,6 +23,7 @@ export 'src/sending_indicator.dart'; export 'src/stream_channel.dart'; export 'src/stream_chat.dart'; export 'src/stream_chat_theme.dart'; +export 'src/stream_icons.dart'; export 'src/system_message.dart'; export 'src/thread_header.dart'; export 'src/typing_indicator.dart'; diff --git a/pubspec.yaml b/pubspec.yaml index ecbeabe7..3fb1b5ff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,18 +23,18 @@ dependencies: file_picker: ^2.0.0 image_picker: ^0.6.7+2 flutter_keyboard_visibility: ^3.2.1 - flutter_svg: ^0.18.0 stream_chat: ^0.2.8 mime: ^0.9.6+3 visibility_detector: ^0.1.5 - line_awesome_icons: ^1.0.4+2 http_parser: ^3.1.4 flutter_slidable: ^0.5.4 carousel_slider: ^2.2.1 flutter: - assets: - - assets/ + fonts: + - family: stream-icons + fonts: + - asset: fonts/stream-icons.ttf dev_dependencies: pedantic: ^1.9.0