package com.bpa.scalage;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;

import com.bpa.scalage.app.Main;
import com.bpa.scalage.helper.T;
import com.bpa.scalage.message.MessageManager;
import com.bpa.scalage.pagefragment.OverPageFragment;
import com.bpa.scalage.pagefragment.ParameterSetFragment;
import com.bpa.scalage.pagefragment.SystemDebugFragment;

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

/**
 * 系统设置界面
 */
public class SystemSetActivity extends AppCompatActivity implements View.OnClickListener {

    //region 界面变量
    //声明ViewPager
    private ViewPager mViewPager;
    //装载Fragment的集合
    private List<Fragment> mFragments;
    //页面适配器
    private FragmentPagerAdapter mAdapter;
    //顶部Tab按钮
    private TextView mTabCSSZ,mTabXTTS,mTabOVER;
    //调试界面
    public SystemDebugFragment debugFragment;
    //endregion

    //region 界面私有函数

    /**
     * 启动函数
     * @param savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_system_set);
        Init();
    }

    /**
     * 关闭窗体
     */
    @Override
    protected void onDestroy() {
        T.show(SystemSetActivity.this, "关闭系统设置界面!");
        Main.getInstance().GetOrganize();
        debugFragment.Close();//告诉调试界面我已经关闭了
        MessageManager.getInstance().unRegisterMessageReceiver(this);
        super.onDestroy();
    }
    //endregion

    //region 公有函数
    /**
     * 界面初始化
     */
    public void Init()
    {
        initViews();
        initEvents();
        initData();
    }
    /**
     * 初始化控件
     */
    private void initViews() {
        mViewPager= (ViewPager) findViewById(R.id.id_viewpager);
        mTabCSSZ=(TextView) findViewById(R.id.tv_cssz);
        mTabXTTS=(TextView) findViewById(R.id.tv_xtts);
        mTabOVER=(TextView) findViewById(R.id.tv_over);
    }
    /**
     * 初始化按钮事件
     */
    private void initEvents() {
        //设置四个Tab的点击事件
        mTabCSSZ.setOnClickListener(this);
        mTabXTTS.setOnClickListener(this);
        mTabOVER.setOnClickListener(this);
    }
    /**
     * 初始化数据
     */
    private void initData()
    {
        mFragments = new ArrayList<>();
        //将Fragment加入集合中
        //mFragments.add(getLayoutInflater().inflate(R.layout.parameter_set,null));
        debugFragment=new SystemDebugFragment();
        debugFragment.SetMainView(SystemSetActivity.this);
        mFragments.add(new ParameterSetFragment());
        mFragments.add(debugFragment);
        mFragments.add(new OverPageFragment());
        //初始化适配器
        mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {//从集合中获取对应位置的Fragment
                return mFragments.get(position);
            }
            @Override
            public int getCount() {//获取集合中Fragment的总数
                return mFragments.size();
            }
        };
        //不要忘记设置ViewPager的适配器
        mViewPager.setAdapter(mAdapter);
        //设置ViewPager的切换监听
        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            //页面滚动事件
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }
            //页面选中事件
            @Override
            public void onPageSelected(int position) {
                selectTab(position);
            }
            @Override
            //页面滚动状态改变事件
            public void onPageScrollStateChanged(int state) {
            }
        });
    }
    //endregion

    //region 点击事件

    /**
     * 本页面点击事件监听
     * @param v
     */
    @Override
    public void onClick(View v) {
        //根据点击的Tab切换不同的页面及设置对应的ImageButton为绿色
        switch (v.getId()) {
            case R.id.tv_cssz:
                selectTab(0);
                break;
            case R.id.tv_xtts:
                selectTab(1);
                break;
            case R.id.tv_over:
                selectTab(2);
                break;
        }
    }
    //endregion

    //region 外部调用事件

    /**
     * 将四个按钮设置未其他颜色
     */
    private void resetImgs() {
        mTabCSSZ.setBackground(getResources().getDrawable(R.drawable.pay_zfb_nomal));
        mTabXTTS.setBackground(getResources().getDrawable(R.drawable.tab_z_normal));
        mTabOVER.setBackground(getResources().getDrawable(R.drawable.pay_wx_normal));
    }
    /**
     * 根据选中设置不同背景颜色
     * @param i
     */
    private void selectTab(int i) {
        //先将四个ImageButton置为灰色
        resetImgs();
        //根据点击的Tab设置对应的ImageButton为绿色
        switch (i) {
            case 0:
                mTabCSSZ.setBackground(getResources().getDrawable(R.drawable.pay_zfb_pressed));
                break;
            case 1:
                mTabXTTS.setBackground(getResources().getDrawable(R.drawable.tab_z_pressed));
                break;
            case 2:
                mTabOVER.setBackground(getResources().getDrawable(R.drawable.pay_wx_pressed));
                break;
        }
        //设置当前点击的Tab所对应的页面
        mViewPager.setCurrentItem(i);
    }
    //endregion
}