package com.ywwxhz.hoderview;
import android.content.Context;
import android.text.Html;
import android.util.AttributeSet;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.balysv.materialripple.MaterialRippleLayout;
import com.ywwxhz.cnbetareader.R;
import com.ywwxhz.entitys.CommentItem;
import com.ywwxhz.lib.SpannableStringUtils;
import com.ywwxhz.lib.ThemeManger;
import com.ywwxhz.lib.kits.PrefKit;
import com.ywwxhz.widget.ExtendPopMenu;
import com.ywwxhz.widget.textdrawable.TextDrawable;
import com.ywwxhz.widget.textdrawable.util.ColorGenerator;
/**
* CnbetaReader
* com.ywwxhz.hoder
* Created by 远望の无限(ywwxhz) on 2015/2/3 9:49.
*/
public class NewsCommentItemHoderView extends MaterialRippleLayout implements View.OnClickListener {
private TextView comment_name;
private TextView comment_ref;
private TextView comment_content;
private TextView comment_reason;
private TextView comment_score;
private TextView comment_time;
private View comment_more;
private ExtendPopMenu popMenu;
private ImageView comment_image;
private TextView comment_from;
private boolean showEmoji;
public NewsCommentItemHoderView(Context context) {
super(context);
}
public NewsCommentItemHoderView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NewsCommentItemHoderView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
this.comment_name = (TextView) findViewById(R.id.comment_name);
this.comment_ref = (TextView) findViewById(R.id.comment_ref);
this.comment_content = (TextView) findViewById(R.id.comment_content);
this.comment_reason = (TextView) findViewById(R.id.comment_reason);
this.comment_score = (TextView) findViewById(R.id.comment_score);
this.comment_time = (TextView) findViewById(R.id.comment_time);
this.comment_image = (ImageView) findViewById(R.id.comment_image);
this.comment_more = findViewById(R.id.comment_more);
this.comment_from = (TextView) findViewById(R.id.comment_from);
this.popMenu = new ExtendPopMenu(getContext(), comment_more);
showEmoji = PrefKit.getBoolean(getContext(), R.string.pref_show_emoji_key, true);
if (!PrefKit.getBoolean(getContext(), R.string.pref_enable_ripple_key, true)){
if(ThemeManger.isNightTheme(getContext())){
this.comment_ref.setBackgroundResource(R.drawable.ref_background_night);
}else{
this.comment_ref.setBackgroundResource(R.drawable.ref_background);
}
}
}
public void showComment(CommentItem item, String token, BaseAdapter adapter, boolean enable, TextDrawable.IBuilder drawableBuilder, ColorGenerator colorGenerator) {
comment_name.setText(item.getName());
if (item.getRefContent().length() != 0) {
if (comment_ref.getVisibility() == GONE) {
comment_ref.setVisibility(View.VISIBLE);
}
if (showEmoji) {
comment_ref.setText(SpannableStringUtils.span(getContext(), Html.fromHtml(item.getRefContent()).toString()));
} else {
comment_ref.setText(Html.fromHtml(item.getRefContent()).toString());
}
} else {
if (comment_ref.getVisibility() == VISIBLE) {
comment_ref.setVisibility(View.GONE);
}
}
comment_image.setImageDrawable(drawableBuilder.build(String.valueOf(item.getName().charAt(0)), colorGenerator.getColor(item.getTid())));
if (showEmoji) {
comment_content.setText(SpannableStringUtils.span(getContext(), Html.fromHtml(item.getComment()).toString()));
} else {
comment_content.setText(Html.fromHtml(item.getComment()).toString());
}
comment_time.setText(item.getDate());
comment_from.setText(item.getHost_name());
comment_score.setText(item.getScore() > 999 ? "999+" : item.getScore() + "");
comment_reason.setText(item.getReason() > 999 ? "999+" : item.getReason() + "");
if (enable) {
if (comment_more.getVisibility() == GONE) {
comment_more.setVisibility(VISIBLE);
}
comment_more.setOnClickListener(this);
popMenu.setCitem(item);
popMenu.setAdapter(adapter);
popMenu.setToken(token);
} else {
if (comment_more.getVisibility() == VISIBLE) {
comment_more.setVisibility(GONE);
}
comment_more.setOnClickListener(null);
}
}
@Override
public void onClick(View v) {
popMenu.show();
}
}