@Override
  public void onScale(float scaleFactor, float focusX, float focusY) {
    if (getScale() < mMaxScale || scaleFactor < 1.0F) {

      if (mScaleChangeListener != null) {
        mScaleChangeListener.onScaleChange(scaleFactor, focusX, focusY);
      }

      mMatrix.postScale(scaleFactor, scaleFactor, focusX, focusY);
      checkMatrixAndInvalidate();
    }
  }
  @Override
  public void onScale(float scaleFactor, float focusX, float focusY) {
    if (DEBUG) {
      LogManager.getLogger()
          .d(
              LOG_TAG,
              String.format(
                  "onScale: scale: %.2f. fX: %.2f. fY: %.2f", scaleFactor, focusX, focusY));
    }

    if (getScale() < mMaxScale || scaleFactor < 1f) {
      if (null != mScaleChangeListener) {
        mScaleChangeListener.onScaleChange(scaleFactor, focusX, focusY);
      }
      mSuppMatrix.postScale(scaleFactor, scaleFactor, focusX, focusY);
      checkAndDisplayMatrix();
    }
  }