package com.kickstarter.ui.viewholders; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.Html; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.kickstarter.KSApplication; import com.kickstarter.R; import com.kickstarter.libs.KSString; import com.kickstarter.libs.transformations.CircleTransformation; import com.kickstarter.libs.utils.ObjectUtils; import com.kickstarter.models.Activity; import com.kickstarter.models.Project; import com.kickstarter.models.User; import com.squareup.picasso.Picasso; import javax.inject.Inject; import butterknife.Bind; import butterknife.BindString; import butterknife.ButterKnife; import butterknife.OnClick; public class ActivitySampleFriendBackingViewHolder extends KSViewHolder { @Inject KSString ksString; protected @Bind(R.id.activity_click_area) LinearLayout activityClickArea; protected @Bind(R.id.activity_image) ImageView activityImageView; protected @Bind(R.id.activity_title) TextView activityTitleTextView; protected @Bind(R.id.activity_subtitle) TextView activitySubtitleTextView; protected @Bind(R.id.see_activity_button) Button seeActivityButton; protected @BindString(R.string.activity_friend_backed_project_name_by_creator_name) String categoryBackingString; private Activity activity; private final Delegate delegate; public interface Delegate { void activitySampleFriendBackingViewHolderSeeActivityClicked(ActivitySampleFriendBackingViewHolder viewHolder); void activitySampleFriendBackingViewHolderProjectClicked(ActivitySampleFriendBackingViewHolder viewHolder, Project project); } public ActivitySampleFriendBackingViewHolder(final @NonNull View view, final @NonNull Delegate delegate) { super(view); this.delegate = delegate; ((KSApplication) view.getContext().getApplicationContext()).component().inject(this); ButterKnife.bind(this, view); } @Override public void bindData(final @Nullable Object data) throws Exception { activity = ObjectUtils.requireNonNull((Activity) data, Activity.class); } public void onBind() { final Context context = context(); final User user = activity.user(); final Project project = activity.project(); if (user != null && project != null) { activityTitleTextView.setVisibility(View.GONE); Picasso.with(context).load(user.avatar() .small()) .transform(new CircleTransformation()) .into(activityImageView); activitySubtitleTextView.setText(Html.fromHtml(ksString.format(categoryBackingString, "friend_name", user.name(), "project_name", project.name(), "creator_name", project.creator().name()))); } } @OnClick(R.id.see_activity_button) protected void seeActivityOnClick() { delegate.activitySampleFriendBackingViewHolderSeeActivityClicked(this); } @OnClick(R.id.activity_click_area) protected void activityProjectOnClick() { delegate.activitySampleFriendBackingViewHolderProjectClicked(this, activity.project()); } }