package com.sky.hyh.customviewsamples.customview.customviewpager;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class HorizontalTitleBar extends LinearLayout {
    private List<TextView> mTitleViewList;
    private Context mContext;
    private OnClickTitleCallBack mOnClickTitleCallBack;

    public HorizontalTitleBar(Context context,
        @Nullable AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        setOrientation(LinearLayout.HORIZONTAL);
        mTitleViewList = new ArrayList<>();
    }

    /**
     * 设置标题栏所有标题
     * @param titleContents
     * @param defSelectdPos:默认选择的标题
     */
    public void setTitleContent(String[] titleContents, int defSelectdPos) {
        if(titleContents == null){
            return;
        }

        for(int i=0;i<titleContents.length;i++){
            TextView textView = new TextView(mContext);
            textView.setText(titleContents[i]);
            textView.setTextSize(14);
            textView.setTextColor(Color.parseColor("#212121"));
            textView.setTypeface(Typeface.DEFAULT_BOLD);
            if(i == defSelectdPos){
                textView.setAlpha(1);
            }else{
                textView.setAlpha(0.2f);
            }
            textView.setGravity(Gravity.CENTER);

            LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
            layoutParams.weight = 1;
            textView.setLayoutParams(layoutParams);
            addView(textView);
            mTitleViewList.add(textView);

            final int tempI = i;
            textView.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(mOnClickTitleCallBack!=null){
                        mOnClickTitleCallBack.onClickTitle(tempI);
                    }
                }
            });
        }
    }

    @Nullable
    public TextView getTitleByPos(int pos){
        if(pos < 0 ||pos > (mTitleViewList.size()-1)){
            return null;
        }
        return mTitleViewList.get(pos);
    }

    public void setTransparentAlpha(int exceptPos){
        for(int i=0;i<mTitleViewList.size();i++){
            if(i!=exceptPos){
                mTitleViewList.get(i).setAlpha(0.2f);
            }else{
                mTitleViewList.get(i).setAlpha(1);
            }
        }
    }

    public void setOnClickTitleCallBack(
        OnClickTitleCallBack onClickTitleCallBack) {
        mOnClickTitleCallBack = onClickTitleCallBack;
    }

    public interface OnClickTitleCallBack{
        void onClickTitle(int pos);
    }
}