package com.gettingmobile.goodnews.home; import android.graphics.drawable.Drawable; import android.text.Html; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import com.gettingmobile.goodnews.Application; import com.gettingmobile.goodnews.R; import com.gettingmobile.goodnews.util.ThemeUtil; import com.gettingmobile.goodnews.widget.ElementRowViewType; import com.gettingmobile.google.reader.*; final class HomeRowViewType extends ElementRowViewType { private final Application app; private final ThemeUtil themeUtil; private final OnFolderEdgeButtonClickListener listener; public HomeRowViewType(Application app, OnFolderEdgeButtonClickListener listener) { super(R.layout.tag_row); this.app = app; themeUtil = app.getThemeUtil(); this.listener = listener; } @Override public void bindView(View view, Object item) { final SortedElement element = (SortedElement) item; /* * tag the view */ view.setTag(element.getId()); /* * determine correct drawable */ final Drawable image; if (element instanceof Tag) { final Tag tag = (Tag) element; if (tag.isUserLabel() && app.getSettings().getLabelReadListId().equals(tag.getId())) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listReadListIcon); } else if (tag.isUserLabel() && tag.isFeedFolder()) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listFolderIcon); } else if (tag.isUserLabel() && !tag.isFeedFolder()) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listLabelIcon); } else if (tag.getType() == ElementType.STATE && tag.getId().equals(ItemState.STARRED.getId())) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listStarIcon); } else if (tag.getType() == ElementType.STATE && tag.getId().equals(ItemState.READING_LIST.getId())) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listAllIcon); } else { image = null; } } else if (element instanceof Feed) { image = themeUtil.getThemeDrawable(view.getContext(), R.attr.listFeedIcon); } else { image = null; } ((ImageView) view.findViewById(R.id.label_row_image)).setImageDrawable(image); /* * set texts */ final TextView title = (TextView) view.findViewById(R.id.label_row_title); title.setText(Html.fromHtml(element.getTitle())); title.setTextAppearance(view.getContext(), themeUtil.getThemeResource(view, element.getUnreadCount() > 0 ? R.attr.textAppearanceListItemEmphasized : R.attr.textAppearanceListItem)); final TextView unreadCount = (TextView) view.findViewById(R.id.label_row_unread_count); if (element.getUnreadCount() != 0) { unreadCount.setText(Integer.toString(element.getUnreadCount())); unreadCount.setVisibility(View.VISIBLE); } else { unreadCount.setVisibility(View.GONE); } /* * init details button */ final Button detailsButton = (Button) view.findViewById(R.id.folder_edge_button); if (element instanceof Tag) { final Tag tag = (Tag) element; detailsButton.setVisibility(tag.isFeedFolder() || tag.getId().equals(ItemState.READING_LIST.getId()) ? View.VISIBLE : View.INVISIBLE); detailsButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { listener.onFolderEdgeButtonClick(tag); } }); } else { detailsButton.setVisibility(View.INVISIBLE); } } }