package com.kickstarter.ui.viewholders; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import android.widget.ImageView; 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.SocialUtils; import com.kickstarter.models.Activity; import com.kickstarter.models.Category; import com.kickstarter.models.Photo; 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 final class FriendBackingViewHolder extends ActivityListViewHolder { protected @Bind(R.id.avatar) ImageView avatarImageView; protected @Bind(R.id.creator_name) TextView creatorNameTextView; protected @Bind(R.id.project_name) TextView projectNameTextView; protected @Bind(R.id.project_photo) ImageView projectPhotoImageView; protected @Bind(R.id.title) TextView titleTextView; protected @BindString(R.string.project_creator_by_creator) String projectByCreatorString; @Inject KSString ksString; private final @Nullable Delegate delegate; public interface Delegate { void friendBackingClicked(FriendBackingViewHolder viewHolder, Activity activity); } public FriendBackingViewHolder(final @NonNull View view, final @Nullable Delegate delegate) { super(view); this.delegate = delegate; ((KSApplication) view.getContext().getApplicationContext()).component().inject(this); ButterKnife.bind(this, view); } @Override public void onBind() { final Context context = context(); final User activityUser = activity().user(); if (activityUser == null) { return; } final Project activityProject = activity().project(); if (activityProject == null) { return; } final User projectCreator = activityProject.creator(); if (projectCreator == null) { return; } final Category projectCategory = activityProject.category(); if (projectCategory == null) { return; } final Photo projectPhoto = activityProject.photo(); if (projectPhoto == null) { return; } Picasso.with(context) .load(activityUser.avatar().small()) .transform(new CircleTransformation()) .into(avatarImageView); creatorNameTextView.setText(ksString.format( projectByCreatorString, "creator_name", projectCreator.name() )); projectNameTextView.setText(activityProject.name()); Picasso.with(context) .load(projectPhoto.little()) .into(projectPhotoImageView); titleTextView.setText(SocialUtils.friendBackingActivityTitle(context, activityUser.name(), projectCategory.rootId(), ksString )); } @OnClick(R.id.friend_backing_card_view) public void onClick() { if (this.delegate != null) { this.delegate.friendBackingClicked(this, activity()); } } }