package com.quran.labs.androidquran.widgets;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.ColorInt;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import com.quran.labs.androidquran.R;
public class DividerView extends View {
private int dividerColor;
private int dividerHeight;
private final Paint paint;
private int y;
private int highlightedColor;
private boolean isLineVisible;
public DividerView(Context context) {
this(context, null);
}
public DividerView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
if (attrs != null) {
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.DividerView);
dividerColor = ta.getColor(R.styleable.DividerView_dividerColor, dividerColor);
dividerHeight = ta.getDimensionPixelSize(
R.styleable.DividerView_dividerHeight, dividerHeight);
ta.recycle();
}
paint = new Paint();
paint.setColor(dividerColor);
isLineVisible = true;
}
public void toggleLine(boolean showLine) {
if (isLineVisible != showLine) {
isLineVisible = showLine;
invalidate();
}
}
public void setDividerColor(int color) {
if (dividerColor != color) {
dividerColor = color;
paint.setColor(color);
invalidate();
}
}
public void highlight(@ColorInt int color) {
if (color != highlightedColor) {
highlightedColor = color;
invalidate();
}
}
public void unhighlight() {
if (highlightedColor != 0) {
highlightedColor = 0;
invalidate();
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
y = getMeasuredHeight() - dividerHeight;
}
@Override
protected void onDraw(Canvas canvas) {
if (highlightedColor != 0) {
canvas.drawColor(highlightedColor);
}
if (isLineVisible) {
canvas.drawRect(0, y, getWidth(), y + dividerHeight, paint);
}
}
}