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.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.alorma.github.R;
import core.GithubCommentReactions;
import core.GithubReaction;
import java.util.List;
public class ReactionsView extends LinearLayout {
private TextView[] reactions;
public ReactionsView(Context context) {
super(context);
init();
}
public ReactionsView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public ReactionsView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public ReactionsView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
private void init() {
inflate(getContext(), R.layout.reactions_layout, this);
setOrientation(HORIZONTAL);
TextView reaction1 = (TextView) findViewById(R.id.reaction1);
TextView reaction2 = (TextView) findViewById(R.id.reaction2);
TextView reaction3 = (TextView) findViewById(R.id.reaction3);
TextView reaction4 = (TextView) findViewById(R.id.reaction4);
TextView reaction5 = (TextView) findViewById(R.id.reaction5);
TextView reaction6 = (TextView) findViewById(R.id.reaction6);
reactions = new TextView[] {
reaction1, reaction2, reaction3, reaction4, reaction5, reaction6
};
}
public void setReactions(GithubCommentReactions reactions) {
if (reactions != null && reactions.getTotalCount() > 0) {
setVisibility(View.VISIBLE);
for (TextView reaction : this.reactions) {
reaction.setVisibility(View.INVISIBLE);
}
List<GithubReaction> reactionList = reactions.getReactions();
int min = Math.min(this.reactions.length, reactionList.size());
for (int i = 0; i < min; i++) {
TextView reaction = this.reactions[i];
reaction.setVisibility(View.VISIBLE);
reaction.setText(reactionList.get(i).toString());
}
} else {
setVisibility(View.GONE);
}
}
}