@Override
public void onDraw(Canvas canvas, int startTop, int startBottom) {
int tokenStart = getTokenForVertical(startTop, TokenPosition.START_OF_LINE);
int tokenEnd = getTokenForVertical(startBottom, TokenPosition.END_OF_LINE);
for (int i = Math.max(0, tokenStart - 25); i < tokenEnd + 25 && i < tokens.length; i++) {
Token token = tokens[i];
token.draw(canvas, -startTop, paint, params);
if (params.debugging) {
if (token instanceof LineBreak) {
int lastColor = paint.getColor();
boolean lastFakeBold = paint.isFakeBoldText();
Paint.Style lastStyle = paint.getStyle();
Paint.Align lastAlign = paint.getTextAlign();
paint.setColor(Color.YELLOW);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(params.insetPaddingLeft, token.y - startTop - getTokenAscent(0), params.parentWidth - params.insetPaddingRight, token.y - startTop + getTokenDescent(0), paint);
paint.setColor(Color.BLACK);
paint.setFakeBoldText(true);
paint.setTextAlign(Paint.Align.CENTER);
canvas.drawText("LINEBREAK", params.insetPaddingLeft + (params.parentWidth - params.insetPaddingRight - params.insetPaddingLeft) / 2, token.y - startTop, paint);
paint.setStyle(lastStyle);
paint.setColor(lastColor);
paint.setTextAlign(lastAlign);
paint.setFakeBoldText(lastFakeBold);
}
}
}
}