package com.cheikh.lazywaimai.widget.section;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.cheikh.lazywaimai.R;
import com.cheikh.lazywaimai.util.DensityUtil;
public abstract class SectionItemView extends FrameLayout {
protected View mItemView;
protected TextView mTitleTxt;
protected ImageView mIndicatorImg;
protected FrameLayout mExtensionLayout;
protected CharSequence mTitle;
protected Drawable mIcon;
protected boolean mIndicator;
public SectionItemView(Context context) {
this(context, null);
}
public SectionItemView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public SectionItemView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mItemView = LayoutInflater.from(context).inflate(R.layout.view_section_item, null, false);
addView(mItemView);
mTitleTxt = (TextView) mItemView.findViewById(R.id.txt_name);
mIndicatorImg = (ImageView) mItemView.findViewById(R.id.img_indicator);
mExtensionLayout = (FrameLayout) mItemView.findViewById(R.id.layout_extension);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.SectionItemView);
mTitle = array.getText(R.styleable.SectionItemView_siv_name);
mIcon = array.getDrawable(R.styleable.SectionItemView_siv_icon);
mIndicator = array.getBoolean(R.styleable.SectionItemView_siv_indicator, false);
array.recycle();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mTitleTxt.setText(mTitle);
if (mIcon != null) {
renderIconView(mIcon);
}
if (mIndicator) {
renderIndicator();
}
renderExtensionView();
}
protected void renderIconView(Drawable icon) {
icon.setBounds(0, 0, icon.getMinimumWidth(), icon.getMinimumHeight());
mTitleTxt.setCompoundDrawables(icon, null, null, null);
mTitleTxt.setCompoundDrawablePadding(DensityUtil.dip2px(getContext(), 15));
}
protected void renderIndicator() {
mIndicatorImg.setVisibility(View.VISIBLE);
}
protected abstract void renderExtensionView();
public String getTitle() {
return (String) mTitleTxt.getText();
}
public void setTitle(String title) {
mTitleTxt.setText(title);
}
}