     @filter = options.filter if options.filter
     @data = options.data || {}
     @on 'reset', -> @select(undefined)
+    @on 'sync', @savePollInterval
 
   # Default filter accepts all models
   filter: (model) -> true

  fetch: (options = {}) ->
    @oldestTimestamp = @donePaginating = null if options.reset
    options.data = _.extend({}, @data, options.data || {})

    # API uses If-Modified-Since to determine which notifications to fetch. We
    # want all of them if the collection is currently empty.
    if @isEmpty()
      options.beforeSend = (xhr) =>
        xhr.setRequestHeader('If-Modified-Since', '')


    model if @filter(model)

  # Internal: Save the poll interval returned from the API
  savePollInterval: (collection, _, options) ->
    if interval = options.xhr.getResponseHeader('X-Poll-Interval')
      @pollInterval = Number(interval) * 1000
