Merge remote-tracking branch 'origin/develop' into refactor/message-status
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
## Upcoming
|
||||
## 6.4.0
|
||||
|
||||
🐞 Fixed
|
||||
|
||||
- [[#1293]](https://github.com/GetStream/stream-chat-flutter/issues/1293) Fixed wrong message order when sending
|
||||
messages quickly.
|
||||
- [[#1612]](https://github.com/GetStream/stream-chat-flutter/issues/1612) Fixed `Channel.isMutedStream` does not emit
|
||||
when channel mute expires.
|
||||
|
||||
## 6.3.0
|
||||
|
||||
|
||||
@@ -1510,15 +1510,32 @@ class Channel {
|
||||
);
|
||||
}
|
||||
|
||||
// Timer to keep track of mute expiration. This is used to update the channel
|
||||
// state when the mute expires.
|
||||
Timer? _muteExpirationTimer;
|
||||
|
||||
/// Mutes the channel.
|
||||
Future<EmptyResponse> mute({Duration? expiration}) {
|
||||
_checkInitialized();
|
||||
|
||||
// If there is a expiration set, we will set a timer to automatically unmute
|
||||
// the channel when the mute expires.
|
||||
if (expiration != null) {
|
||||
_muteExpirationTimer?.cancel();
|
||||
_muteExpirationTimer = Timer(expiration, unmute);
|
||||
}
|
||||
|
||||
return _client.muteChannel(cid!, expiration: expiration);
|
||||
}
|
||||
|
||||
/// Unmute the channel.
|
||||
Future<EmptyResponse> unmute() {
|
||||
_checkInitialized();
|
||||
|
||||
// Cancel the mute expiration timer if it is set.
|
||||
_muteExpirationTimer?.cancel();
|
||||
_muteExpirationTimer = null;
|
||||
|
||||
return _client.unmuteChannel(cid!);
|
||||
}
|
||||
|
||||
@@ -1648,6 +1665,7 @@ class Channel {
|
||||
void dispose() {
|
||||
client.state.removeChannel('$cid');
|
||||
state?.dispose();
|
||||
_muteExpirationTimer?.cancel();
|
||||
_keyStrokeHandler.cancel();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@ import 'package:stream_chat/src/client/client.dart';
|
||||
/// Current package version
|
||||
/// Used in [StreamChatClient] to build the `x-stream-client` header
|
||||
// ignore: constant_identifier_names
|
||||
const PACKAGE_VERSION = '6.3.0';
|
||||
const PACKAGE_VERSION = '6.4.0';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: stream_chat
|
||||
homepage: https://getstream.io/
|
||||
description: The official Dart client for Stream Chat, a service for building chat applications.
|
||||
version: 6.3.0
|
||||
version: 6.4.0
|
||||
repository: https://github.com/GetStream/stream-chat-flutter
|
||||
issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues
|
||||
|
||||
|
||||
@@ -2481,6 +2481,31 @@ void main() {
|
||||
)).called(1);
|
||||
});
|
||||
|
||||
test('`.mute with expiration`', () async {
|
||||
const expiration = Duration(seconds: 3);
|
||||
|
||||
when(() => client.muteChannel(
|
||||
channelCid,
|
||||
expiration: expiration,
|
||||
)).thenAnswer((_) async => EmptyResponse());
|
||||
|
||||
when(() => client.unmuteChannel(channelCid))
|
||||
.thenAnswer((_) async => EmptyResponse());
|
||||
|
||||
final res = await channel.mute(expiration: expiration);
|
||||
|
||||
expect(res, isNotNull);
|
||||
|
||||
verify(() => client.muteChannel(
|
||||
channelCid,
|
||||
expiration: expiration,
|
||||
)).called(1);
|
||||
|
||||
// wait for expiration
|
||||
await Future.delayed(expiration);
|
||||
verify(() => client.unmuteChannel(channelCid)).called(1);
|
||||
});
|
||||
|
||||
test('`.unmute`', () async {
|
||||
when(
|
||||
() => client.unmuteChannel(channelCid),
|
||||
|
||||
Reference in New Issue
Block a user