package com.kickstarter.ui.viewholders; 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.models.Activity; 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 ProjectStateChangedViewHolder extends ActivityListViewHolder { protected @Bind(R.id.title) TextView titleTextView; protected @Bind(R.id.project_photo) ImageView projectPhotoImageView; protected @BindString(R.string.activity_project_state_change_project_was_not_successfully_funded) String projectNotSuccessfullyFundedString; protected @BindString(R.string.activity_project_state_change_project_was_cancelled_by_creator) String projectCanceledByCreatorString; protected @BindString(R.string.activity_project_state_change_project_was_suspended) String projectSuspendedString; private final @Nullable Delegate delegate; @Inject KSString ksString; public interface Delegate { void projectStateChangedClicked(ProjectStateChangedViewHolder viewHolder, Activity activity); } public ProjectStateChangedViewHolder(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 Project project = activity().project(); if (project == null) { return; } final User user = activity().user(); if (user == null) { return; } final Photo photo = project.photo(); if (photo == null) { return; } Picasso.with(context()) .load(photo.little()) .into(projectPhotoImageView); switch (activity().category()) { case Activity.CATEGORY_FAILURE: titleTextView.setText(ksString.format(projectNotSuccessfullyFundedString, "project_name", project.name())); break; case Activity.CATEGORY_CANCELLATION: titleTextView.setText(ksString.format(projectCanceledByCreatorString, "project_name", project.name())); break; case Activity.CATEGORY_SUSPENSION: titleTextView.setText(ksString.format(projectSuspendedString, "project_name", project.name())); break; default: titleTextView.setText(""); } } @OnClick(R.id.card_view) public void stateChangeCardClick() { if (this.delegate != null) { this.delegate.projectStateChangedClicked(this, activity()); } } }