_chid = new ArrayList<>();
+ for (BPA_GOODPROPERTY k:zsx)
+ {
+ ResGoodProperty m=new ResGoodProperty();
+ m.id=k.id;
+ m.name=k.name;
+ m.isSelect=false;
+ _chid.add(m);
+ }
+ re.child=_chid;
+
+ bpa_goodproperties.add(re);
+ }
+
+
//1.商品类型
goodstypes = QueryDB.GetGoodsTypeALL();
diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_lsjy_fragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_lsjy_fragment.java
index 22f3a5b5..8cedf1eb 100644
--- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_lsjy_fragment.java
+++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_lsjy_fragment.java
@@ -176,26 +176,17 @@ public class JiaoYan_lsjy_fragment extends BaseFragment {
//endregion
ExecuteTheRecipe.WritePLC("校准完成",false,null);
- ExecuteTheRecipe.WritePLC("手自切换", false, new IWriteCallBack() {
+ ExecuteTheRecipe.WritePLC("手自切换", false, null);
+ ExecuteTheRecipe.WritePLC("通道校准", true, new IWriteCallBack() {
@Override
public void onSuccess() {
- ExecuteTheRecipe.WritePLC("通道校准", true, new IWriteCallBack() {
- @Override
- public void onSuccess() {
- ToastUtils.info("启动通道校准成功!");
- }
- @Override
- public void onFailure(String ErrorMsg) {
- ToastUtils.error("启动通道校准失败!");
- }
- });
+ ToastUtils.info("启动通道校准成功!");
}
@Override
public void onFailure(String ErrorMsg) {
ToastUtils.error("启动通道校准失败!");
}
});
-
break;
case R.id.kscl://开始出料
String zltext = edittext_cl.getText().toString();
@@ -369,18 +360,19 @@ public class JiaoYan_lsjy_fragment extends BaseFragment {
ExecuteTheRecipe.OnChargeMixtureComNotPar = new IRun() {
@Override
public void Run() {
- ToastUtils.warning("通道校准完成!");
if (selectIndexSilos > 0) {
final int kkk = selectIndexSilos;
try {
- new Handler().postDelayed(new Runnable() {
+
+ getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
+ try {
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ ToastUtils.warning("通道校准完成!");
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- try {
// 在2秒后执行按钮操作
ExecuteTheRecipe.WritePLC("校准值"+kkk,(short) zhongliangxianshi,null);
@@ -397,13 +389,15 @@ public class JiaoYan_lsjy_fragment extends BaseFragment {
{
lsjyAdapter.refresh();
}
- } catch (Exception e) {
- ToastUtils.error("重量解析显示异常!" + e.getMessage());
}
- }
- });
+ }, 2000);
+
+ } catch (Exception e) {
+ ToastUtils.error("重量解析显示异常!" + e.getMessage());
+ }
}
- }, 1000);
+ });
+
} catch (Exception ex) {
Log.d("dsds", "Run: " + ex.getMessage());
diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdbs_fragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdbs_fragment.java
new file mode 100644
index 00000000..f506f4a9
--- /dev/null
+++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdbs_fragment.java
@@ -0,0 +1,91 @@
+package com.bonait.bnframework.modules.home.fragment.from.fragment;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+
+import com.bonait.bnframework.R;
+import com.bonait.bnframework.business.ConfigData;
+import com.bonait.bnframework.business.ExecuteTheRecipe;
+import com.bonait.bnframework.common.base.BaseFragment;
+import com.bonait.bnframework.common.constant.ConfigName;
+import com.orhanobut.logger.Logger;
+import com.suke.widget.SwitchButton;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class JiaoYan_zdbs_fragment extends BaseFragment {
+
+ @BindView(R.id.control_switch_zdbs)
+ SwitchButton control_switch_zdbs;//自动补水
+ private Context context;
+
+ @Override
+ protected View onCreateView() {
+ View root = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_jiaoyan_zdbs, null);
+ ButterKnife.bind(this, root);
+ return root;
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ Logger.d("我的fragment创建");
+ context = getContext();
+ InitView();
+ }
+
+ /**
+ * 初始化界面
+ */
+ public void InitView() {
+ Initdata();
+ }
+
+ /**
+ * 初始化数据加载
+ */
+ public void Initdata() {
+ control_switch_zdbs.setChecked(ConfigName.getInstance().AutomaticWaterRefill);
+ control_switch_zdbs.setOnCheckedChangeListener(new SwitchButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(SwitchButton view, boolean isChecked) {
+ //设置
+ ConfigName.getInstance().AutomaticWaterRefill=isChecked;
+ ConfigData.getInstance().SavePZ();
+ if(!isChecked) //关闭
+ {
+ ExecuteTheRecipe.WritePLC("水池进水阀",false,null);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ Logger.d("我的fragment销毁");
+ ExecuteTheRecipe.WritePLC("清洗模式",false,null);
+ }
+
+ /**
+ * 当在activity设置viewPager + BottomNavigation + fragment时,
+ * 为防止viewPager左滑动切换界面,与fragment左滑返回上一界面冲突引起闪退问题,
+ * 必须加上此方法,禁止fragment左滑返回上一界面。
+ *
+ * 切记!切记!切记!否则会闪退!
+ *
+ * 当在fragment设置viewPager + BottomNavigation + fragment时,则不会出现这个问题。
+ */
+ @Override
+ protected boolean canDragBack() {
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdqx_fragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdqx_fragment.java
index 17a4576b..918922ee 100644
--- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdqx_fragment.java
+++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/JiaoYan_zdqx_fragment.java
@@ -5,6 +5,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import android.content.Context;
@@ -17,15 +18,22 @@ import android.widget.Button;
import android.widget.EditText;
import com.bonait.bnframework.R;
+import com.bonait.bnframework.business.ConfigData;
import com.bonait.bnframework.business.ExecuteTheRecipe;
import com.bonait.bnframework.common.base.BaseFragment;
import com.bonait.bnframework.common.constant.DataBus;
+import com.bonait.bnframework.common.db.QueryDB;
+import com.bonait.bnframework.common.db.mode.BPA_SUGAR;
import com.bonait.bnframework.common.helper.I.IRun;
import com.bonait.bnframework.common.helper.I.IWriteCallBack;
import com.bonait.bnframework.common.helper.WrapContentLinearLayoutManager;
+import com.bonait.bnframework.common.utils.AlertDialogUtils;
import com.bonait.bnframework.common.utils.ToastUtils;
import com.bonait.bnframework.modules.home.adapter.wdsz_adapter;
+import com.bonait.bnframework.modules.home.adapter.zdqxchid_adapter;
import com.orhanobut.logger.Logger;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
+import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -33,16 +41,13 @@ import butterknife.OnClick;
public class JiaoYan_zdqx_fragment extends BaseFragment {
- @BindView(R.id.edittext_pssj)
- EditText edittext_pssj;//排水阀排水时间
- @BindView(R.id.edittext_xhsj)
- EditText edittext_xhsj;//循环清洗时间
-
- @BindView(R.id.edittext_qxwd)
- EditText edittext_qxwd;//清洗温度
@BindView(R.id.bt_start)
- Button bt_start;//开始时间
+ Button bt_start;//开始清洗
+
+ @BindView(R.id.Recy_zdqx)
+ RecyclerView Recy_zdqx;//自动清洗流程
+
private Context context;
@Override
protected View onCreateView() {
@@ -66,73 +71,78 @@ public class JiaoYan_zdqx_fragment extends BaseFragment {
}
boolean IsStart = false;
- @OnClick({R.id.save_time,R.id.bt_start})
+ @OnClick({R.id.bt_add_zdqx,R.id.bt_start})
public void onViewClicked(View view) {
switch (view.getId()) {
- case R.id.save_time://保存时间
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- if (!edittext_pssj.getText().toString().equals("")) {
- int k= (int)Math.round((Double.parseDouble(edittext_pssj.getText().toString()) * 10));
- ExecuteTheRecipe.WritePLC("排水阀排水时间",(short)k,null);
- Thread.sleep(200);
- }
-
- if (!edittext_xhsj.getText().toString().equals("")) {
- int k= (int)Math.round((Double.parseDouble(edittext_xhsj.getText().toString()) * 10));
- ExecuteTheRecipe.WritePLC("循环清洗时间",(short)k,null);
- Thread.sleep(200);
- }
-
- if (!edittext_qxwd.getText().toString().equals("")) {
- int k= Integer.parseInt(edittext_qxwd.getText().toString());
- ExecuteTheRecipe.WritePLC("水池温度设置",k,null);
- Thread.sleep(200);
- }
-
- } catch (InterruptedException e) {
-
- } catch (Exception e) {
-
- }
-
- }
- }).start();
- ToastUtils.info("保存成功!");
+ case R.id.bt_add_zdqx://增加流程
+ BPA_SUGAR sugar=new BPA_SUGAR();
+ sugar.plcvar="0.0|0.0|0";
+ QueryDB.AddSugar(sugar);
+ DataBus.getInstance().GetZDQXChid();
+ ToastUtils.info("增加成功!");
break;
case R.id.bt_start://开始清洗
if (IsStart) {
+
+ String title = "温馨提示!";
+ String message = "客官确定要强制停止清洗吗?";
+ AlertDialogUtils.showDialog(context, title, message, new QMUIDialogAction.ActionListener() {
+ @Override
+ public void onClick(QMUIDialog dialog, int index) {
+ IsStart=false;
+ bt_start.setText("开始清洗");
+ bt_start.setBackgroundResource(R.drawable.sz_bj);
+ }
+ });
ToastUtils.warning("正在清洗中,请勿重复点击!");
return;
}
+ ExecuteTheRecipe.WritePLC("清洗模式", true, new IWriteCallBack() {
+ @Override
+ public void onSuccess() {
+ IsStart=true;
+ bt_start.setText("正在清洗");
+ bt_start.setBackgroundResource(R.drawable.cp_bj);
+ }
+ @Override
+ public void onFailure(String ErrorMsg) {
+
+ }
+ });
+
new Thread(new Runnable() {
@Override
public void run() {
try {
- ExecuteTheRecipe.WritePLC("清洗模式",true,null);
- ExecuteTheRecipe.WritePLC("自动清洗开始", true, new IWriteCallBack() {
- @Override
- public void onSuccess() {
- //UI线程操作UI控件
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- IsStart=true;
- bt_start.setText("正在清洗");
- bt_start.setBackgroundResource(R.drawable.cp_bj);
- }
- });
- }
-
- @Override
- public void onFailure(String ErrorMsg) {
+ for (BPA_SUGAR item:
+ DataBus.getInstance().zdqx) {
+
+ item.exp="执行中";
+ DataBus.getInstance().zdqxchidAdapter.refresh();
+
+ final boolean[] IsStop = {false};
+ ExecuteTheRecipe.CleaningComplete=new IRun() {
+ @Override
+ public void Run() {
+ IsStop[0] =true;
+ }
+ };
+
+ long a = System.currentTimeMillis();
+ while (IsStart && !IsStop[0] && IsStart) {
+ if ((System.currentTimeMillis() - a) > 1000 * 500) {
+ break;
+ }
+ Thread.sleep(100);//10 *6
}
- });
+ item.exp="执行完成";
+ DataBus.getInstance().zdqxchidAdapter.refresh();
+ }
+
+ ExecuteTheRecipe.WritePLC("管道自动排水",true,null);
} catch (Exception e) {
@@ -146,23 +156,6 @@ public class JiaoYan_zdqx_fragment extends BaseFragment {
//region 数据加载
- private Handler mHandler = new Handler() {
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 0:
- bt_start.setText("开始清洗");
- bt_start.setBackgroundResource(R.drawable.sz_bj);
- break;
- case 1:
-
- break;
- case 2:
-
- break;
- }
-
- }
- };
/**
* 初始化数据加载
*/
@@ -172,40 +165,34 @@ public class JiaoYan_zdqx_fragment extends BaseFragment {
@Override
public void run() {
try {
- //填充数据
- Object t1= ExecuteTheRecipe.ReadPLC("排水阀排水时间");
- Object t5= ExecuteTheRecipe.ReadPLC("循环清洗时间");
- Object t7= ExecuteTheRecipe.ReadPLC("水池温度设置");
+ DataBus.getInstance().GetZDQXChid();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
- edittext_pssj.setText(t1==null?"0.0":(String.format ("%.1f", (Double.parseDouble(t1.toString())/10))));
- edittext_xhsj.setText(t5==null?"0.0":(String.format ("%.1f", (Double.parseDouble(t5.toString())/10))));
- edittext_qxwd.setText((t7==null?0:(int)t7) +"");
+ if(isAdded())
+ {
+ Recy_zdqx.setLayoutManager(new WrapContentLinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL,false));
+ DataBus.getInstance().zdqxchidAdapter = new zdqxchid_adapter(getContext(),getActivity());
+ Recy_zdqx.setAdapter(DataBus.getInstance().zdqxchidAdapter);
+ }
}
});
- ExecuteTheRecipe.WritePLC("手自切换",true,null);
+
} catch (Exception e) {
}
}
}).start();
-
- ExecuteTheRecipe.CleaningComplete=new IRun() {
+ ExecuteTheRecipe.AutoPaiShui=new IRun() {
@Override
public void Run() {
- if (IsStart) {
- IsStart = false;
- mHandler.sendEmptyMessage(0);
- ExecuteTheRecipe.WritePLC("清洗模式",false,null);
- ToastUtils.info("清洗完成");
- }
+ IsStart=false;
+ bt_start.setText("开始清洗");
+ bt_start.setBackgroundResource(R.drawable.sz_bj);
}
};
-
-
} catch (Exception e) {
}
diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_makegood_control.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_makegood_control.java
index f297e2af..8db96a68 100644
--- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_makegood_control.java
+++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_makegood_control.java
@@ -11,9 +11,11 @@ import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bonait.bnframework.R;
+import com.bonait.bnframework.business.ExecuteTheRecipe;
import com.bonait.bnframework.common.constant.ConfigName;
import com.bonait.bnframework.common.constant.DataBus;
import com.bonait.bnframework.common.db.QueryDB;
@@ -50,10 +52,14 @@ public class add_makegood_control extends LinearLayout{
public BPA_GOODS Good = null;
@BindView(R.id.datatab_makesx)
- ListView datatab_makesx;//属性
+ RecyclerView datatab_makesx;//属性
@BindView(R.id.makegoodtitle)
TextView makegoodtitle;//配方名称
+
+ @BindView(R.id.chubeiliang)
+ TextView chubeiliang;
+
/**
* 点击事件
*/
@@ -79,10 +85,15 @@ public class add_makegood_control extends LinearLayout{
private void initData() {
//2.填充规则数据,查询所有属性大类
+ LinearLayoutManager layoutManager=new LinearLayoutManager(getContext());
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ datatab_makesx.setLayoutManager(layoutManager);
+
if(DataBus.getInstance().sxadapter==null)
{
- DataBus.getInstance().sxadapter = new pfsx_adapter(contextMian, R.layout.pfsx_item, DataBus.getInstance().bpa_goodproperties);
+ DataBus.getInstance().sxadapter = new pfsx_adapter(contextMian,DataBus.getInstance().bpa_goodproperties);
}
+
datatab_makesx.setAdapter(DataBus.getInstance().sxadapter);
}
@@ -95,6 +106,7 @@ public class add_makegood_control extends LinearLayout{
try {
Good = good;
makegoodtitle.setText(Good.name + "");
+ chubeiliang.setText(ExecuteTheRecipe.MakeGoodCount +"杯");
initData();
} catch (Exception ex) {
diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_pf_control.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_pf_control.java
index 8bcbe1fd..7a6a6b36 100644
--- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_pf_control.java
+++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/mode/add_pf_control.java
@@ -11,6 +11,7 @@ import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bonait.bnframework.R;
@@ -27,6 +28,7 @@ import com.bonait.bnframework.common.db.res.ResMaterilas;
import com.bonait.bnframework.common.helper.I.MyClickListener;
import com.bonait.bnframework.common.utils.ToastUtils;
import com.bonait.bnframework.common.view.MyLayoutManager;
+import com.bonait.bnframework.modules.home.adapter.loadinggood_adapter;
import com.bonait.bnframework.modules.home.adapter.newmeatrilselect_adapter;
import com.bonait.bnframework.modules.home.adapter.newneatril_adapter;
import com.bonait.bnframework.modules.home.adapter.pfsx_adapter;
@@ -57,17 +59,14 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
EditText edittext;//配方名称
@BindView(R.id.datatab_sx)
- ListView datatab_sx;
+ RecyclerView datatab_sx;
@BindView(R.id.datatab_pf)
ListView datatab_pf;
@BindView(R.id.title)
TextView title;//配方名称
- /**
- * 属性数据
- */
- ArrayList bpa_goodproperties = new ArrayList<>();
+
/**
* 当前物料数据
@@ -75,7 +74,10 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
public ArrayList resMaterilas=new ArrayList<>();
-
+ /**
+ * 属性数据
+ */
+ ArrayList bpa_goodproperties = new ArrayList<>();
/**
* 点击事件
*/
@@ -128,37 +130,7 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
recycler_view_wl_click.setAdapter(adapter);
//2.填充规则数据,查询所有属性大类
- bpa_goodproperties.clear();
- ArrayList da = QueryDB.GetGoodsPropertyALL("0");
- for (BPA_GOODPROPERTY item:da)
- {
- ResGoodProperty re=new ResGoodProperty();
- re.id=item.id;
- re.name=item.name;
- ArrayList zsx =QueryDB.GetGoodsPropertyALL(item.id);
- re.child=new ArrayList<>();
-
-
- ArrayList _chid = new ArrayList<>();
- for (BPA_GOODPROPERTY k:zsx)
- {
- ResGoodProperty m=new ResGoodProperty();
- m.id=k.id;
- m.name=k.name;
- if(bpaGoodsrecipename!=null && bpaGoodsrecipename.design!=null && !bpaGoodsrecipename.design.isEmpty() && bpaGoodsrecipename.design.contains(k.id))
- {
- m.isSelect=true;
- }else
- {
- m.isSelect=false;
- }
- _chid.add(m);
- }
- re.child=_chid;
-
- bpa_goodproperties.add(re);
- }
if(bpaGoodsrecipename==null)
{
@@ -174,10 +146,28 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
i++;
}
}
+ }else
+ {
+ for(ResGoodProperty item:bpa_goodproperties)
+ {
+ for(ResGoodProperty c:item.child)
+ {
+ if(bpaGoodsrecipename!=null && bpaGoodsrecipename.design!=null && !bpaGoodsrecipename.design.isEmpty() && bpaGoodsrecipename.design.contains(c.id))
+ {
+ c.isSelect=true;
+ }else
+ {
+ c.isSelect=false;
+ }
+ }
+ }
}
+ LinearLayoutManager layoutManager=new LinearLayoutManager(getContext());
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ datatab_sx.setLayoutManager(layoutManager);
- pfsx_adapter sxadapter = new pfsx_adapter(getContext(), R.layout.pfsx_item, bpa_goodproperties);
+ pfsx_adapter sxadapter = new pfsx_adapter(getContext(), bpa_goodproperties);
datatab_sx.setAdapter(sxadapter);
InitTab();
@@ -215,9 +205,10 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
* 设置数据
* @param name
*/
- public void SetData(BPA_GOODSRECIPENAME name, BPA_GOODS good)
+ public void SetData(BPA_GOODSRECIPENAME name, BPA_GOODS good,ArrayList properties)
{
try {
+ bpa_goodproperties=properties;
bpaGoodsrecipename=name;
Good=good;
if(name!=null)
@@ -242,8 +233,7 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
peifang_queren.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- if (mListener != null) {
- SaveData();
+ if (mListener != null && SaveData()) {
mListener.clickListenerNew(view,1,null);
}
}
@@ -261,7 +251,7 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
/**
* 保存数据
*/
- public void SaveData()
+ public boolean SaveData()
{
if(DataValidation())
{
@@ -311,7 +301,9 @@ public class add_pf_control extends LinearLayout implements MyClickListener {
QueryDB.AddGoodsSrecipe(good);
}
}
+ return true;
}
+ return false;
}
diff --git a/app/src/main/res/layout/activity_bottom_navigation_main.xml b/app/src/main/res/layout/activity_bottom_navigation_main.xml
index 9c9a1c4d..578e0f91 100644
--- a/app/src/main/res/layout/activity_bottom_navigation_main.xml
+++ b/app/src/main/res/layout/activity_bottom_navigation_main.xml
@@ -45,14 +45,17 @@
android:gravity="center|top"
android:orientation="vertical">
diff --git a/app/src/main/res/layout/activity_systemparameter.xml b/app/src/main/res/layout/activity_systemparameter.xml
index c4594b33..1ddd2cb2 100644
--- a/app/src/main/res/layout/activity_systemparameter.xml
+++ b/app/src/main/res/layout/activity_systemparameter.xml
@@ -154,8 +154,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
-
+
+
@@ -110,8 +119,10 @@
-
-
+ android:layout_marginTop="40dp"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xxxhdpi/zdbs.png b/app/src/main/res/mipmap-xxxhdpi/zdbs.png
index 69a20da604d70c633fbc14ab903c968f7244de9c..52c12a6d87b0298f6d20eb09c9771a4ffc32cc54 100644
GIT binary patch
literal 4346
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
delta 3966
zcmV-^4}tLdA&DQ5FnG6BEidaT1)upj67>N8~5LkwXyX5qo!fB#a9qVk~KTRzOnN
z!ZvbP0N{jEQ*&93-sWo&Hk2(n_n9A=no}S*B+kdud`+t0od%iQbyKmpymoUpC
zS17L(#LF3!062joe`o1fnO9@rbtaSvC<9yui(hE2_R#9?Gxr9ii-H*Di=`{srBxuT
z0x&;_4`mY`0|eT}%#Q-R#Y`uE;>WWu0Ss<0T`7n@0m4#0K@>J31{f70eA9Ks9og;$
zyJezE2_R=Xy?FYXc=hU2z6MsOy=zNhGpNUiADwoh0c)r4;
zOZ(I3zBK9a7y)>9`viPHv~bE%{1_luW=hXi7eK+;62hb2J_0=*zn0JajF|ZyApFU!
zTf$glruCfX=SUAQF~}q6z97zB*Ih@N*dX=;A~{_gy8QW(A60u
zarZc5
zh-oCf7eVTX2?IZ{ol_42ulh-cU4HL`04%%o8-IXKmo)xg)6m~3iB+%&8ORl#eqwx2
zJ|y2vgZ9XB0kKuqh?p+Vq!Ztj#VcI23|K|y+hANP7nPr&yzSh^z(2?t;8xSn*GXa(
ztO*QQL&G{;Z5M#wlL=3jUA`aSD`dcc$e6~0O>$U;Y8C^Q?Ranh7R$sZ%XVx4DH*U3
zbbn4?SK@gYtim*p0Y7hXy&k|hG?%Z=L3qVX>8I6$sq@Wez_Lp>0`z5>OuQaI>b39G
z(IXkh3e!9W{M^_p0W_~p4U4P<&@gJ}hGQiF$vRmDXSWc1dtWMfm!!#@fGGh;lqpvj
zd4x!;1Td<(V)5$k1wWTCn-dTvfI4N$*?)U)Be+urzxV~yNS-+-sw8%hpgCS}bmrycOdZ!Y=GzRASNPnPZ
zmtFwq4`mALf;X)(k{KCn95Jc~m{yfs(YcoxACfK>GrJIdYto4arEOvaR05b%3~O8Y
z&mh>F@Y><4MkLB+YJu*{CMIAdfGLH@7s@|l;`4*lMgaHr8T#5Fw#~Fr0yxb6pgnSn
zfVeeiF&I=48oe*GY{B-RKAK^t1b=Xt^_*RLoj`A&O%Vw6T*gQ&nvIXBZIuALwGPGd
z!^|AY)OCXUg^bZDJ8v@TdLI|B?FBIL%nx{X@O8g{B3Z3B=8q>%@9Cl6N#dIdYkL7~
zvYkCHaCXR5_>pPo?+@8$L)^8s0P=;>dM5f*_{=K5nM;e`{!rSvqf90a!(6KUi)>
zOi+#){AAWh`d*VCG+q$9wiLi%vGlis=}SQf^JPOAGgJDBzHA}}x1|7bc4;Sp-W>_o
z%>QVnlb??yR)8RFCxC%x_$fe
z6RZ8&MS*WC0a*VvvIHlK$D<&2Y77E)WeokisN>4SYcBx|?Y#xA8-MtnzYL+(Fa*4o
zG4xY|+Bed!y#!#7JOWHC@rv|dz|9)E7HLq)U~MJEX
zO=gO-wh}(i^}@uBk#-XO<`KZd4(I`fV!#ScMXUn)67`759ql@=l*$SPfcM
zdAl|ffO7zZQ{?Fh4}YnRi6yHqTJU6e9>ej}RszV`C5I+9tBn3Q@wF39@9llp%h5-!
z9kHzh5Xl^Xs(jP9X(XC*?@>>1Z6yG!F#I^ke-NMlL{YdZmK
zE;{QfjL%8(Giw+zl``o>Y`-DUb^?gJ7f>^TX8j`y-9co%0K3nb>CRZM6>Q5Mz*Ce}
zbRGqxajSP22hFs8a_H&}*1~yegZ7qO_`+<;`hY``}_`Ww6_V+IG
zRvpFuXnO&KEPsMGX?%P|rswQp>??mbK_!60MC9z!)x>l&2!Yn~5qOvTrnWk}V!`gY
zQv8X_ppT8f+G4+e!D8uVVq8m%gw(5J#w+kPSvK^K&85Om=BflRL)9L7=!Mfpe}C+A
z0CfX=CIj<`pfO`V3Hmi${;4)D{w0pDc>M@b3BV6qEq{nr0%*aa`e~99fFHJ65UT{x
zf<^VyBqabpY_%X(37`dw>ZeIc0DjnNL97x$3l`N+lav7bu+@TCC4d$zs-Gscv;YPR
zBbO2IJFS9keLbD8`5~r}SgSB{6$$!nCY8)LGLDSzmK8wGEEwDOfSN~w$f5fqnoDN
z5b#39b-%r)yYrY2Q4H+Zdx}eTvPO|_&T_jstI&W#z_3f
zBq=$&{AmJv-|;(kchD)UF>q7X&~KmomsKoX!;JMcH<%E(!R*q%;n`T*htm+6_u=R>
zrWNBLn3tL9xJo%ODZ%V&PNF#V#4DV
zP6;4x6^S?>C4h(tk6Sn;fVfp8;(vUU03s$lZsC*w;#QG}^HBnbnDDrTQv!%vMIz2;
zP6=Ss){%MR9k_6kBXT=_mF=EeA7zrQ@54{*e*6Bhj`vRD$Hqs0aYfIf&^Mg$DS)yA
zaQz)O7{4^r`k%@+wjRzZjC_(ve1vhd_(yH{C6IW$LX}(kyE=E)^A-2=-hYG=BC(VR
zD~`{Vp99ktGp*kcRy#J?<;z|0ans(b`S-pOW&=pc1h0(0@wWb+^WKob*1}jt$D6%t
zO8H^;Q)asJt5Vn)f-JlI1i*h@FEwWD$)@#CHlXmcnKoH=`F`2SlCH~LYr2y=>NTcj
z@eAc|fcSbpJ_N8hZnJJ=@_)}2oZZLFI;vwtpdV(8#KkhcYjSLtehAP9Wc-lqL`lyX
z5nY!_CB7x&xEdyJJ8K!Z$G<&2dEzM@7xgZF*8%^w&9ShG&L_e6N`UAeGYx%10J|e5
zmhE`c+H@Ho
zXETQW$3bj88_RY+4B$I5_DuNs#6CNgUHT0`r^^@-74rkzIrSj$s$aWF
zJQ2Q>N$K8Nzt|u7V)^6Dd}q)^E5dzGkelCutt0Q$I;afEom9Q$aT5Z_6`T!3_^52c
zEI6C(N?Njb59hC^sej^``C&7iyu?q;W??P6lm{sI3gLh^zE+|17>F*CZFdFZ`h)=T
zh4N)g>}w0ulYsdjH1vJ4!DcG}0&U9}i5}T_&BW#H@>T{f51NDPy6dK|M6Tzn-r9vK
z_JgLO_aE76%_=xMK=5^aXTqh~ls-@|xiESFC4lNI4-|(NX@9JFz43W6b(q9VE@n9*
zfWhshD}|u@{5YAw68;@j`De3hp;OCN^#JnB%Ju-cLg{(}eH8>v-n)n7yG$c_?V<8b
zIdTPOOZCyJy6(Nlvt0mw3GmY{_^IP82p0+#K^}_^>kK<9aA#TuRyV;Y0UE?ts*iBW
zW#PK+JrLM99e>?H;tZGRd?K8G_-SgPoX4Xm2LHB$Y3b^;?$v9W0Bon1fV!Vh@f%d(
z=Ge+{psko~9?dA&3
z5D}KubLjUxfxM49`88`Re4{ub;IWLM|HX7NXWVevvVWaeRBAH8SR^xtr8v`;cQtq1
zwrs~6QuKxv8*tR_D7~{Tv-kd?0kNZV$%otE^?cs1yZSM!i$=}HFk?qHt#{1?s>^QP
zc5YzcYtd1rB8A0(%jOR_hSeVBN0I?%JPN`$vxfdqJrgMbOgfnu
zEF$`Z-**widP%7BAu+&s+-1IFO?UEsS&zO1FzGa3EM3VitpZ^cfcdh)6s{2r@Jr0J
zS%7|=NhiMRH$or*ObwDNlvfJkkaSKw}$?I&sf
YA7GxL{?zd*lK=n!07*qoM6N<$f?`vQ!2kdN
diff --git a/app/src/main/res/mipmap-xxxhdpi/zdbs_select.png b/app/src/main/res/mipmap-xxxhdpi/zdbs_select.png
index c9ac005d8caf8cbd2c9cf28694db432d9b7535de..ba7f0a74c1b3b45dad7a2cb0cf53194a256f656b 100644
GIT binary patch
delta 3984
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
delta 3598
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
U6+vYe00000Ne4wvM6N<$f(w7^ssI20