package com.vaguehope.onosendai.payload;
import java.util.concurrent.TimeUnit;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.vaguehope.onosendai.R;
import com.vaguehope.onosendai.images.ImageLoadRequest;
import com.vaguehope.onosendai.images.ImageLoader;
import com.vaguehope.onosendai.model.Meta;
import com.vaguehope.onosendai.model.MetaType;
import com.vaguehope.onosendai.model.Tweet;
import com.vaguehope.onosendai.ui.pref.AddFilterSelectionActionModeCallback;
import com.vaguehope.onosendai.util.DateHelper;
public class PrincipalPayload extends Payload {
public PrincipalPayload (final Tweet tweet) {
super(tweet, null, PayloadType.PRINCIPAL);
}
@Override
public String getTitle () {
return String.format("tweet[%s]", getOwnerTweet().getSid());
}
@Override
public PayloadLayout getLayout () {
return PayloadLayout.PRINCIPAL_TWEET;
}
@Override
public PayloadRowView makeRowView (final View view) {
final TextView txtBody = (TextView) view.findViewById(R.id.tweetDetailBody);
txtBody.setCustomSelectionActionModeCallback(new AddFilterSelectionActionModeCallback(txtBody));
return new PayloadRowView(
txtBody,
(ImageView) view.findViewById(R.id.tweetDetailAvatar),
(TextView) view.findViewById(R.id.tweetDetailName),
(TextView) view.findViewById(R.id.tweetDetailDate));
}
@Override
public void applyTo (final PayloadRowView rowView, final ImageLoader imageLoader, final int reqWidth, final PayloadClickListener clickListener) {
final Tweet tweet = getOwnerTweet();
rowView.setText(tweet.getBody());
rowView.setSecondaryText(tweet.getFullnameWithSubtitle());
final Meta postTimeMeta = tweet.getFirstMetaOfType(MetaType.POST_TIME);
final long tweetTime = postTimeMeta != null ? postTimeMeta.toLong(0L) : tweet.getTime();
rowView.setTertiaryText(DateHelper.formatDateTime(rowView.anyContext(), TimeUnit.SECONDS.toMillis(tweetTime)));
final String avatarUrl = tweet.getAvatarUrl();
if (avatarUrl != null) {
imageLoader.loadImage(new ImageLoadRequest(avatarUrl, rowView.getImage()));
}
else {
rowView.getImage().setImageResource(R.drawable.question_blue);
}
}
}