eventsFor<T> method

Stream<AnalyticsEvent> eventsFor<T>()

Listen to analytics events. These will be filtered by checking T in the App.environment if it's a AnalyticsEventFilterEnvironment to see if a given event should be sent to that type T.

Implementation

Stream<AnalyticsEvent> eventsFor<T>() {
  return events
      .map<AnalyticsEvent?>((event) {
        final tEnvironment =
            getApp().environmentAs<AnalyticsEventFilterEnvironment>();

        if (tEnvironment?.analyticsEventFilter.containsKey(T) == true) {
          return tEnvironment!.analyticsEventFilter[T]!(event);
        }
        return event;
      })
      .where((event) => event != null)
      .map((event) => event!);
}