subscribeToEvents method

void subscribeToEvents()

Starts listening to the client events.

Implementation

void subscribeToEvents() {
  if (_eventsSubscription != null) {
    cancelEventSubscription();
  }

  _eventsSubscription = CompositeSubscription();
  _eventsSubscription!
    ..add(_client
        .on()
        .where((event) =>
            event.me != null && event.type != EventType.healthCheck)
        .map((e) => e.me!)
        .listen((user) {
      currentUser = currentUser?.merge(user) ?? user;
    }))
    ..add(_client
        .on()
        .map((event) => event.unreadChannels)
        .whereType<int>()
        .listen((count) {
      currentUser = currentUser?.copyWith(unreadChannels: count);
    }))
    ..add(_client
        .on()
        .map((event) => event.totalUnreadCount)
        .whereType<int>()
        .listen((count) {
      currentUser = currentUser?.copyWith(totalUnreadCount: count);
    }));

  _listenChannelLeft();

  _listenChannelDeleted();

  _listenChannelHidden();

  _listenUserUpdated();

  _listenAllChannelsRead();
}