Merge pull request #783 from GetStream/hotfix/userPresence

fix(llc,ui): fix user presence indicator update
This commit is contained in:
Salvatore Giordano
2021-11-24 15:11:41 +01:00
committed by GitHub
8 changed files with 50 additions and 9 deletions
+1
View File
@@ -8,6 +8,7 @@
- `closeConnection()` now uses `normalClosure` status when closing websocket.
- Fixed local unread count indicator increasing for thread replies
- Fixed user presence indicator not updating correctly
## 3.2.0
@@ -179,5 +179,14 @@ class User extends Equatable {
);
@override
List<Object?> get props => [id, role];
List<Object?> get props => [
id,
role,
lastActive,
online,
extraData,
banned,
teams,
language,
];
}
@@ -70,13 +70,19 @@ void main() {
expect(
newReaction.extraData, {'updated_at': '2020-01-28T22:17:31.108742Z'});
final newUserCreateTime = DateTime.now();
newReaction = reaction.copyWith(
type: 'lol',
createdAt: DateTime.parse('2021-01-28T22:17:31.108742Z'),
extraData: {},
messageId: 'test',
score: 2,
user: User(id: 'test'),
user: User(
id: 'test',
createdAt: newUserCreateTime,
updatedAt: newUserCreateTime,
),
userId: 'test',
);
@@ -88,12 +94,21 @@ void main() {
expect(newReaction.extraData, {});
expect(newReaction.messageId, 'test');
expect(newReaction.score, 2);
expect(newReaction.user, User(id: 'test'));
expect(
newReaction.user,
User(
id: 'test',
createdAt: newUserCreateTime,
updatedAt: newUserCreateTime,
),
);
expect(newReaction.userId, 'test');
});
test('merge', () {
final reaction = Reaction.fromJson(jsonFixture('reaction.json'));
final newUserCreateTime = DateTime.now();
final newReaction = reaction.merge(
Reaction(
type: 'lol',
@@ -101,7 +116,11 @@ void main() {
extraData: {},
messageId: 'test',
score: 2,
user: User(id: 'test'),
user: User(
id: 'test',
createdAt: newUserCreateTime,
updatedAt: newUserCreateTime,
),
userId: 'test',
),
);
@@ -114,7 +133,14 @@ void main() {
expect(newReaction.extraData, {});
expect(newReaction.messageId, 'test');
expect(newReaction.score, 2);
expect(newReaction.user, User(id: 'test'));
expect(
newReaction.user,
User(
id: 'test',
createdAt: newUserCreateTime,
updatedAt: newUserCreateTime,
),
);
expect(newReaction.userId, 'test');
});
});
@@ -12,6 +12,7 @@
- Fixed `MessageWidget` null errors associated with `channel.memberCount`.
- Fixed adding attachments on web.
- [[#767]](https://github.com/GetStream/stream-chat-flutter/issues/767): Fix `MessageInput` focus behaviour when sending messages.
- Fixed user presence indicator not updating correctly
## 3.2.0
@@ -59,9 +59,10 @@ class ChannelInfo extends StatelessWidget {
final memberCount = channel.memberCount;
if (memberCount != null && memberCount > 2) {
var text = context.translations.membersCountText(memberCount);
final watcherCount = channel.state?.watcherCount ?? 0;
if (watcherCount > 0) {
text += ' ${context.translations.watchersCountText(watcherCount)}';
final onlineCount =
members?.where((m) => m.user?.online == true).length ?? 0;
if (onlineCount > 0) {
text += ', ${context.translations.watchersCountText(onlineCount)}';
}
alternativeWidget = Text(
text,
@@ -81,6 +81,7 @@ class GroupAvatar extends StatelessWidget {
),
initialData: member,
builder: (context, member) => UserAvatar(
showOnlineStatus: false,
user: member.user!,
borderRadius: BorderRadius.zero,
),
@@ -118,6 +119,7 @@ class GroupAvatar extends StatelessWidget {
),
initialData: member,
builder: (context, member) => UserAvatar(
showOnlineStatus: false,
user: member.user!,
borderRadius: BorderRadius.zero,
),
@@ -323,6 +323,8 @@ class MessageInput extends StatefulWidget {
/// Defaults to false.
final bool mentionAllAppUsers;
/// Defines if the [MessageInput] loses focuses after a message is sent.
/// The default behaviour keeps focus until a command is enabled.
final bool? shouldKeepFocusAfterMessage;
@override
@@ -45,7 +45,6 @@ void main() {
role: 'testRole',
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
lastActive: DateTime.now(),
online: math.Random().nextBool(),
banned: math.Random().nextBool(),
);