package com.quran.labs.androidquran.widgets;
import com.quran.labs.androidquran.util.QuranSettings;
import com.quran.labs.androidquran.util.QuranUtils;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
public class QuranHeaderView extends ViewGroup {
private View mTitle;
private View mPageNumber;
private boolean mIsRtl;
public QuranHeaderView(Context context) {
this(context, null);
}
public QuranHeaderView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public QuranHeaderView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mIsRtl = QuranSettings.getInstance(context).isArabicNames() || QuranUtils.isRtl();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mTitle = getChildAt(0);
mPageNumber = getChildAt(1);
measureChildWithMargins(mPageNumber, widthMeasureSpec, 0, heightMeasureSpec, 0);
measureChildWithMargins(mTitle, widthMeasureSpec,
mPageNumber.getMeasuredWidth(), heightMeasureSpec, 0);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
View left = mTitle;
View right = mPageNumber;
if (mIsRtl) {
left = mPageNumber;
right = mTitle;
}
int top = ((b - t) - mTitle.getMeasuredHeight()) / 2;
left.layout(getPaddingLeft(),
top, getPaddingLeft() + left.getMeasuredWidth(), top + left.getMeasuredHeight());
top = ((b - t) - mPageNumber.getMeasuredHeight()) / 2;
right.layout(r - (right.getMeasuredWidth() + getPaddingRight()),
top, r - getPaddingRight(), top + right.getMeasuredHeight());
}
@Override
public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
return new MarginLayoutParams(getContext(), attrs);
}
@Override
protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
return new MarginLayoutParams(p);
}
@Override
protected ViewGroup.LayoutParams generateDefaultLayoutParams() {
return new MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
}
}