1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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);
}
}
}