package fr.ydelouis.selfoss.view; import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import java.util.List; import fr.ydelouis.selfoss.R; import fr.ydelouis.selfoss.entity.Source; import fr.ydelouis.selfoss.entity.Tag; import fr.ydelouis.selfoss.util.SelfossImageLoader; @EViewGroup(R.layout.view_source) public class SourceView extends RelativeLayout { private Source source; @Bean protected SelfossImageLoader imageLoader; @ViewById protected ImageView icon; @ViewById protected TextView letter; @ViewById protected TextView title; @ViewById protected TextView count; public SourceView(Context context) { super(context); } public SourceView(Context context, AttributeSet attrs) { super(context, attrs); } public SourceView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setSource(Source source, List<Tag> tags) { this.source = source; setSourceImageOrLetter(tags); title.setText(source.getTitle()); count.setText(String.valueOf(source.getUnread())); count.setVisibility(source.getUnread() == 0 ? View.GONE : View.VISIBLE); } public void setSourceImageOrLetter(List<Tag> tags) { icon.setVisibility(GONE); letter.setVisibility(GONE); if (source.getIcon() != null && !source.getIcon().isEmpty()) { imageLoader.displayFavicon(source, icon); icon.setVisibility(VISIBLE); } else if (source.getTitle() != null && !source.getTitle().isEmpty()) { letter.setText(source.getTitle().substring(0, 1).toUpperCase()); letter.setBackgroundDrawable(new ColorsOvalDrawable(Tag.colorsOfTags(tags))); letter.setVisibility(VISIBLE); } } @Override public void setSelected(boolean selected) { title.setTextColor(getResources().getColor(selected ? R.color.main_color : R.color.text)); title.setTypeface(null, selected ? Typeface.BOLD : Typeface.NORMAL); } public Source getSource() { return source; } }