diff --git a/example/lib/main.dart b/example/lib/main.dart index 137186c7..4e997156 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -68,6 +68,7 @@ void main() async { 's2dxdhpxd94g', logLevel: Level.INFO, showLocalNotification: Platform.isAndroid ? showLocalNotification : null, + backgroundKeepAlive: Duration.zero, ); await client.setUser( @@ -87,13 +88,12 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - final theme = ThemeData(); return MaterialApp( - theme: theme, + theme: ThemeData.light(), + darkTheme: ThemeData.dark(), themeMode: ThemeMode.system, home: Container( child: StreamChat( - streamChatThemeData: StreamChatThemeData.fromTheme(theme), client: client, child: ChannelListPage(), ), diff --git a/lib/src/channel_list_view.dart b/lib/src/channel_list_view.dart index ec6e99f5..7b6a78a0 100644 --- a/lib/src/channel_list_view.dart +++ b/lib/src/channel_list_view.dart @@ -55,6 +55,7 @@ class ChannelListView extends StatefulWidget { this.sort, this.pagination, this.onChannelTap, + this.onChannelLongPress, this.channelWidget, this.channelPreviewBuilder, this.errorBuilder, @@ -92,6 +93,9 @@ class ChannelListView extends StatefulWidget { /// with the widget [channelWidget] as child. final ChannelTapCallback onChannelTap; + /// Function called when long pressing on a channel + final Function(Channel) onChannelLongPress; + /// Widget used when opening a channel final Widget channelWidget; @@ -271,6 +275,7 @@ class _ChannelListViewState extends State ); } else { child = ChannelPreview( + onLongPress: widget.onChannelLongPress, channel: channel, onImageTap: widget.onImageTap != null ? () { diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index ff81cc7c..1e86f4fb 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -23,6 +23,9 @@ class ChannelPreview extends StatelessWidget { /// Function called when tapping this widget final void Function(Channel) onTap; + /// Function called when long pressing this widget + final void Function(Channel) onLongPress; + /// Channel displayed final Channel channel; @@ -33,6 +36,7 @@ class ChannelPreview extends StatelessWidget { @required this.channel, Key key, this.onTap, + this.onLongPress, this.onImageTap, }) : super(key: key); @@ -40,7 +44,14 @@ class ChannelPreview extends StatelessWidget { Widget build(BuildContext context) { return ListTile( onTap: () { - onTap(channel); + if (onTap != null) { + onTap(channel); + } + }, + onLongPress: () { + if (onLongPress != null) { + onLongPress(channel); + } }, leading: ChannelImage( onTap: onImageTap, diff --git a/pubspec.yaml b/pubspec.yaml index 13af2fc0..d7661473 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,7 +20,8 @@ dependencies: file_picker: ^1.8.0+2 image_picker: ^0.6.5+3 flutter_keyboard_visibility: ^2.0.0 - stream_chat: ^0.2.0-alpha+8 + stream_chat: + path: ../stream_chat_dart mime: ^0.9.6+3 visibility_detector: ^0.1.4 http_parser: ^3.1.4