package com.wmdigit.setting;


import androidx.appcompat.widget.Toolbar;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.recyclerview.widget.RecyclerView;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.elvishew.xlog.XLog;
import com.wmdigit.common.base.mvvm.BaseMvvmNaviDrawerActivity;
import com.wmdigit.common.constants.RouteConstant;
import com.wmdigit.common.model.DrawerMenuItemModel;
import com.wmdigit.setting.databinding.ActivitySettingBinding;
import com.wmdigit.setting.viewmodel.SettingViewModel;

import java.util.List;

/**
 * 设置页
 * @author dizi
 */
@Route(path = RouteConstant.ROUTE_SETTING)
public class SettingActivity extends BaseMvvmNaviDrawerActivity<SettingViewModel, ActivitySettingBinding> {

    /**
     * fragment的导航id
     */
    private final int[] FRAGMENTS_NAVI_IDS = {
            R.id.systemInfoFragment,
            R.id.registerFragment,
            R.id.dataManagerFragment,
            R.id.dataLearningFragment,
            R.id.cameraCropFragment
    };

    @Override
    protected void initView() {

    }

    @Override
    protected void initData() {
    }

    @Override
    public void initObserve() {
        super.initObserve();
        // 观察页码位置
        mViewModel.pagePosition.observe(this, position -> {
            if (position == 3){
                mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
                // 关闭抽屉
                mDrawerLayout.close();
            }
            else{
                // 开启抽屉
                mDrawerLayout.open();
                mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
            }
        });
    }

    @Override
    protected int getLayoutId() {
        return R.layout.activity_setting;
    }

    @Override
    protected Class<SettingViewModel> getViewModel() {
        return SettingViewModel.class;
    }

    @Override
    protected int getFragmentContainerViewId() {
        return R.id.nav_host_setting_fragment;
    }

    @Override
    protected Toolbar getToolbar() {
        return mDataBinding.toolbar;
    }

    @Override
    protected int getToolbarMenuResId() {
        return com.wmdigit.common.R.menu.toolbar_menu;
    }

    @Override
    protected List<DrawerMenuItemModel> getMenuData() {
        // 初始化导航菜单
        return mViewModel.getDrawerMenuItemModels();
    }

    @Override
    protected DrawerLayout getDrawerLayout() {
        return mDataBinding.drawerLayout;
    }

    @Override
    protected RecyclerView getDrawerMenu() {
        return mDataBinding.rvDrawerMenu;
    }

    @Override
    protected boolean allowCloseDrawer() {
        return mViewModel.checkAllowCloseDrawer();
    }

    @Override
    protected void onDrawerMenuItemClickListener(int position) {
        if (position == mViewModel.pagePosition.getValue()) {
            return;
        }
        // 选中抽屉菜单的指定项
        mViewModel.selectDrawerMenuItem(position);
        // 导航到对应页面
        navigation(FRAGMENTS_NAVI_IDS[position]);
    }
}