Adding start/stop watching event
This commit is contained in:
@@ -1754,6 +1754,26 @@ class ChannelClientState {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _listenUserStartWatching() {
|
||||||
|
_subscriptions.add(
|
||||||
|
_channel.on(EventType.userWatchingStart).listen((event) {
|
||||||
|
if (event.user != null) {
|
||||||
|
_incrementWatcher(event.user!);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _listenUserStopWatching() {
|
||||||
|
_subscriptions.add(
|
||||||
|
_channel.on(EventType.userWatchingStop).listen((event) {
|
||||||
|
if (event.user != null) {
|
||||||
|
channelState.watchers?.remove(event.user);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
void _listenMemberUnbanned() {
|
void _listenMemberUnbanned() {
|
||||||
_subscriptions.add(_channel
|
_subscriptions.add(_channel
|
||||||
.on(EventType.userUnbanned)
|
.on(EventType.userUnbanned)
|
||||||
@@ -1770,6 +1790,19 @@ class ChannelClientState {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _incrementWatcher(User user) {
|
||||||
|
List<User> newWatchers;
|
||||||
|
|
||||||
|
if (channelState.watchers == null) {
|
||||||
|
channelState.watchers!.add(user);
|
||||||
|
newWatchers = channelState.watchers!;
|
||||||
|
} else {
|
||||||
|
newWatchers = [user];
|
||||||
|
}
|
||||||
|
|
||||||
|
channelState.copyWith(watchers: newWatchers);
|
||||||
|
}
|
||||||
|
|
||||||
void _updateMember(Member member) {
|
void _updateMember(Member member) {
|
||||||
final currentMembers = [...members];
|
final currentMembers = [...members];
|
||||||
final memberIndex = currentMembers.indexWhere(
|
final memberIndex = currentMembers.indexWhere(
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ class EventType {
|
|||||||
/// Event sent when updating a message
|
/// Event sent when updating a message
|
||||||
static const String messageUpdated = 'message.updated';
|
static const String messageUpdated = 'message.updated';
|
||||||
|
|
||||||
|
/// Event sent when a user starts watching a channel
|
||||||
|
static const String userWatchingStart = 'user.watching.start';
|
||||||
|
|
||||||
|
/// Event sent when a user stops watching a channel
|
||||||
|
static const String userWatchingStop = 'user.watching.stop';
|
||||||
|
|
||||||
/// Event sent when reading a message
|
/// Event sent when reading a message
|
||||||
static const String messageRead = 'message.read';
|
static const String messageRead = 'message.read';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user