package com.alorma.github.ui.view.issue;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alorma.github.R;
import com.alorma.github.sdk.bean.issue.IssueStoryLabelList;
import com.alorma.github.sdk.bean.issue.IssueStoryUnlabelList;
import com.alorma.github.ui.view.UserAvatarView;
import com.alorma.github.utils.TimeUtils;
import core.User;
import core.issues.Label;
import java.util.List;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class IssueStoryLabelDetailView extends LinearLayout {
private TextView userText;
private UserAvatarView profileIcon;
private IssueStoryLabelsView labelsView;
private TextView createdAt;
public IssueStoryLabelDetailView(Context context) {
super(context);
init();
}
public IssueStoryLabelDetailView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public IssueStoryLabelDetailView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public IssueStoryLabelDetailView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
private void init() {
inflate(getContext(), R.layout.issue_detail_labels, this);
userText = (TextView) findViewById(R.id.userLogin);
profileIcon = (UserAvatarView) findViewById(R.id.profileIcon);
createdAt = (TextView) findViewById(R.id.createdAt);
labelsView = (IssueStoryLabelsView) findViewById(R.id.labelsView);
}
public void setLabelsEvent(IssueStoryLabelList labelsEvent) {
long milis = System.currentTimeMillis();
printLabelsEvent(true, labelsEvent.created_at, labelsEvent.user(), labelsEvent);
Log.i("PR_time_labels", (System.currentTimeMillis() - milis) + "ms");
}
public void setLabelsEvent(IssueStoryUnlabelList labelsEvent) {
long milis = System.currentTimeMillis();
printLabelsEvent(false, labelsEvent.created_at, labelsEvent.user(), labelsEvent);
Log.i("PR_time_unlabels", (System.currentTimeMillis() - milis) + "ms");
}
private void printLabelsEvent(boolean added, long created_at, User user, List<Label> labels) {
userText.setText(user.getLogin());
profileIcon.setUser(user);
labelsView.setLabels(labels);
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
String date = TimeUtils.getTimeAgoString(formatter.print(created_at));
String dateText =
getContext().getResources().getString(added ? R.string.aissue_detail_add_labels : R.string.aissue_detail_removed_labels, date);
createdAt.setText(dateText);
}
}