code: static PorterDuffColorFilter updateTintFilter(Drawable drawable, PorterDuffColorFilter tintFilter, ColorStateList tint,
                                                  PorterDuff.Mode tintMode) {
      if (tint == null || tintMode == null) {
        return null;
      }
  
      final int color = tint.getColorForState(drawable.getState(), Color.TRANSPARENT);
  
      if (tintFilter == null || !LOLLIPOP_PLUS) { // TODO worth caching them?
        return new PorterDuffColorFilter(color, tintMode);
      }
  
      tryInvoke(tintFilter, "setColor", INT_ARG, color);
      tryInvoke(tintFilter, "setMode", MODE_ARG, tintMode);
      return tintFilter;
    }
docs: Ensures the tint filter is consistent with the current tint color and
  mode.