package tk.wasdennnoch.androidn_ify.settings.misc;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.support.v4.view.ViewCompat;
import android.util.TypedValue;
import android.view.View;
import android.widget.LinearLayout;
public class DashboardOverlay extends View {
private Drawable mDivider;
private LinearLayout mLayout;
public DashboardOverlay(Context context) {
super(context);
setWillNotDraw(false);
TypedValue value = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.listDivider, value, true);
mDivider = context.getDrawable(value.resourceId);
}
@Override
protected void onDraw(Canvas c) {
super.onDraw(c);
final int childCount = mLayout.getChildCount();
for (int i = 1; i < childCount; i++) {
final View child = mLayout.getChildAt(i);
int top = getChildTop(child);
mDivider.setBounds(child.getLeft(), top, child.getRight(),
top + mDivider.getIntrinsicHeight());
mDivider.draw(c);
}
}
private int getChildTop(View child) {
final LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) child
.getLayoutParams();
return child.getTop() + params.topMargin + Math.round(ViewCompat.getTranslationY(child));
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mLayout != null) {
setMeasuredDimension(mLayout.getMeasuredWidth(), mLayout.getMeasuredHeight());
invalidate();
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
public void setDashboardLayout(LinearLayout dashboardLayout) {
mLayout = dashboardLayout;
}
}