@Override
  public void draw(Canvas canvas) {
    if (brightOnDark) {
      canvas.setColor(Colors.BRIGHT_DETECTED);
    } else {
      canvas.setColor(Colors.DARK_DETECTED);
    }
    drawBlob(canvas, blobX_2Y_2);
    drawBlob(canvas, blobX_2Y1);
    drawBlob(canvas, blobX_4Y1);
    drawBlob(canvas, blobX1Y_2);
    drawBlob(canvas, blobX1Y1);
    drawBlob(canvas, blobX1Y3);
    drawBlob(canvas, blobX3Y1);

    if (brightOnDark) {
      canvas.setColor(Colors.DARK_DETECTED);
    } else {
      canvas.setColor(Colors.BRIGHT_DETECTED);
    }

    for (int ii = 4; 0 <= ii; --ii) {
      int jj = 4 - ii;
      canvas.drawLine(
          (ii * border0x + jj * border2x) / (ii * border0z + jj * border2z),
          (ii * border0y + jj * border2y) / (ii * border0z + jj * border2z),
          (ii * border1x + jj * border3x) / (ii * border1z + jj * border3z),
          (ii * border1y + jj * border3y) / (ii * border1z + jj * border3z));
      canvas.drawLine(
          (ii * border0x + jj * border1x) / (ii * border0z + jj * border1z),
          (ii * border0y + jj * border1y) / (ii * border0z + jj * border1z),
          (ii * border2x + jj * border3x) / (ii * border2z + jj * border3z),
          (ii * border2y + jj * border3y) / (ii * border2z + jj * border3z));
    }
  }
 private void drawBlob(Canvas canvas, Blob blob) {
   canvas.drawCircle(blob.x, blob.y, blob.radius);
 }