docs: @Nullable
    public Drawable setDrawable(int index, @Nullable Drawable drawable) {
      Preconditions.checkArgument(index >= 0);
      Preconditions.checkArgument(index < mLayers.length);
      final Drawable oldDrawable = mLayers[index];
      if (drawable != oldDrawable) {
        if (drawable != null && mIsMutated) {
          drawable.mutate();
        }
  
        DrawableUtils.setCallbacks(mLayers[index], null, null);
        DrawableUtils.setCallbacks(drawable, null, null);
        DrawableUtils.setDrawableProperties(drawable, mDrawableProperties);
        DrawableUtils.copyProperties(drawable, this);
        DrawableUtils.setCallbacks(drawable, this, this);
        mIsStatefulCalculated = false;
        mLayers[index] = drawable;
        invalidateSelf();
      }
      return oldDrawable;
    }