package net.dev123.yibo;
import java.util.ArrayList;
import java.util.List;
import net.dev123.commons.ServiceProvider;
import net.dev123.commons.util.StringUtil;
import net.dev123.commons.util.TimeSpanUtil;
import net.dev123.entity.GeoLocation;
import net.dev123.mblog.entity.Comment;
import net.dev123.mblog.entity.Status;
import net.dev123.mblog.entity.User;
import net.dev123.yibo.common.Constants;
import net.dev123.yibo.common.EmotionLoader;
import net.dev123.yibo.common.GlobalResource;
import net.dev123.yibo.common.GlobalVars;
import net.dev123.yibo.common.ResourceBook;
import net.dev123.yibo.common.theme.ThemeUtil;
import net.dev123.yibo.db.LocalAccount;
import net.dev123.yibo.db.LocalStatus;
import net.dev123.yibo.service.adapter.CommentsOfStatusListAdapter;
import net.dev123.yibo.service.listener.AutoLoadMoreListener;
import net.dev123.yibo.service.listener.CommentsOfStatusContextMenuListener;
import net.dev123.yibo.service.listener.GoBackClickListener;
import net.dev123.yibo.service.listener.GoHomeClickListener;
import net.dev123.yibo.service.listener.ImageClickListener;
import net.dev123.yibo.service.listener.MicroBlogCommentClickListener;
import net.dev123.yibo.service.listener.MicroBlogFavoriteClickListener;
import net.dev123.yibo.service.listener.MicroBlogMoreClickListener;
import net.dev123.yibo.service.listener.MicroBlogPreviewClickListener;
import net.dev123.yibo.service.listener.MicroBlogRetweetClickListener;
import net.dev123.yibo.service.listener.MicroBlogShareClickListener;
import net.dev123.yibo.service.listener.MicroBlogStatusContextMenuListener;
import net.dev123.yibo.service.listener.ProfileHeaderClickListener;
import net.dev123.yibo.service.task.ImageLoad4HeadTask;
import net.dev123.yibo.service.task.ImageLoad4ThumbnailTask;
import net.dev123.yibo.service.task.QueryCommentsOfStatusTask;
import net.dev123.yibo.service.task.QueryLocationTask;
import net.dev123.yibo.service.task.QueryResponseCountTask;
import net.dev123.yibo.service.task.QueryRetweetResponseCountTask;
import net.dev123.yibo.widget.RichTextView;
import android.content.ComponentName;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class MicroBlogActivity extends BaseActivity {
private Status status;
private int position;
private int sourceType;
private boolean isTencent;
private LocalAccount currentAccount;
private ListView lvCommentsOfStatus;
private View listFooter;
private CommentsOfStatusListAdapter commentsAdapter;
private ProfileHeaderClickListener profileClickListener;
private MicroBlogStatusContextMenuListener statusContextMenuListener;
private CommentsOfStatusContextMenuListener commentsContextMenuListener;
private MicroBlogCommentClickListener commentClickListener;
private MicroBlogRetweetClickListener retweetClickListener;
private MicroBlogFavoriteClickListener favoriteClickListener;
private MicroBlogShareClickListener shareClickListener;
private MicroBlogMoreClickListener moreClickListener;
private QueryRetweetResponseCountTask retweetResponseCountTask;
private QueryResponseCountTask responseCountTask;
private ImageLoad4ThumbnailTask thumbnailTask;
private ImageLoad4HeadTask headTask;
private QueryLocationTask locationTask;
private AutoLoadMoreListener autoLoadMoreListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.micro_blog);
initParams(savedInstanceState);
initComponent();
bindEvent();
fillInView(status);
}
private void initParams(Bundle savedInstanceState) {
YiBoApplication yibo = (YiBoApplication)this.getApplication();
currentAccount = yibo.getCurrentAccount();
if (currentAccount != null
&& currentAccount.getUser() != null) {
isTencent = currentAccount.getServiceProvider() == ServiceProvider.Tencent;
}
Bundle bundle = this.getIntent().getExtras();
if (savedInstanceState != null) {
bundle = savedInstanceState;
}
status = (Status)bundle.getSerializable("STATUS");
position = bundle.getInt("POSITION");
sourceType = bundle.getInt("SOURCE");
if (status != null) {
isTencent = status.getServiceProvider() == ServiceProvider.Tencent;
if (status instanceof LocalStatus) {
long accountId = ((LocalStatus)status).getAccountId();
LocalAccount temp = GlobalVars.getAccount(accountId);
if (temp != null) {
currentAccount = temp;
}
}
}
}
public void initComponent() {
LinearLayout llRoot = (LinearLayout)findViewById(R.id.llRoot);
LinearLayout llHeaderBase = (LinearLayout)findViewById(R.id.llHeaderBase);
ThemeUtil.setRootBackground(llRoot);
ThemeUtil.setSecondaryMicroBlogHeader(llHeaderBase);
//资料头部
LayoutInflater inflater = LayoutInflater.from(this);
View headerView = inflater.inflate(R.layout.include_micro_blog_list_header, null);
LinearLayout llProfileHeader = (LinearLayout)headerView.findViewById(R.id.llProfileHeader);
TextView tvScreenName = (TextView)headerView.findViewById(R.id.tvScreenName);
ImageView ivVerify = (ImageView)headerView.findViewById(R.id.ivVerify);
TextView tvImpress = (TextView)headerView.findViewById(R.id.tvImpress);
ImageView ivMoreDetail = (ImageView)headerView.findViewById(R.id.ivMoreDetail);
ThemeUtil.setHeaderProfile(llProfileHeader);
int highlight = theme.getColor("highlight");
tvScreenName.setTextColor(highlight);
ivVerify.setImageDrawable(theme.getDrawable("icon_verification"));
tvImpress.setTextColor(theme.getColor("content"));
ivMoreDetail.setBackgroundDrawable(theme.getDrawable("icon_more_detail"));
//微博内容
TextView tvText = (TextView)headerView.findViewById(R.id.tvText);
LinearLayout llThumbnailShape = (LinearLayout)headerView.findViewById(R.id.llThumbnailShape);
TextView tvImageInfo = (TextView)headerView.findViewById(R.id.tvImageInfo);
LinearLayout llRetweet = (LinearLayout)headerView.findViewById(R.id.llRetweet);
TextView tvRetweetText = (TextView)headerView.findViewById(R.id.tvRetweetText);
LinearLayout llRetweetThumbnailShape = (LinearLayout)headerView.findViewById(R.id.llRetweetThumbnailShape);
TextView tvRetweetImageInfo = (TextView)headerView.findViewById(R.id.tvRetweetImageInfo);
ImageView ivRetweetLocation = (ImageView)headerView.findViewById(R.id.ivRetweetLocation);
TextView tvRetweetLocation = (TextView)headerView.findViewById(R.id.tvRetweetLocation);
TextView tvRetweetCreatedAt = (TextView)headerView.findViewById(R.id.tvRetweetCreatedAt);
TextView tvRetweetSource = (TextView)headerView.findViewById(R.id.tvRetweetSource);
ImageView ivLocation = (ImageView)headerView.findViewById(R.id.ivLocation);
TextView tvLocation = (TextView)headerView.findViewById(R.id.tvLocation);
TextView tvCreatedAt = (TextView)headerView.findViewById(R.id.tvCreatedAt);
TextView tvSource = (TextView)headerView.findViewById(R.id.tvSource);
TextView tvRetweetCount = (TextView)headerView.findViewById(R.id.tvRetweetCount);
TextView tvCommentCount = (TextView)headerView.findViewById(R.id.tvCommentCount);
ImageView ivLineSeperator = (ImageView)headerView.findViewById(R.id.ivLineSeperator);
tvText.setTextColor(theme.getColor("content"));
ColorStateList selectorTextLink = theme.getColorStateList("selector_text_link");
tvText.setLinkTextColor(selectorTextLink);
Drawable shapeAttachment = theme.getDrawable("shape_attachment");
llThumbnailShape.setBackgroundDrawable(shapeAttachment);
int quote = theme.getColor("quote");
tvImageInfo.setTextColor(quote);
llRetweet.setBackgroundDrawable(theme.getDrawable("bg_retweet_frame"));
int padding10 = theme.dip2px(10);
llRetweet.setPadding(padding10, padding10, padding10, theme.dip2px(6));
tvRetweetText.setTextColor(quote);
tvRetweetText.setLinkTextColor(selectorTextLink);
llRetweetThumbnailShape.setBackgroundDrawable(shapeAttachment);
tvRetweetImageInfo.setTextColor(quote);
Drawable iconLocation = theme.getDrawable("icon_location");
ivRetweetLocation.setImageDrawable(iconLocation);
tvRetweetLocation.setTextColor(quote);
tvRetweetCreatedAt.setTextColor(quote);
tvRetweetSource.setTextColor(quote);
ivLocation.setImageDrawable(iconLocation);
tvLocation.setTextColor(quote);
tvCreatedAt.setTextColor(quote);
tvSource.setTextColor(quote);
int emphasize = theme.getColor("emphasize");
tvRetweetCount.setTextColor(emphasize);
tvCommentCount.setTextColor(emphasize);
ivLineSeperator.setBackgroundDrawable(theme.getDrawable("line_comment_of_status_normal"));
//工具条
LinearLayout llToolbar = (LinearLayout)findViewById(R.id.llToolbar);
Button btnComment = (Button)findViewById(R.id.btnComment);
Button btnRetweet = (Button)findViewById(R.id.btnRetweet);
Button btnFavorite = (Button)findViewById(R.id.btnFavorite);
Button btnShare = (Button)findViewById(R.id.btnShare);
Button btnMore = (Button)findViewById(R.id.btnMore);
llToolbar.setBackgroundDrawable(theme.getDrawable("bg_toolbar"));
btnComment.setBackgroundDrawable(theme.getDrawable("selector_toolbar_comment"));
btnRetweet.setBackgroundDrawable(theme.getDrawable("selector_toolbar_retweet"));
btnFavorite.setBackgroundDrawable(theme.getDrawable("selector_toolbar_favorite_add"));
btnShare.setBackgroundDrawable(theme.getDrawable("selector_toolbar_share"));
btnMore.setBackgroundDrawable(theme.getDrawable("selector_toolbar_more"));
lvCommentsOfStatus = (ListView) this.findViewById(R.id.lvCommentsOfStatus);
ThemeUtil.setListViewStyle(lvCommentsOfStatus);
lvCommentsOfStatus.addHeaderView(headerView);
setBack2Top(lvCommentsOfStatus);
//注册上下文菜单
View statusView = this.findViewById(R.id.llStatus);
statusContextMenuListener = new MicroBlogStatusContextMenuListener(status);
statusView.setOnCreateContextMenuListener(statusContextMenuListener);
autoLoadMoreListener = new AutoLoadMoreListener();
}
private void bindEvent() {
Button btnBack = (Button) this.findViewById(R.id.btnBack);
btnBack.setOnClickListener(new GoBackClickListener());
ComponentName componentName = this.getCallingActivity();
String className = (componentName != null ? componentName.getShortClassName() : null);
Button btnOperate = (Button) this.findViewById(R.id.btnOperate);
if (!StringUtil.isEquals(".HomePageActivity", className)) {
btnOperate.setVisibility(View.VISIBLE);
btnOperate.setText(R.string.btn_home);
btnOperate.setOnClickListener(new GoHomeClickListener());
}
if (sourceType == Constants.REQUEST_CODE_MY_HOME) {
btnOperate.setVisibility(View.GONE);
MicroBlogPreviewClickListener previewClickListener =
new MicroBlogPreviewClickListener(currentAccount, position);
Button btnPrevious = (Button) this.findViewById(R.id.btnPrevious);
btnPrevious.setVisibility(View.VISIBLE);
btnPrevious.setOnClickListener(previewClickListener);
Button btnNext = (Button) this.findViewById(R.id.btnNext);
btnNext.setVisibility(View.VISIBLE);
btnNext.setOnClickListener(previewClickListener);
}
View llProfileHeader = this.findViewById(R.id.llProfileHeader);
profileClickListener = new ProfileHeaderClickListener(this, status.getUser());
llProfileHeader.setOnClickListener(profileClickListener);
Button btnComment = (Button) this.findViewById(R.id.btnComment);
commentClickListener = new MicroBlogCommentClickListener(this, status);
btnComment.setOnClickListener(commentClickListener);
Button btnRetweet = (Button) this.findViewById(R.id.btnRetweet);
retweetClickListener = new MicroBlogRetweetClickListener(this, status);
btnRetweet.setOnClickListener(retweetClickListener);
Button btnFavorite = (Button) this.findViewById(R.id.btnFavorite);
favoriteClickListener = new MicroBlogFavoriteClickListener(this, status);
btnFavorite.setOnClickListener(favoriteClickListener);
Button btnShare = (Button) this.findViewById(R.id.btnShare);
shareClickListener = new MicroBlogShareClickListener(this, status);
btnShare.setOnClickListener(shareClickListener);
Button btnMore = (Button) this.findViewById(R.id.btnMore);
moreClickListener = new MicroBlogMoreClickListener(this, currentAccount);
moreClickListener.setStatus(status);
btnMore.setOnClickListener(moreClickListener);
TextView tvRetweetCount = (TextView)this.findViewById(R.id.tvRetweetCount);
tvRetweetCount.setOnClickListener(retweetClickListener);
TextView tvCommentCount = (TextView)this.findViewById(R.id.tvCommentCount);
tvCommentCount.setOnClickListener(commentClickListener);
}
public void fillInView(Status status) {
if (status == null) {
return;
}
destroyTasks();
TextView tvTitle = (TextView) this.findViewById(R.id.tvTitle);
ImageView ivProfilePicture = (ImageView) this.findViewById(R.id.ivProfilePicture);
TextView tvScreenName = (TextView) this.findViewById(R.id.tvScreenName);
ImageView ivVerify = (ImageView) this.findViewById(R.id.ivVerify);
TextView tvImpress = (TextView) this.findViewById(R.id.tvImpress);
ImageView ivNext = (ImageView) this.findViewById(R.id.ivMoreDetail);
LinearLayout llLocation = (LinearLayout) this.findViewById(R.id.llLocation);
TextView tvLocation = (TextView) this.findViewById(R.id.tvLocation);
TextView tvCreatedAt = (TextView) this.findViewById(R.id.tvCreatedAt);
TextView tvSource = (TextView) this.findViewById(R.id.tvSource);
TextView tvText = (TextView) this.findViewById(R.id.tvText);
LinearLayout llThumbnail = (LinearLayout) this.findViewById(R.id.llThumbnail);
ImageView ivThumbnail = (ImageView) this.findViewById(R.id.ivThumbnail);
View llRetweet = this.findViewById(R.id.llRetweet);
TextView tvRetweetText = (TextView) this.findViewById(R.id.tvRetweetText);
LinearLayout llRetweetThumbnail = (LinearLayout) this.findViewById(R.id.llRetweetThumbnail);
ImageView ivRetweetThumbnail = (ImageView) this.findViewById(R.id.ivRetweetThumbnail);
LinearLayout llRetweetLocation = (LinearLayout) this.findViewById(R.id.llRetweetLocation);
TextView tvRetweetLocation = (TextView) this.findViewById(R.id.tvRetweetLocation);
TextView tvRetweetCreateAt = (TextView) this.findViewById(R.id.tvRetweetCreatedAt);
TextView tvRetweetSource = (TextView) this.findViewById(R.id.tvRetweetSource);
if (tvText instanceof RichTextView) {
((RichTextView)tvText).setProvider(status.getServiceProvider());
}
if (tvRetweetText instanceof RichTextView) {
((RichTextView)tvRetweetText).setProvider(status.getServiceProvider());
}
//初始化控件信息:
ivVerify.setVisibility(View.GONE);
llThumbnail.setVisibility(View.GONE);
ivThumbnail.setVisibility(View.GONE);
((ViewGroup)llThumbnail.getChildAt(0)).getChildAt(1).setVisibility(View.VISIBLE);
llRetweet.setVisibility(View.GONE);
llRetweetThumbnail.setVisibility(View.GONE);
ivRetweetThumbnail.setVisibility(View.GONE);
((ViewGroup)llRetweetThumbnail.getChildAt(0)).getChildAt(1).setVisibility(View.VISIBLE);
llLocation.setVisibility(View.GONE);
llRetweetLocation.setVisibility(View.GONE);
User user = status.getUser();
if (user == null) {
return;
}
//标题栏
tvTitle.setText(user.getScreenName());
profileClickListener.setUser(user);
//用户信息profile
ivProfilePicture.setImageDrawable(GlobalResource.getDefaultNormalHeader(this));
String profileUrl = user.getProfileImageUrl();
if (StringUtil.isNotEmpty(profileUrl)) {
headTask = new ImageLoad4HeadTask(ivProfilePicture, profileUrl, false);
headTask.execute();
}
tvScreenName.setText(user.getScreenName());
if (isTencent) {
if (StringUtil.isNotEmpty(user.getLocation())) {
String impress = getString(R.string.label_blog_post_in);
tvImpress.setText(String.format(impress, status.getUser().getLocation()));
}
} else {
String impress = ResourceBook.getGenderValue(user.getGender(), this);
if (StringUtil.isNotEmpty(user.getLocation())) {
impress += ("," + user.getLocation());
}
tvImpress.setText(impress);
}
ivNext.setVisibility(View.VISIBLE);
//微博信息
statusContextMenuListener.setStatus(status);
Spannable textSpan = EmotionLoader.getEmotionSpannable(
status.getServiceProvider(), status.getText());
tvText.setText(textSpan);
Status retweet = status.getRetweetedStatus();
String thumbnailPicture = status.getThumbnailPicture();
ImageView ivTargetThumbnail = ivThumbnail;
LinearLayout llTargetThumbnail = llThumbnail;
if (retweet != null) {
thumbnailPicture = retweet.getThumbnailPicture();
ivTargetThumbnail = ivRetweetThumbnail;
llTargetThumbnail = llRetweetThumbnail;
}
if (StringUtil.isNotEmpty(thumbnailPicture)) {
llTargetThumbnail.setVisibility(View.VISIBLE);
ivTargetThumbnail.setOnClickListener(new ImageClickListener(status));
thumbnailTask = new ImageLoad4ThumbnailTask(ivTargetThumbnail, thumbnailPicture);
thumbnailTask.execute(status);
}
if (user.isVerified()) {
ivVerify.setVisibility(View.VISIBLE);
}
if (retweet != null) {
llRetweet.setVisibility(View.VISIBLE);
String retweetText = retweet.getText();
User sourceUser = retweet.getUser();
if (sourceUser != null) {
retweetText = (sourceUser.getMentionTitleName() + ": " + retweetText) ;
}
Spannable retweetTextSpan = EmotionLoader.getEmotionSpannable(
status.getServiceProvider(), retweetText);
tvRetweetText.setText(retweetTextSpan);
retweetResponseCountTask = new QueryRetweetResponseCountTask(this, retweet);
retweetResponseCountTask.execute();
GeoLocation location = retweet.getGeoLocation();
if (location != null) {
llRetweetLocation.setVisibility(View.VISIBLE);
tvRetweetLocation.setText("");
if (StringUtil.isNotEmpty(location.getProvince())) {
tvRetweetLocation.setText(location.getFormatedAddress());
} else {
locationTask = new QueryLocationTask(location, tvRetweetLocation, currentAccount);
locationTask.execute();
}
}
if (retweet.getSource() != null) {
this.findViewById(R.id.llRetweetState).setVisibility(View.VISIBLE);
String retweetCreatedAt = TimeSpanUtil.toTimeSpanString(retweet.getCreatedAt());
tvRetweetCreateAt.setText(retweetCreatedAt);
String retweetSource = getString(R.string.label_status_source, retweet.getSource());
retweetSource = Html.fromHtml(retweetSource).toString();
tvRetweetSource.setText(retweetSource);
}
}
GeoLocation location = status.getGeoLocation();
if (location != null) {
llLocation.setVisibility(View.VISIBLE);
tvLocation.setText("");
if (StringUtil.isNotEmpty(location.getProvince())) {
tvLocation.setText(location.getFormatedAddress());
} else {
locationTask = new QueryLocationTask(location, tvLocation, currentAccount);
locationTask.execute();
}
}
if (status.getCreatedAt() == null) {
tvCreatedAt.setVisibility(View.GONE);
} else {
String createdAt = TimeSpanUtil.toTimeSpanString(status.getCreatedAt());
tvCreatedAt.setText(createdAt);
}
if (status.getSource() == null) {
tvSource.setVisibility(View.GONE);
} else {
String source = getString(R.string.label_status_source, status.getSource());
source = Html.fromHtml(source).toString();
tvSource.setText(source);
}
responseCountTask = new QueryResponseCountTask(this, status);
responseCountTask.execute();
//评论列表
commentsAdapter = new CommentsOfStatusListAdapter(this, currentAccount, status);
lvCommentsOfStatus.setAdapter(commentsAdapter);
commentsContextMenuListener = new CommentsOfStatusContextMenuListener(commentsAdapter);
lvCommentsOfStatus.setOnCreateContextMenuListener(commentsContextMenuListener);
//工具栏
commentClickListener.setStatus(status);
retweetClickListener.setStatus(status);
initFavButton(status);
shareClickListener.setStatus(status);
moreClickListener.setStatus(status);
}
public void initFavButton(Status status) {
Button btnFavorite = (Button) this.findViewById(R.id.btnFavorite);
if (status.isFavorited()) {
btnFavorite.setBackgroundDrawable(theme.getDrawable("selector_toolbar_favorite_remove"));
status.setFavorited(true);
} else {
btnFavorite.setBackgroundDrawable(theme.getDrawable("selector_toolbar_favorite_add"));
status.setFavorited(false);
}
favoriteClickListener.setStatus(status);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("STATUS", status);
outState.putInt("POSITION", position);
outState.putInt("SOURCE_TYPE", sourceType);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case Constants.REQUEST_CODE_COMMENT_OF_STATUS:
if (resultCode == Constants.RESULT_CODE_SUCCESS) {
Comment comment = (Comment) data.getSerializableExtra("RESULT_COMMENT");
List<Comment> listComment = new ArrayList<Comment>();
listComment.add(comment);
commentsAdapter.addCacheToFirst(listComment);
}
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
destroyTasks();
}
private void destroyTasks() {
if (headTask != null) {
headTask.cancel(true);
headTask = null;
}
if (thumbnailTask != null) {
thumbnailTask.cancel(true);
thumbnailTask = null;
}
if (responseCountTask != null) {
responseCountTask.cancel(true);
responseCountTask = null;
}
if (retweetResponseCountTask != null) {
retweetResponseCountTask.cancel(true);
retweetResponseCountTask = null;
}
if (locationTask != null) {
locationTask.cancel(true);
locationTask = null;
}
}
public void showLoadingFooter() {
if (listFooter != null) {
lvCommentsOfStatus.removeFooterView(listFooter);
}
listFooter = getLayoutInflater().inflate(R.layout.list_item_loading, null);
ThemeUtil.setListViewLoading(listFooter);
lvCommentsOfStatus.addFooterView(listFooter);
}
public void showLoadCommentsFooter() {
if (listFooter != null) {
lvCommentsOfStatus.removeFooterView(listFooter);
}
listFooter = getLayoutInflater().inflate(R.layout.list_item_more, null);
ThemeUtil.setListViewMore(listFooter);
TextView tvFooter = (TextView) listFooter.findViewById(R.id.tvFooter);
tvFooter.setText(R.string.label_blog_load_comments);
listFooter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
QueryCommentsOfStatusTask task = new QueryCommentsOfStatusTask(commentsAdapter);
task.execute();
}
});
lvCommentsOfStatus.setOnScrollListener(null);
lvCommentsOfStatus.addFooterView(listFooter);
}
public void showMoreFooter() {
if (listFooter != null) {
lvCommentsOfStatus.removeFooterView(listFooter);
}
listFooter = getLayoutInflater().inflate(R.layout.list_item_more, null);
ThemeUtil.setListViewMore(listFooter);
listFooter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
QueryCommentsOfStatusTask task = new QueryCommentsOfStatusTask(commentsAdapter);
task.execute();
}
});
lvCommentsOfStatus.setOnScrollListener(autoLoadMoreListener);
lvCommentsOfStatus.addFooterView(listFooter);
}
public void showNoMoreFooter() {
if (listFooter != null) {
lvCommentsOfStatus.removeFooterView(listFooter);
}
listFooter = getLayoutInflater().inflate(R.layout.list_item_more, null);
ThemeUtil.setListViewMore(listFooter);
TextView tvFooter = (TextView) listFooter.findViewById(R.id.tvFooter);
tvFooter.setText(R.string.label_blog_no_more_comments);
lvCommentsOfStatus.addFooterView(listFooter);
}
}