           reset()
           @extractCacheTimeStamps cache
           @listController.listActivitiesFromCache cache
+          callback? cache
+
         @fetchPublicActivities options
       else
         @once "followingFeedFetched_#{eventSuffix}", (activities)=>
           reset()
           @extractTeasersTimeStamps activities
           @listController.listActivities activities
+          callback? activities
+
         @fetchFollowingActivities options
 
       # log "------------------    populateActivity", @getActivityFilter(), @lastFrom

    # if @mainController.appIsReady then @putListeners()
    # else @mainController.on 'AppIsReady', => @putListeners()

    #@status = KD.getSingleton "status"
    #@status.on "reconnected", (conn)=>
      #if conn && conn.reason is "internetDownForLongTime"
      #then @refresh()
      #else @fetchSomeActivities()

  loadView:->
    @getView().feedWrapper.ready (controller)=>

    return  if @isLoading

    @resetAll()
    @populateActivityWithTimeout()

  populateActivityWithTimeout:->
    @populateActivity {},\
      KD.utils.getTimedOutCallbackOne
        name      : "populateActivity",
        onSuccess : -> KD.logToMixpanel "refresh activity feed success"
        onTimeout : @recover.bind this

  recover:->
    KD.logToMixpanel "activity feed render failed; recovering"

    @isLoading = no
    @status.reconnect()
