/**
  * helper method to decide for the correct color
  *
  * @param ctx
  * @return
  */
 protected int getSelectedIconColor(Context ctx) {
   return ColorHolder.color(
       getSelectedIconColor(),
       ctx,
       R.attr.material_drawer_selected_text,
       R.color.material_drawer_selected_text);
 }
 /**
  * helper method to decide for the correct color
  *
  * @param ctx
  * @return
  */
 public int getIconColor(Context ctx) {
   int iconColor;
   if (this.isEnabled()) {
     iconColor =
         ColorHolder.color(
             getIconColor(),
             ctx,
             R.attr.material_drawer_primary_icon,
             R.color.material_drawer_primary_icon);
   } else {
     iconColor =
         ColorHolder.color(
             getDisabledIconColor(),
             ctx,
             R.attr.material_drawer_hint_icon,
             R.color.material_drawer_hint_icon);
   }
   return iconColor;
 }
 /**
  * helper method to decide for the correct color
  *
  * @param ctx
  * @return
  */
 protected int getColor(Context ctx) {
   int color;
   if (this.isEnabled()) {
     color =
         ColorHolder.color(
             getTextColor(),
             ctx,
             R.attr.material_drawer_primary_text,
             R.color.material_drawer_primary_text);
   } else {
     color =
         ColorHolder.color(
             getDisabledTextColor(),
             ctx,
             R.attr.material_drawer_hint_text,
             R.color.material_drawer_hint_text);
   }
   return color;
 }
 public T withDisabledIconColorRes(@ColorRes int disabledIconColorRes) {
   this.disabledIconColor = ColorHolder.fromColorRes(disabledIconColorRes);
   return (T) this;
 }
 public T withSelectedIconColorRes(@ColorRes int selectedColorRes) {
   this.selectedIconColor = ColorHolder.fromColorRes(selectedColorRes);
   return (T) this;
 }
 public T withDisabledIconColor(@ColorInt int disabledIconColor) {
   this.disabledIconColor = ColorHolder.fromColor(disabledIconColor);
   return (T) this;
 }
 public T withSelectedIconColor(@ColorInt int selectedIconColor) {
   this.selectedIconColor = ColorHolder.fromColor(selectedIconColor);
   return (T) this;
 }
 public T withIconColorRes(@ColorRes int iconColorRes) {
   this.iconColor = ColorHolder.fromColorRes(iconColorRes);
   return (T) this;
 }
 public T withIconColor(@ColorInt int iconColor) {
   this.iconColor = ColorHolder.fromColor(iconColor);
   return (T) this;
 }
 public T withTextColorRes(@ColorRes int textColorRes) {
   this.textColor = ColorHolder.fromColorRes(textColorRes);
   return (T) this;
 }
 public T withTextColor(@ColorInt int textColor) {
   this.textColor = ColorHolder.fromColor(textColor);
   return (T) this;
 }