/*
  * (non-Javadoc)
  * @see android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long)
  */
 @Override
 public void onItemClick(AdapterView<?> view, View parent, int pos, long id) {
   if (pos < postsAdapter.getPosts().size()) {
     final Post post = postsAdapter.getPosts().get(pos);
     showPostEditor(post);
   }
 }
 /*
  * (non-Javadoc)
  * @see android.widget.AdapterView.OnItemLongClickListener#onItemLongClick(android.widget.AdapterView, android.view.View, int, long)
  */
 @Override
 public boolean onItemLongClick(AdapterView<?> view, View parent, int pos, long id) {
   //
   // We may have one extra item in the PostAdapter for
   // our "loading" item, so check that `pos` is valid.
   //
   if (pos < postsAdapter.getPosts().size()) {
     final Post post = postsAdapter.getPosts().get(pos);
     showPostContextMenu(post);
     return true;
   }
   return false;
 }
  /*
   * (non-Javadoc)
   * @see android.widget.AbsListView.OnScrollListener#onScroll(android.widget.AbsListView, int, int, int)
   */
  @Override
  public void onScroll(
      AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    if (ready) {
      final boolean needMore =
          (firstVisibleItem + visibleItemCount >= totalItemCount)
              && !postsAdapter.getEndOfTime()
              && postsAdapter.getPosts().size() < MAX_POSTS;

      if (!postsAdapter.isLoading() && needMore) {
        new PostsBeforeTask(
                stream, postsAdapter, new AppNetClient(accessToken), postsAdapter.getOldestPostId())
            .execute();
      }
    }
  }