package com.nilhcem.bblfr.ui.baggers.list;
import android.content.Context;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.nilhcem.bblfr.BBLApplication;
import com.nilhcem.bblfr.R;
import com.nilhcem.bblfr.core.ui.picasso.RoundedTransformation;
import com.nilhcem.bblfr.core.utils.IntentUtils;
import com.nilhcem.bblfr.ui.BaseRecyclerViewHolder;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.OnClick;
public class BaggersListEntryView extends BaseRecyclerViewHolder<BaggersListEntry> {
@Inject Picasso mPicasso;
@BindView(R.id.bagger_entry_name) TextView mName;
@BindView(R.id.bagger_entry_links) TextView mLinks;
@BindView(R.id.bagger_entry_bio) TextView mBio;
@BindView(R.id.bagger_entry_sessions) TextView mSessions;
@BindView(R.id.bagger_entry_locations) TextView mLocations;
@BindView(R.id.bagger_entry_picture) ImageView mPicture;
@BindView(R.id.bagger_entry_invite_button) Button mContactButton;
public BaggersListEntryView(ViewGroup parent) {
super(parent, R.layout.baggers_list_item);
BBLApplication.get(parent.getContext()).component().inject(this);
mBio.setMovementMethod(LinkMovementMethod.getInstance());
mLinks.setMovementMethod(LinkMovementMethod.getInstance());
mSessions.setMovementMethod(LinkMovementMethod.getInstance());
}
@Override
public void bindData(@NonNull BaggersListEntry data) {
super.bindData(data);
setTextIfAny(mName, data.name);
setTextIfAny(mLinks, data.links);
setTextIfAny(mSessions, data.sessions);
setTextIfAny(mBio, data.bio);
setTextIfAny(mLocations, data.locations);
mContactButton.setTag(data.email);
if (TextUtils.isEmpty(data.pictureUrl)) {
mPicture.setVisibility(View.GONE);
} else {
mPicasso.load(data.pictureUrl).transform(new RoundedTransformation(4, 0)).noFade().into(mPicture, new Callback() {
@Override
public void onSuccess() {
mPicture.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
mPicture.setVisibility(View.GONE);
}
});
}
}
@OnClick(R.id.bagger_entry_invite_button)
public void onInviteButtonClicked(Button button) {
Context context = getContext();
String chooser = context.getString(R.string.baggers_list_contact_chooser_title);
String subject = context.getString(R.string.baggers_list_contact_email_subject);
IntentUtils.startEmailIntent(context, chooser, (String) button.getTag(), subject);
}
void setTextIfAny(TextView textview, CharSequence text) {
if (TextUtils.isEmpty(text)) {
textview.setVisibility(View.GONE);
} else {
textview.setText(text);
textview.setVisibility(View.VISIBLE);
}
}
}