private void drawValues(Canvas canvas, int row, int col) { ValueSet values = puzzle.getValues(row, col); if (values.isEmpty()) return; if (preview && !puzzle.isSolved()) { if (puzzle.isClue(row, col)) { boolean show = previewClueCounter++ % 3 != 0; String dv = show ? String.valueOf(theme.getSymbol(values.nextValue(0))) : "?"; canvas.drawText(dv, cellWidth / 2f, textOffset, theme.getCluePaint(preview)); } } else if (values.size() == 1) { String dv = String.valueOf(theme.getSymbol(values.nextValue(0))); Paint paint = puzzle.isClue(row, col) ? theme.getCluePaint(preview) : theme.getValuePaint(); canvas.drawText(dv, cellWidth / 2f, textOffset, paint); } else { multiValuesPainter.paintValues(canvas, values); } }