in app/src/main/java/com/google/reviewit/widget/CodeReviewVotes.java [56:130]
public void init(Change change) {
List<ApprovalInfo> codeReviewApprovals =
(change.info.labels != null
&& change.info.labels.get("Code-Review") != null)
? change.info.labels.get("Code-Review").all : null;
if (codeReviewApprovals == null) {
setLayoutParams(new LinearLayout.LayoutParams(
widgetUtil.dpToPx(48), widgetUtil.dpToPx(48)));
return;
}
Set<Integer> values = new HashSet<>();
for (ApprovalInfo approval : codeReviewApprovals) {
if (approval.value != null) {
values.add(approval.value);
}
}
values.remove(0);
if (values.isEmpty()) {
ImageView icon = createVoteIcon(0);
icon.setLayoutParams(matchLayout());
setInvisible(icon);
addView(icon);
return;
}
if (values.size() == 1) {
ImageView icon = createVoteIcon(values.iterator().next());
icon.setLayoutParams(matchLayout());
addView(icon);
} else {
LinearLayout plusIcons = new LinearLayout(getContext());
plusIcons.setLayoutParams(matchAndWrapLayout());
addView(plusIcons);
ImageView iconPlus2 = createVoteIcon(2);
iconPlus2.setLayoutParams(
fixedLayout(widgetUtil.dpToPx(24), widgetUtil.dpToPx(24)));
if (!values.contains(2)) {
setInvisible(iconPlus2);
}
plusIcons.addView(iconPlus2);
ImageView iconPlus1 = createVoteIcon(1);
iconPlus1.setLayoutParams(
fixedLayout(widgetUtil.dpToPx(24), widgetUtil.dpToPx(24)));
if (!values.contains(1)) {
setInvisible(iconPlus1);
}
plusIcons.addView(iconPlus1);
LinearLayout minusIcons = new LinearLayout(getContext());
minusIcons.setLayoutParams(matchAndWrapLayout());
addView(minusIcons);
ImageView iconMinus2 = createVoteIcon(-2);
iconMinus2.setLayoutParams(
fixedLayout(widgetUtil.dpToPx(24), widgetUtil.dpToPx(24)));
if (!values.contains(-2)) {
setInvisible(iconMinus2);
}
minusIcons.addView(iconMinus2);
ImageView iconMinus1 = createVoteIcon(-1);
iconMinus1.setLayoutParams(
fixedLayout(widgetUtil.dpToPx(24), widgetUtil.dpToPx(24)));
if (!values.contains(-1)) {
setInvisible(iconMinus1);
}
minusIcons.addView(iconMinus1);
}
}