Merge branch 'feature/new-ui' into feature/group-info-screen

This commit is contained in:
Salvatore Giordano
2021-01-04 13:44:04 +01:00
8 changed files with 196 additions and 250 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import 'channel_info.dart';
import 'option_list_tile.dart';
class ChannelBottomSheet extends StatefulWidget {
VoidCallback onViewInfoTap;
final VoidCallback onViewInfoTap;
ChannelBottomSheet({this.onViewInfoTap});
+2 -6
View File
@@ -47,14 +47,10 @@ class ImageFooter extends StatefulWidget implements PreferredSizeWidget {
this.message,
this.videoPackages,
this.mediaSelectedCallBack,
}) : preferredSize = Size.fromHeight(kToolbarHeight),
super(key: key);
}) : super(key: key);
@override
_ImageFooterState createState() => _ImageFooterState();
@override
final Size preferredSize;
}
class _ImageFooterState extends State<ImageFooter> {
@@ -168,7 +164,7 @@ class _ImageFooterState extends State<ImageFooter> {
);
}
Widget _buildPhotosModal(context) {
void _buildPhotosModal(context) {
var videoAttachments = widget.mediaAttachments
.where((element) => element.type == 'video')
.toList();
+3 -8
View File
@@ -37,13 +37,12 @@ class _MediaListViewState extends State<MediaListView> {
final _media = <AssetEntity>[];
final ScrollController _scrollController = ScrollController();
int _currentPage = 0;
bool _endPagination = false;
@override
Widget build(BuildContext context) {
return LazyLoadScrollView(
onEndOfPage: () {
_getMedia();
onEndOfPage: () async {
return _getMedia();
},
child: GridView.builder(
itemCount: _media.length,
@@ -161,11 +160,7 @@ class _MediaListViewState extends State<MediaListView> {
final media = await assetList.getAssetListPaged(_currentPage, 50);
if (media.isEmpty) {
setState(() {
_endPagination = true;
});
} else {
if (!media.isEmpty) {
setState(() {
_media.addAll(media);
});
+14 -40
View File
@@ -266,6 +266,8 @@ class _MessageWidgetState extends State<MessageWidget> {
true;
return Portal(
child: GestureDetector(
onLongPress: () => onLongPress(context),
child: Padding(
padding: widget.padding ?? EdgeInsets.all(8),
child: Transform(
@@ -317,7 +319,9 @@ class _MessageWidgetState extends State<MessageWidget> {
Padding(
padding: widget.showReactions
? EdgeInsets.only(
top: widget.message.reactionCounts
top: widget
.message
.reactionCounts
?.isNotEmpty ==
true
? 18
@@ -332,8 +336,8 @@ class _MessageWidgetState extends State<MessageWidget> {
widget.reverse ? pi : 0),
child: DeletedMessage(
reverse: widget.reverse,
borderRadiusGeometry:
widget.borderRadiusGeometry,
borderRadiusGeometry: widget
.borderRadiusGeometry,
borderSide: widget.borderSide,
shape: widget.shape,
messageTheme:
@@ -375,7 +379,8 @@ class _MessageWidgetState extends State<MessageWidget> {
hasFiles ? 2.0 : 0.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment
.start,
mainAxisSize:
MainAxisSize.min,
children: <Widget>[
@@ -385,7 +390,8 @@ class _MessageWidgetState extends State<MessageWidget> {
.trim()
.isNotEmpty &&
!isGiphy)
_buildTextBubble(context),
_buildTextBubble(
context),
],
),
),
@@ -438,6 +444,7 @@ class _MessageWidgetState extends State<MessageWidget> {
),
),
),
),
);
}
@@ -579,33 +586,6 @@ class _MessageWidgetState extends State<MessageWidget> {
widget.message.attachments?.any((element) => element.type == 'giphy') ==
true;
Widget _buildReadIndicator() {
var padding = 0.0;
return Stack(
children: widget.readList.map((e) {
padding += 10.0;
return Positioned(
left: padding - 10,
bottom: 0,
top: 0,
child: Material(
color: StreamChatTheme.of(context).colorTheme.white,
clipBehavior: Clip.antiAlias,
shape: CircleBorder(),
child: Padding(
padding: const EdgeInsets.all(1.0),
child: UserAvatar(
user: e.user,
constraints: BoxConstraints.loose(Size.fromRadius(8)),
showOnlineStatus: false,
),
),
),
);
}).toList(),
);
}
Widget _buildReactionIndicator(
BuildContext context,
) {
@@ -773,9 +753,7 @@ class _MessageWidgetState extends State<MessageWidget> {
}) {
final attachmentShape =
widget.attachmentShape ?? widget.shape ?? _getDefaultShape(context);
return GestureDetector(
onLongPress: () => onLongPress(context),
child: Material(
return Material(
color: _getBackgroundColor(),
clipBehavior: Clip.antiAlias,
shape: attachmentShape,
@@ -792,7 +770,6 @@ class _MessageWidgetState extends State<MessageWidget> {
),
),
),
),
);
}
@@ -888,10 +865,7 @@ class _MessageWidgetState extends State<MessageWidget> {
],
),
);
return GestureDetector(
onLongPress: () => onLongPress(context),
child: child,
);
return child;
}
bool get isOnlyEmoji =>
+5 -5
View File
@@ -136,11 +136,11 @@ class _ReactionPickerState extends State<ReactionPicker>
/// Add a reaction to the message
void sendReaction(BuildContext context, String reactionType) {
StreamChannel.of(context)
.channel
.sendReaction(widget.message, reactionType, extraData: {
'enforce_unique': true,
});
StreamChannel.of(context).channel.sendReaction(
widget.message,
reactionType,
enforceUnique: true,
);
pop();
}
-1
View File
@@ -112,7 +112,6 @@ class StreamChatState extends State<StreamChat> with WidgetsBindingObserver {
inputBackground: themeData?.channelTheme?.inputBackground,
messageInputButtonIconTheme:
themeData?.channelTheme?.messageInputButtonIconTheme,
inputGradient: themeData?.channelTheme?.inputGradient,
messageInputButtonTheme:
themeData?.channelTheme?.messageInputButtonTheme,
),
+5 -23
View File
@@ -92,12 +92,7 @@ class StreamChatThemeData {
return defaultTheme.copyWith(
primaryIconTheme: theme.primaryIconTheme,
channelTheme: defaultTheme.channelTheme.copyWith(
inputGradient: LinearGradient(colors: [
theme.accentColor.withOpacity(.5),
theme.accentColor,
]),
),
channelTheme: defaultTheme.channelTheme,
ownMessageTheme: defaultTheme.ownMessageTheme.copyWith(
replies: defaultTheme.ownMessageTheme.replies.copyWith(
color: theme.accentColor,
@@ -168,8 +163,6 @@ class StreamChatThemeData {
this.channelTheme.messageInputButtonIconTheme,
messageInputButtonTheme: channelTheme.messageInputButtonTheme ??
this.channelTheme.messageInputButtonTheme,
inputGradient:
channelTheme.inputGradient ?? this.channelTheme.inputGradient,
inputBackground: channelTheme.inputBackground ??
this.channelTheme.inputBackground,
) ??
@@ -273,10 +266,6 @@ class StreamChatThemeData {
),
),
inputBackground: colorTheme.white.withAlpha(12),
inputGradient: LinearGradient(colors: [
Color(0xFF00AEFF),
Color(0xFF0076FF),
]),
),
ownMessageTheme: MessageTheme(
messageText: TextStyle(
@@ -342,19 +331,19 @@ class StreamChatThemeData {
assetName: 'Icon_love_reaction.svg',
),
ReactionIcon(
type: 'thumbs_up',
type: 'like',
assetName: 'Icon_thumbs_up_reaction.svg',
),
ReactionIcon(
type: 'thumbs_down',
type: 'sad',
assetName: 'Icon_thumbs_down_reaction.svg',
),
ReactionIcon(
type: 'lol',
type: 'haha',
assetName: 'Icon_LOL_reaction.svg',
),
ReactionIcon(
type: 'wut',
type: 'wow',
assetName: 'Icon_wut_reaction.svg',
),
],
@@ -597,9 +586,6 @@ class ChannelTheme {
/// Theme of the send button in [MessageInput]
final ButtonThemeData messageInputButtonTheme;
/// Gradient of [MessageInput]
final Gradient inputGradient;
/// Background color of [MessageInput]
final Color inputBackground;
@@ -608,7 +594,6 @@ class ChannelTheme {
this.messageInputButtonIconTheme,
this.messageInputButtonTheme,
this.inputBackground,
this.inputGradient,
});
/// Creates a copy of [ChannelTheme] with specified attributes overridden.
@@ -616,7 +601,6 @@ class ChannelTheme {
ChannelHeaderTheme channelHeaderTheme,
IconThemeData messageInputButtonIconTheme,
ButtonThemeData messageInputButtonTheme,
Gradient inputGradient,
Color inputBackground,
}) =>
ChannelTheme(
@@ -633,8 +617,6 @@ class ChannelTheme {
messageInputButtonIconTheme ?? this.messageInputButtonIconTheme,
messageInputButtonTheme:
messageInputButtonTheme ?? this.messageInputButtonTheme,
inputGradient: inputGradient ?? this.inputGradient,
inputBackground: inputBackground ?? this.inputBackground,
);
}
+1 -1
View File
@@ -28,7 +28,7 @@ dependencies:
file_picker: ^2.0.12
image_picker: ^0.6.7+2
flutter_keyboard_visibility: ^3.3.0
stream_chat: ^0.2.20
stream_chat: ^0.2.21+2
mime: ^0.9.6+3
video_compress: ^2.1.1
visibility_detector: ^0.1.5