docs: protected void bindViewHelper(BaseViewHolder viewHolder) {
          Context ctx = viewHolder.itemView.getContext();
  
          //set the identifier from the drawerItem here. It can be used to run tests
          viewHolder.itemView.setId(hashCode());
  
          //set the item selected if it is
          viewHolder.itemView.setSelected(isSelected());
  
          //set the item enabled if it is
          viewHolder.itemView.setEnabled(isEnabled());
  
          //get the correct color for the background
          int selectedColor = getSelectedColor(ctx);
          //get the correct color for the text
          int color = getColor(ctx);
          ColorStateList selectedTextColor = getTextColorStateList(color, getSelectedTextColor(ctx));
          //get the correct color for the icon
          int iconColor = getIconColor(ctx);
          int selectedIconColor = getSelectedIconColor(ctx);
  
          //set the background for the item
          themeDrawerItem(ctx, viewHolder.view, selectedColor, isSelectedBackgroundAnimated());
          //set the text for the name
          StringHolder.applyTo(this.getName(), viewHolder.name);
          //set the text for the description or hide
          StringHolder.applyToOrHide(this.getDescription(), viewHolder.description);
  
          //set the colors for textViews
          viewHolder.name.setTextColor(selectedTextColor);
          //set the description text color
          ColorHolder.applyToOr(getDescriptionTextColor(), viewHolder.description, selectedTextColor);
  
          //define the typeface for our textViews
          if (getTypeface() != null) {
              viewHolder.name.setTypeface(getTypeface());
              viewHolder.description.setTypeface(getTypeface());
          }
  
          //get the drawables for our icon and set it
          Drawable icon = ImageHolder.decideIcon(getIcon(), ctx, iconColor, isIconTinted(), 1);
          if (icon != null) {
              Drawable selectedIcon = ImageHolder.decideIcon(getSelectedIcon(), ctx, selectedIconColor, isIconTinted(), 1);
              ImageHolder.applyMultiIconTo(icon, iconColor, selectedIcon, selectedIconColor, isIconTinted(), viewHolder.icon);
          } else {
              ImageHolder.applyDecidedIconOrSetGone(getIcon(), viewHolder.icon, iconColor, isIconTinted(), 1);
          }
  
          //for android API 17 --> Padding not applied via xml
          DrawerUIUtils.setDrawerVerticalPadding(viewHolder.view, level);
      }