@SuppressWarnings("all")
  public ZoomPanDrawingView(Context context, AttributeSet attrs) {
    super(context, attrs);
    fHolder = getHolder();
    fHolder.addCallback(this);

    int width = ((Activity) context).getWindowManager().getDefaultDisplay().getWidth();
    int height = ((Activity) context).getWindowManager().getDefaultDisplay().getHeight();
    fCanvasManager = new DrawManager(width, height);

    fDrawListener = new ViewDrawListener();
    fCanvasManager.setDrawListener(fDrawListener);
    fZoomManager = new ZoomPanTouchListener(fCanvasManager);

    fViewMatrix = new Matrix();
    fZoomManager.setViewMatrix(fViewMatrix);

    fInputMatrix = new Matrix();
    fZoomManager.setInputMatrix(fInputMatrix);

    fCanvasManager.setInputMatrix(fInputMatrix);

    fDrawLock = new ReentrantLock();
    fDrawCondition = fDrawLock.newCondition();
    fDrawFlag = true;
    fZoomFlag = false;

    fWidth = fCanvasManager.getWidth();
    fHeight = fCanvasManager.getHeight();

    fCorners = new float[4];
  }
  @SuppressWarnings("all")
  public ZoomPanDrawingView(Context context, DrawManager aCanvasManager) {
    super(context);
    fHolder = getHolder();
    fHolder.addCallback(this);
    fCanvasManager = aCanvasManager;
    fDrawListener = new ViewDrawListener();
    fCanvasManager.setDrawListener(fDrawListener);
    fZoomManager = new ZoomPanTouchListener(fCanvasManager);

    fViewMatrix = new Matrix();
    fZoomManager.setViewMatrix(fViewMatrix);

    fInputMatrix = new Matrix();
    fZoomManager.setInputMatrix(fInputMatrix);

    fCanvasManager.setInputMatrix(fInputMatrix);

    fDrawLock = new ReentrantLock();
    fDrawCondition = fDrawLock.newCondition();
    fDrawFlag = true;
    fZoomFlag = false;

    fWidth = fCanvasManager.getWidth();
    fHeight = fCanvasManager.getHeight();

    fCorners = new float[4];
  }