private void drawBubbleShapeAndLabel(Canvas canvas, BubbleValue bubbleValue, float rawRadius, int mode) {
        if (ValueShape.SQUARE.equals(bubbleValue.getShape())) {
            canvas.drawRect(bubbleRect, bubblePaint);
        } else if (ValueShape.CIRCLE.equals(bubbleValue.getShape())) {
            canvas.drawCircle(bubbleCenter.x, bubbleCenter.y, rawRadius, bubblePaint);
        } else {
            throw new IllegalArgumentException("Invalid bubble shape: " + bubbleValue.getShape());
        }

        if (MODE_HIGHLIGHT == mode) {
            if (hasLabels || hasLabelsOnlyForSelected) {
                drawLabel(canvas, bubbleValue, bubbleCenter.x, bubbleCenter.y);
            }
        } else if (MODE_DRAW == mode) {
            if (hasLabels) {
                drawLabel(canvas, bubbleValue, bubbleCenter.x, bubbleCenter.y);
            }
        } else {
            throw new IllegalStateException("Cannot process bubble in mode: " + mode);
        }
    }
Removes empty spaces on sides of chart(left-right for landscape, top-bottom for portrait). *This method should be
called after layout had been drawn*. Because most often chart is drawn as rectangle with proportions other than
1:1 and bubbles have to be drawn as circles not ellipses I am unable to calculate correct margins based on chart
data only. I need to know chart dimension to remove extra empty spaces, that bad because viewport depends a
little on contentRectMinusAllMargins.
hellocharts-library/src/lecho/lib/hellocharts/renderer/BubbleChartRenderer.java