private void setStatuses(TwitterStatuses statuses) {

    if (statuses != null && statuses.getStatusCount() > 0) {
      mConversationStatuses = new TwitterStatuses();

      for (int i = 0; i < statuses.getStatusCount(); i++) {
        TwitterStatus status = statuses.getStatus(i);
        if (status.mId != mTwitterStatus.mId) {
          mConversationStatuses.add(new TwitterStatus(status));
        }
      }

      if (mConversationStatuses.getStatusCount() == 0) {
        mConversationStatuses = null;
      }
    }
  }
  private void updateViewVisibility(boolean loadHasFinished) {

    if (loadHasFinished == false
        && (mConversationStatuses == null || mConversationStatuses.getStatusCount() == 0)) {
      mLoadingView.setVisibility(View.VISIBLE);
    } else {
      mLoadingView.setVisibility(View.GONE);

      mConversationView.removeAllViews();

      if (mConversationStatuses == null || mConversationStatuses.getStatusCount() == 0) {
        View view = getLoadMoreView();
        mConversationView.addView(view);
      } else {
        for (int i = 0; i < mConversationStatuses.getStatusCount(); ++i) {
          View view = getTweetFeedView(i, mConversationStatuses.getStatus(i));
          mConversationView.addView(view);
        }
      }
    }
  }
  public void configure(TwitterStatus twitterStatus, LayoutInflater inflater, Callbacks callbacks) {

    mTwitterStatus = twitterStatus;
    mInflater = inflater;
    mCallbacks = callbacks;

    mLoadingView = (RelativeLayout) findViewById(R.id.conversation_feed_loading);
    mConversationView = (LinearLayout) findViewById(R.id.conversation_feed_loaded);

    TwitterContentHandleBase base =
        new TwitterContentHandleBase(
            TwitterConstant.ContentType.STATUSES,
            TwitterConstant.StatusesType.PREVIOUS_CONVERSATION);
    mContentHandle =
        new TwitterContentHandle(
            base, twitterStatus.mUserScreenName, Long.valueOf(mTwitterStatus.mId).toString());

    TwitterStatuses cachedStatuses = TwitterManager.get().getContentFeed(mContentHandle);
    if (cachedStatuses != null && cachedStatuses.getStatusCount() > 0) {
      setStatuses(cachedStatuses);
      updateViewVisibility(true);
    } else {
      TwitterManager.get()
          .triggerFetchStatuses(
              mContentHandle,
              null,
              new TwitterFetchStatusesFinishedCallback() {

                @Override
                public void finished(TwitterFetchResult result, TwitterStatuses feed) {
                  if (result.isSuccessful()) {
                    setStatuses(feed);
                  }
                  updateViewVisibility(true);
                }
              },
              1);
    }
  }