package com.wmdigit.setting; import android.view.View; 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.jiangdg.uvc.USBCameraHelper; import com.wmdigit.camera.CameraxController; import com.wmdigit.common.base.mvvm.BaseMvvmNaviDrawerActivity; import com.wmdigit.common.constants.RouteConstant; import com.wmdigit.common.model.DrawerMenuItemVO; import com.wmdigit.data.mmkv.repository.CameraLocalRepository; import com.wmdigit.data.mmkv.repository.CropLocalRepository; 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 }; /** * 标识是否需要释放相机 */ private boolean isCameraNeedRelease = false; @Override protected void initView() { } @Override protected void initData() { // 测试数据 // List<ProductsDTO> list = new ArrayList<>(); // list.add(new ProductsDTO("西红柿炒鸡蛋","000323", "XHSCJD", "12.80", 1)); // list.add(new ProductsDTO("红烧茄子","000324", "HSQZ", "13.80", 1)); // list.add(new ProductsDTO("套餐A","000325", "TCA", "10.80", 1)); // list.add(new ProductsDTO("套餐B","000326", "TCB", "5.80", 1)); // list.add(new ProductsDTO("套餐C","000327", "TCC", "3.80", 1)); // list.add(new ProductsDTO("套餐D","000328", "TCD", "60.00", 1)); // list.add(new ProductsDTO("套餐E","000329", "TCF", "20.10", 1)); // ProductsRepository.getInstance().insertBatch(list); // List<ProductsPO> a = ProductsRepository.getInstance().queryAll(); } @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 void onStart() { super.onStart(); // 开相机 if (!USBCameraHelper.getInstance(this).checkCameraOpened()){ isCameraNeedRelease = true; USBCameraHelper.getInstance(this).open(); } } @Override protected void onStop() { super.onStop(); // 关相机 if (isCameraNeedRelease){ isCameraNeedRelease = false; USBCameraHelper.getInstance(this).destroy(); } } @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<DrawerMenuItemVO> 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; } if (FRAGMENTS_NAVI_IDS[position] == R.id.dataLearningFragment){ // 检查是否裁剪 if (!CropLocalRepository.getInstance().getHasCropped()){ mViewModel.toastMessage.postValue(getString(R.string.module_setting_please_crop_first)); return; } } // 选中抽屉菜单的指定项 mViewModel.selectDrawerMenuItem(position); // 导航到对应页面 navigation(FRAGMENTS_NAVI_IDS[position]); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } } }