docs: @Override
      protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
          if (mAreDimensOverridden) {
              int widthMode = MeasureSpec.getMode(widthMeasureSpec);
              int widthSize = MeasureSpec.getSize(widthMeasureSpec);
              int heightMode = MeasureSpec.getMode(heightMeasureSpec);
              int heightSize = MeasureSpec.getSize(heightMeasureSpec);
  
              int width;
              int height;
  
              //Measure Width
              switch (widthMode) {
                  case MeasureSpec.EXACTLY:
                      //Must be this size
                      width = widthSize;
                      break;
                  case MeasureSpec.AT_MOST:
                      //Can't be bigger than...
                      width = Math.min(mDesiredWidth, widthSize);
                      break;
                  case MeasureSpec.UNSPECIFIED:
                  default:
                      //Be whatever you want
                      width = mDesiredWidth;
                      break;
              }
  
              //Measure Height
              switch (heightMode) {
                  case MeasureSpec.EXACTLY:
                      //Must be this size
                      height = heightSize;
                      break;
                  case MeasureSpec.AT_MOST:
                      //Can't be bigger than...
                      height = Math.min(mDesiredHeight, heightSize);
                      break;
                  case MeasureSpec.UNSPECIFIED:
                  default:
                      //Be whatever you want
                      height = mDesiredHeight;
                      break;
              }
  
              //MUST CALL THIS
              setMeasuredDimension(width, height);
          } else {
              super.onMeasure(widthMeasureSpec, heightMeasureSpec);
          }
      }