private void refreshIconCounts() {
    if (!isAdded() || !hasPost() || !canShowFooter()) {
      return;
    }

    final ReaderIconCountView countLikes =
        (ReaderIconCountView) getView().findViewById(R.id.count_likes);
    final ReaderIconCountView countComments =
        (ReaderIconCountView) getView().findViewById(R.id.count_comments);

    if (canShowCommentCount()) {
      countComments.setCount(mPost.numReplies);
      countComments.setVisibility(View.VISIBLE);
      countComments.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              ReaderActivityLauncher.showReaderComments(getActivity(), mPost.blogId, mPost.postId);
            }
          });
    } else {
      countComments.setVisibility(View.INVISIBLE);
      countComments.setOnClickListener(null);
    }

    if (canShowLikeCount()) {
      countLikes.setCount(mPost.numLikes);
      countLikes.setVisibility(View.VISIBLE);
      countLikes.setSelected(mPost.isLikedByCurrentUser);
      if (mIsLoggedOutReader) {
        countLikes.setEnabled(false);
      } else if (mPost.canLikePost()) {
        countLikes.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                togglePostLike();
              }
            });
      }
      // if we know refreshLikes() is going to show the liking users, force liking user
      // views to take up space right now
      if (mPost.numLikes > 0 && mLikingUsersView.getVisibility() == View.GONE) {
        mLikingUsersView.setVisibility(View.INVISIBLE);
        mLikingUsersDivider.setVisibility(View.INVISIBLE);
      }
    } else {
      countLikes.setVisibility(View.INVISIBLE);
      countLikes.setOnClickListener(null);
    }
  }