package com.zenkun.datetimepicker.date;

import com.android.datetimepicker.R;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;


public class TextViewWithCircularIndicator extends TextView {
	private final int mCircleColor;
	Paint mCirclePaint = new Paint();
	private boolean mDrawCircle;
	private final String mItemIsSelectedText;
	private final int mRadius;

	public TextViewWithCircularIndicator(Context context, AttributeSet attributeSet) {
		super(context, attributeSet);
		Resources localResources = context.getResources();
		this.mCircleColor = localResources.getColor(R.color.blue);
		this.mRadius = localResources.getDimensionPixelOffset(R.dimen.month_select_circle_radius);
		this.mItemIsSelectedText = context.getResources().getString(R.string.item_is_selected);
		init();
	}

	private void init() {
		this.mCirclePaint.setFakeBoldText(true);
		this.mCirclePaint.setAntiAlias(true);
		this.mCirclePaint.setColor(this.mCircleColor);
		this.mCirclePaint.setTextAlign(Paint.Align.CENTER);
		this.mCirclePaint.setStyle(Paint.Style.FILL);
		this.mCirclePaint.setAlpha(60);
	}

	public void drawIndicator(boolean drawIndicator) {
		this.mDrawCircle = drawIndicator;
	}

	public CharSequence getContentDescription() {
		CharSequence text = getText();
		if (this.mDrawCircle)
			text = String.format(this.mItemIsSelectedText, text);
		return text;
	}

	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		if (this.mDrawCircle) {
			int width = getWidth();
			int heigth = getHeight();
			int radius = Math.min(width, heigth) / 2;
			canvas.drawCircle(width / 2, heigth / 2, radius, this.mCirclePaint);
		}
	}
}