public void init()

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);
    }
  }