Browse Source

1.新增蓝牙连接回收库
2.新增称重dialog流程
3.细化手动录入

JaycePC 8 months ago
parent
commit
fe6d726b82

+ 10 - 0
HttpCoreLibrary/src/main/java/com/rc/httpcore/bean/HxpChemicalVo.java

@@ -41,6 +41,16 @@ public class HxpChemicalVo implements Serializable {
     private String factory;
     // 净含量
     private double netWt;
+    // 重量
+    private String weight;
+
+    public String getWeight() {
+        return weight;
+    }
+
+    public void setWeight(String weight) {
+        this.weight = weight;
+    }
 
     public double getNetWt() {
         return netWt;

+ 2 - 0
app/build.gradle

@@ -137,4 +137,6 @@ dependencies {
 
     implementation "androidx.room:room-runtime:2.2.6"
     annotationProcessor "androidx.room:room-compiler:2.2.6"
+
+    implementation 'com.airbnb.android:lottie:3.7.0'
 }

+ 5 - 0
app/src/main/java/com/example/chemical/ui/MainActivity.kt

@@ -16,6 +16,7 @@ import android.view.View
 import android.widget.EditText
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
+import com.blankj.utilcode.util.AppUtils
 import com.blankj.utilcode.util.LogUtils
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.engine.DiskCacheStrategy
@@ -357,6 +358,10 @@ class MainActivity : RcBaseActivity<ActivityMainBinding>() {
             UiManager.switcherCashier(this, SplashActivity::class.java)
         }
         getCabinetIn()
+        // TODO 测试通道
+        if (AppUtils.isAppDebug()) {
+            viewBinding.addChemicals.performClick()
+        }
     }
 
     /**

+ 5 - 1
app/src/main/java/com/example/chemical/ui/login/FacialLoginActivity.kt

@@ -7,6 +7,7 @@ import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.View
 import android.widget.TextView
+import com.blankj.utilcode.util.AppUtils
 import com.blankj.utilcode.util.LogUtils
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.engine.DiskCacheStrategy
@@ -111,7 +112,10 @@ class FacialLoginActivity : BaseCountDownActivity<ActivityFacialLoginBinding>()
             UiManager.switcher(this, map, SwipeActivity::class.java)
             finish()
         }
-
+        // TODO 测试通道
+        if (AppUtils.isAppDebug()) {
+            viewBinding.tvSwipe.performClick()
+        }
         //跳转扫码登录
         viewBinding.tvScan.setOnClickListener {
             UiManager.switcher(this, map, ScanLoginActivity::class.java)

+ 8 - 0
app/src/main/java/com/example/chemical/ui/login/SwipeActivity.kt

@@ -10,6 +10,7 @@ import android.view.LayoutInflater
 import android.view.MotionEvent
 import android.view.View
 import android.widget.TextView
+import com.blankj.utilcode.util.AppUtils
 import com.bumptech.glide.Glide
 import com.bumptech.glide.load.engine.DiskCacheStrategy
 import com.bumptech.glide.request.RequestOptions
@@ -62,9 +63,11 @@ class SwipeActivity : BaseCountDownActivity<ActivitySwipeBinding>() {
             "1" -> {
                 viewBinding.linType.visibility = View.GONE
             }
+
             "6" -> {
                 viewBinding.tvFace.visibility = View.GONE
             }
+
             "4" -> {
                 viewBinding.tvWx.visibility = View.GONE
             }
@@ -100,6 +103,10 @@ class SwipeActivity : BaseCountDownActivity<ActivitySwipeBinding>() {
             finish()
         }
 
+        //TODO 测试通道
+        if (AppUtils.isAppDebug()) {
+            handleScanEvent("0459035363")
+        }
     }
 
 
@@ -333,6 +340,7 @@ class SwipeActivity : BaseCountDownActivity<ActivitySwipeBinding>() {
                     throwable.message!!
                 }
             }
+
             is SocketTimeoutException -> "请求超时,请稍后重试"
             is ConnectException -> "无法连接服务器,请检查网络"
             is HttpException -> "服务器繁忙,请稍后重试"

+ 24 - 29
app/src/main/java/com/example/chemical/ui/plan/PlanAddActivity.java

@@ -112,35 +112,29 @@ public class PlanAddActivity extends BaseCountDownActivity<ActivityPlanAddBindin
         intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
             @Override
             public void onActivityResult(ActivityResult result) {
-                LogUtils.d(result.getResultCode());
-                //                try {
-//                    String newB = "{\"anotherName\":\"ys\",\"casNum\":\"2024-07-2401\",\"chemicalCategory\":\"5\",\"chemicalCategoryName\":\"精神麻醉类\",\"chemicalDensity\":1.0,\"chemicalId\":1815944402825064449,\"chemicalLevel\":2,\"chemicalLevelName\":null,\"chemicalName\":\"乙酸\",\"chemicalPurity\":\"0.9\",\"createTime\":\"2024-07-24 02:57\",\"depositUnit\":\"KG\",\"packNum\":2.1,\"packUnit\":\"件\",\"specNum\":500.0,\"specUnit\":\"g\"}";
-//                    HxpChemicalVo hxpChemicalVo = GsonUtils.fromJson(newB, HxpChemicalVo.class);
-//                    InventoryItemBean inventoryItemBean = new InventoryItemBean();
-//                    inventoryItemBean.setHxpChemicalVo(hxpChemicalVo);
-//                    CabinetLayerSelect cabinetLayerSelect = hxpLayerDAO.getById(nowSelectInfo.getCabinetId(), nowSelectInfo.getDoorId(), nowSelectInfo.getLayer());
-//                    if (cabinetLayerSelect == null) {
-//                        cabinetLayerSelect = new CabinetLayerSelect(nowSelectInfo.getCabinetId(), nowSelectInfo.getDoorId(), nowSelectInfo.getLayer());
-//                    }
-//                    inventoryItemBeanList.add(inventoryItemBean);
-//                    cabinetLayerSelect.setInventoryItemBeanList(inventoryItemBeanList);
-//                    hxpLayerDAO.insert(cabinetLayerSelect);
-//
-//                    LogUtils.json(hxpLayerDAO.getAll());
-//
-//
-////                    updateInventoryListByCabinet(nowSelectInfo, inventoryItemBeanList);
-//
-//                    if (binding.scanLL.getVisibility() == View.VISIBLE) {
-//                        binding.scanLL.setVisibility(View.GONE);
-//                        binding.planLV.setVisibility(View.VISIBLE);
-//                    }
-//
-//                    planAdapter.notifyDataSetChanged();
-//
-//                } catch (Exception e) {
-//                    LogUtils.e(Log.getStackTraceString(e));
-//                }
+                if (result.getResultCode() == RESULT_OK) {
+                    Intent resultData = result.getData();
+                    if (null != resultData && resultData.hasExtra("data")) {
+                        Bundle bundle = resultData.getBundleExtra("data");
+                        if (null != bundle) {
+                            InventoryItemBean inventoryItemBean = (InventoryItemBean) bundle.getSerializable("Inventory");
+                            LogUtils.json(inventoryItemBean);
+                            CabinetLayerSelect cabinetLayerSelect = hxpLayerDAO.getById(nowSelectInfo.getCabinetId(), nowSelectInfo.getDoorId(), nowSelectInfo.getLayer());
+                            if (cabinetLayerSelect == null) {
+                                cabinetLayerSelect = new CabinetLayerSelect(nowSelectInfo.getCabinetId(), nowSelectInfo.getDoorId(), nowSelectInfo.getLayer());
+                            }
+                            inventoryItemBeanList.add(inventoryItemBean);
+                            cabinetLayerSelect.setInventoryItemBeanList(inventoryItemBeanList);
+                            hxpLayerDAO.insert(cabinetLayerSelect);
+                            LogUtils.json(hxpLayerDAO.getAll());
+                            if (binding.scanLL.getVisibility() == View.VISIBLE) {
+                                binding.scanLL.setVisibility(View.GONE);
+                                binding.planLV.setVisibility(View.VISIBLE);
+                            }
+                            planAdapter.notifyDataSetChanged();
+                        }
+                    }
+                }
             }
         });
         binding.inputBT.setOnClickListener(v -> {
@@ -286,6 +280,7 @@ public class PlanAddActivity extends BaseCountDownActivity<ActivityPlanAddBindin
                 binding.addIndexTV.setVisibility(View.GONE);
             }
             CabinetLayerSelect cabinetLayerSelect = hxpLayerDAO.getById(lastSelectInfo.getCabinetId(), lastSelectInfo.getDoorId(), lastSelectInfo.getLayer());
+            LogUtils.d(cabinetLayerSelect);
             if (null == cabinetLayerSelect) {
                 inventoryItemBeanList.clear();
                 if (binding.scanLL.getVisibility() != View.VISIBLE) {

+ 18 - 0
app/src/main/java/com/example/chemical/ui/plan/add/AddActivity.java

@@ -179,6 +179,24 @@ public class AddActivity extends BaseCountDownActivity<ActivityAddBinding> {
                 addActivityHelp.weighSave();
             }
         });
+        // ml选择
+        binding.chemicalSpecMlRB.setOnClickListener(v -> {
+            String ml = binding.chemicalSpecMlRB.getText().toString();
+            hxpChemicalVo.setSpecUnit(ml);
+            binding.netWtTV.setText(ml);
+        });
+        // g选择
+        binding.chemicalSpecGRB.setOnClickListener(v -> {
+            String g = binding.chemicalSpecGRB.getText().toString();
+            hxpChemicalVo.setSpecUnit(g);
+            binding.netWtTV.setText(g);
+        });
+        // 管控级别
+        binding.uncontrolledRB.setOnClickListener(v -> hxpChemicalVo.setChemicalLevel(2));
+        binding.controlledRB.setOnClickListener(v -> hxpChemicalVo.setChemicalLevel(1));
+
+
+        // 位置选择
         intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
             @Override
             public void onActivityResult(ActivityResult result) {

+ 27 - 22
app/src/main/java/com/example/chemical/ui/plan/add/AddActivityHelp.java

@@ -1,6 +1,7 @@
 package com.example.chemical.ui.plan.add;
 
 import android.app.Activity;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
@@ -13,6 +14,7 @@ import com.blankj.utilcode.util.ThreadUtils;
 import com.blankj.utilcode.util.ToastUtils;
 import com.example.chemical.ui.plan.room.bean.input_add.InventoryItemBean;
 import com.example.chemical.weidith.BelongingPersonDialog;
+import com.example.chemical.weidith.BluetoothWeighDialog;
 import com.example.chemical.weidith.SelectChemicalDialog;
 import com.example.chemical.weidith.SelectTopicDialog;
 import com.example.chemical.ui.plan.room.bean.input_add.HxpChemical;
@@ -156,8 +158,10 @@ public class AddActivityHelp {
         String specUnit = hxpChemicalVo.getSpecUnit();
         if ("ml".equals(specUnit)) {
             addActivity.binding.chemicalSpecRG.check(addActivity.binding.chemicalSpecMlRB.getId());
+            addActivity.binding.netWtTV.setText("ml");
         } else {
             addActivity.binding.chemicalSpecRG.check(addActivity.binding.chemicalSpecGRB.getId());
+            addActivity.binding.netWtTV.setText("g");
         }
         addActivity.hxpChemicalVo.setSpecUnit(specUnit);
         // 化学品类别
@@ -206,6 +210,13 @@ public class AddActivityHelp {
         }
         addActivity.hxpChemicalVo.setChemicalCategory(categoryTVTag);
 
+        CharSequence chemicalCategoryTVText = addActivity.binding.chemicalCategoryTV.getText();
+        if (null == chemicalCategoryTVText || TextUtils.isEmpty(chemicalCategoryTVText)) {
+            addActivity.binding.chemicalCategoryTV.setError("请选择化学品类别");
+            return;
+        }
+        addActivity.hxpChemicalVo.setChemicalCategoryName(chemicalCategoryTVText.toString());
+
         // 规格
         Editable chemicalSpecETText = addActivity.binding.chemicalSpecET.getText();
         if (null == chemicalSpecETText || TextUtils.isEmpty(chemicalSpecETText)) {
@@ -298,11 +309,11 @@ public class AddActivityHelp {
 
         addActivity.inventoryItemBean.setHxpChemicalVo(addActivity.hxpChemicalVo);
         addActivity.inventoryItemBean.setBelongingPersonBean(addActivity.belongingPerson);
-        LogUtils.json(addActivity.inventoryItemBean);
 
         // 化学品基础信息配置
         addActivity.addDisposable(ApiRepository.INSTANCE.getControlConfigs(addActivity.hxpChemicalVo.getChemicalLevel()).subscribe(hxpControlConfig -> {
             addActivity.hxpControlConfig = hxpControlConfig;
+            // 化学品新增确定
             addActivity.addDisposable(ApiRepository.INSTANCE.certitude(addActivity.hxpChemicalVo).subscribe(hxpChemicalVo -> {
                 addActivity.hxpChemicalVo.setChemicalId(hxpChemicalVo.getChemicalId());
                 CharSequence charSequence = addActivity.binding.cabinetLayerSelectTV.getText();
@@ -312,16 +323,16 @@ public class AddActivityHelp {
                         new PrintLabelDialog.PrintLabelCallBack() {
                             @Override
                             public void confirm() {
-                                // TODO 去称重
-
-//                                InventoryItemBean inventoryItemBean = new InventoryItemBean();
-//                                inventoryItemBean.setHxpChemicalVo(addActivity.hxpChemicalVo);
-//                                Intent intent = new Intent();
-//                                Bundle bundle = new Bundle();
-//                                bundle.putSerializable("Inventory", inventoryItemBean);
-//                                intent.putExtra("data", bundle);
-//                                addActivity.setResult(Activity.RESULT_OK, intent);
-//                                addActivity.finish();
+                                BluetoothWeighDialog bluetoothWeighDialog = new BluetoothWeighDialog(addActivity, addActivity.hxpChemicalVo);
+                                bluetoothWeighDialog.setOnDismissListener(dialog -> {
+                                    Intent intent = new Intent();
+                                    Bundle bundle = new Bundle();
+                                    bundle.putSerializable("Inventory", addActivity.inventoryItemBean);
+                                    intent.putExtra("data", bundle);
+                                    addActivity.setResult(Activity.RESULT_OK, intent);
+                                    addActivity.finish();
+                                });
+                                bluetoothWeighDialog.show();
                             }
 
                             @Override
@@ -330,19 +341,13 @@ public class AddActivityHelp {
                             }
                         }
                 ).show();
-            }, new Consumer<Throwable>() {
-                @Override
-                public void accept(Throwable throwable) throws Exception {
-                    LogUtils.e(Log.getStackTraceString(throwable));
-                    addActivity.showNetError(throwable);
-                }
-            }));
-        }, new Consumer<Throwable>() {
-            @Override
-            public void accept(Throwable throwable) throws Exception {
+            }, throwable -> {
                 LogUtils.e(Log.getStackTraceString(throwable));
                 addActivity.showNetError(throwable);
-            }
+            }));
+        }, throwable -> {
+            LogUtils.e(Log.getStackTraceString(throwable));
+            addActivity.showNetError(throwable);
         }));
     }
 }

+ 5 - 0
app/src/main/java/com/example/chemical/utils/Tool.java

@@ -48,6 +48,10 @@ public enum Tool {
         cmd("monkey -p " + packageName + " -c android.intent.category.LAUNCHER 1");
     }
 
+    public void setBluetooth(boolean isEnable) {
+        cmd("settings put global bluetooth_on " + (isEnable ? "1" : "0"));
+    }
+
     public void openAdb() {
         cmd("setprop persist.internet_adb_enable 1");
     }
@@ -93,4 +97,5 @@ public enum Tool {
             return url;
         }
     }
+
 }

+ 110 - 0
app/src/main/java/com/example/chemical/utils/bluetooth/BluetoothTool.java

@@ -0,0 +1,110 @@
+package com.example.chemical.utils.bluetooth;
+
+import android.annotation.SuppressLint;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
+import android.bluetooth.BluetoothSocket;
+import android.os.Build;
+import android.util.Log;
+
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.Utils;
+import com.example.chemical.utils.Tool;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Set;
+import java.util.UUID;
+
+public enum BluetoothTool {
+    INSTANCE;
+    BluetoothAdapter bluetoothAdapter;
+    private UUID uuid;
+    private byte[] buffer = new byte[1024];
+    private BluetoothDevice bluetoothDevice;
+    private BluetoothSocket bluetoothSocket;
+    private InputStream inputStream;
+
+    private BluetoothTool() {
+        uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            BluetoothManager bluetoothManager = Utils.getApp().getSystemService(BluetoothManager.class);
+            bluetoothAdapter = bluetoothManager.getAdapter();
+        } else {
+            bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        }
+    }
+
+    @SuppressLint("MissingPermission")
+    public void connect(BluetoothCallBack bluetoothCallBack) {
+        if (!bluetoothAdapter.isEnabled()) {
+            Tool.INSTANCE.setBluetooth(true);
+        }
+        bluetoothDevice = getWeighDevice();
+        if (null == bluetoothDevice) {
+            return;
+        }
+        try {
+            bluetoothSocket = bluetoothDevice.createInsecureRfcommSocketToServiceRecord(uuid);
+            bluetoothSocket.connect();
+            inputStream = bluetoothSocket.getInputStream();
+            int bytesRead;
+            String weight = "";
+            while (null != bluetoothSocket && bluetoothSocket.isConnected() && null != inputStream && (bytesRead = inputStream.read(buffer)) != -1) {
+                // 处理读取的数据
+                String data = new String(buffer, 0, bytesRead, StandardCharsets.UTF_8);
+                String[] split = data.split("\n", -1);
+                if (split.length > 0) {
+                    String line = split[0].trim();
+                    if (!weight.equals(line)) {
+                        weight = line;
+                        bluetoothCallBack.callBack(weight);
+                    }
+                }
+                Thread.sleep(1);
+            }
+        } catch (Exception e) {
+            disconnect();
+            LogUtils.e(Log.getStackTraceString(e));
+        }
+    }
+
+    public void disconnect() {
+        if (null != bluetoothDevice) {
+            bluetoothDevice = null;
+        }
+        if (null != bluetoothSocket && bluetoothSocket.isConnected()) {
+            try {
+                inputStream.close();
+                inputStream = null;
+                bluetoothSocket.close();
+                bluetoothSocket = null;
+            } catch (Exception e) {
+                LogUtils.e(Log.getStackTraceString(e));
+            }
+        }
+    }
+
+    public interface BluetoothCallBack {
+        void callBack(String weight);
+    }
+
+    @SuppressLint("MissingPermission")
+    private BluetoothDevice getWeighDevice() {
+        if (null != bluetoothDevice) {
+            return bluetoothDevice;
+        }
+        Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
+        if (!pairedDevices.isEmpty()) {
+            // There are paired devices. Get the name and address of each paired device.
+            for (BluetoothDevice device : pairedDevices) {
+                String deviceName = device.getName();
+                if ("HF-18".equals(deviceName)) {
+                    return device;
+                }
+            }
+        }
+        return null;
+    }
+}

+ 111 - 0
app/src/main/java/com/example/chemical/weidith/BluetoothWeighDialog.java

@@ -0,0 +1,111 @@
+package com.example.chemical.weidith;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.appcompat.app.AppCompatDialog;
+
+import com.blankj.utilcode.util.ThreadUtils;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.request.RequestOptions;
+import com.example.chemical.ChemicalApp;
+import com.example.chemical.R;
+import com.example.chemical.databinding.DialogBluetoothWeighBinding;
+import com.example.chemical.utils.bluetooth.BluetoothTool;
+import com.rc.httpcore.HttpConfig;
+import com.rc.httpcore.bean.HxpChemicalVo;
+
+public class BluetoothWeighDialog extends AppCompatDialog {
+    private DialogBluetoothWeighBinding binding;
+    private final Context context;
+    private final HxpChemicalVo hxpChemicalVo;
+
+    public BluetoothWeighDialog(Context context, HxpChemicalVo hxpChemicalVo) {
+        super(context);
+        this.context = context;
+        this.hxpChemicalVo = hxpChemicalVo;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        binding = DialogBluetoothWeighBinding.inflate(getLayoutInflater());
+        setContentView(binding.getRoot());
+        Window window = getWindow();
+        if (null != window) {
+            window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+            window.setGravity(Gravity.CENTER);
+            window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
+        }
+
+        // 提示图片加载
+        if (null != ChemicalApp.confs && ChemicalApp.confs.getWeighHintPicture() != null && !ChemicalApp.confs.getWeighHintPicture().isEmpty()) {
+            Glide.with(context)
+                    .load(HttpConfig.Companion.getAPI_BASE_IMG_URL() + ChemicalApp.confs.getWeighHintPicture())
+                    .placeholder(R.mipmap.img_syt_cz)
+                    .apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.AUTOMATIC))
+                    .into(binding.hintIV);
+        }
+        // 净含量
+        binding.netWtET.setText(String.valueOf(hxpChemicalVo.getNetWt()));
+        // 规格
+        binding.specsTV.setText(hxpChemicalVo.getSpecNum() + hxpChemicalVo.getSpecUnit());
+        // 蓝牙称
+        ThreadUtils.executeByCached(weightTask);
+        // 确认
+        binding.confirmBT.setOnClickListener(v -> {
+            Editable netWtETText = binding.netWtET.getText();
+            if (null == netWtETText || TextUtils.isEmpty(netWtETText)) {
+                binding.netWtET.setError("请输入净含量");
+                return;
+            }
+            double netWt = -1.0;
+            try {
+                netWt = Double.parseDouble(netWtETText.toString());
+            } catch (Exception e) {
+                binding.netWtET.setError("请检查净含量内容正确");
+                return;
+            }
+            if (netWt <= 0) {
+                binding.netWtET.setError("请检查净含量内容正确");
+                return;
+            }
+            hxpChemicalVo.setNetWt(netWt);
+            dismiss();
+        });
+
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        BluetoothTool.INSTANCE.disconnect();
+        ThreadUtils.cancel(weightTask);
+    }
+
+    ThreadUtils.SimpleTask<Object> weightTask = new ThreadUtils.SimpleTask<Object>() {
+        @Override
+        public Object doInBackground() throws Throwable {
+            BluetoothTool.INSTANCE.connect(weight -> {
+                hxpChemicalVo.setWeight(weight);
+                ThreadUtils.runOnUiThread(() -> binding.weighTV.setText(weight + "g"));
+            });
+            return null;
+        }
+
+        @Override
+        public void onSuccess(Object result) {
+
+        }
+    };
+}

+ 3 - 6
app/src/main/res/layout/activity_add.xml

@@ -143,11 +143,6 @@
             <Button
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="取消" />
-
-            <Button
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
                 android:text="重置" />
 
             <Button
@@ -160,7 +155,8 @@
                 android:id="@+id/save_BT"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="存储" />
+                android:text="存储"
+                android:visibility="gone" />
         </LinearLayout>
 
         <LinearLayout
@@ -262,6 +258,7 @@
                         android:layout_height="match_parent">
 
                         <TextView
+                            android:id="@+id/net_wt_TV"
                             android:layout_width="50px"
                             android:layout_height="wrap_content"
                             android:layout_alignParentEnd="true"

+ 164 - 0
app/src/main/res/layout/dialog_bluetooth_weigh.xml

@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:orientation="vertical"
+    tools:ignore="PxUsage">
+
+    <RelativeLayout
+        android:layout_width="840px"
+        android:layout_height="740px"
+        android:layout_gravity="center"
+        android:background="@drawable/bg_shu_ru_kuang">
+
+        <TextView
+            android:id="@+id/hint_TV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="20px"
+            android:text="请将化学品放置称重台居中位置"
+            android:textColor="#333"
+            android:textSize="30px" />
+
+        <RelativeLayout
+            android:id="@+id/weight_RL"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_below="@id/hint_TV"
+            android:layout_marginTop="20px">
+
+            <ImageView
+                android:id="@+id/hint_IV"
+                android:layout_width="680px"
+                android:layout_height="390px"
+                android:layout_centerHorizontal="true"
+                android:src="@mipmap/img_syt_cz" />
+
+            <RelativeLayout
+                android:layout_width="680px"
+                android:layout_height="220px"
+                android:layout_below="@id/hint_IV"
+                android:layout_centerHorizontal="true"
+                android:layout_marginTop="20px">
+
+                <RelativeLayout
+                    android:layout_width="328px"
+                    android:layout_height="100px"
+                    android:background="@drawable/shape_input_box">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:layout_marginStart="10px"
+                        android:drawablePadding="10px"
+                        android:gravity="center"
+                        android:text="称重"
+                        android:textColor="#333"
+                        android:textSize="24px"
+                        app:drawableStartCompat="@mipmap/icon_cz_cz" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_marginTop="10px"
+                        android:layout_marginEnd="10px"
+                        android:text="量程0~6kg"
+                        android:textSize="18px" />
+
+                    <TextView
+                        android:id="@+id/weigh_TV"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginEnd="10px"
+                        android:layout_marginBottom="15px"
+                        android:text="500.20g"
+                        android:textColor="#333"
+                        android:textSize="30px" />
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:layout_width="328px"
+                    android:layout_height="100px"
+                    android:layout_alignParentBottom="true"
+                    android:background="@drawable/shape_input_box">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_centerVertical="true"
+                        android:layout_marginStart="10px"
+                        android:drawablePadding="10px"
+                        android:gravity="center"
+                        android:text="规格"
+                        android:textColor="#333"
+                        android:textSize="24px"
+                        app:drawableStartCompat="@mipmap/icon_cz_gg_zz_czd" />
+
+
+                    <TextView
+                        android:id="@+id/specs_TV"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentEnd="true"
+                        android:layout_centerVertical="true"
+                        android:layout_marginEnd="10px"
+                        android:layout_marginBottom="15px"
+                        android:text="500.20ml"
+                        android:textColor="#333"
+                        android:textSize="30px" />
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:layout_width="330px"
+                    android:layout_height="match_parent"
+                    android:layout_alignParentEnd="true"
+                    android:background="@drawable/shape_input_box">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_margin="30px"
+                        android:drawablePadding="10px"
+                        android:gravity="center"
+                        android:text="净含量"
+                        android:textColor="#333"
+                        android:textSize="24px"
+                        app:drawableStartCompat="@mipmap/icon_cz_jhl_jjj" />
+
+                    <androidx.appcompat.widget.AppCompatEditText
+                        android:id="@+id/net_wt_ET"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentBottom="true"
+                        android:layout_marginHorizontal="40px"
+                        android:layout_marginBottom="20px"
+                        android:digits="0123456789."
+                        android:drawableEnd="@mipmap/icon_bqgl_xg"
+                        android:gravity="center"
+                        android:hint="手动输入"
+                        android:inputType="numberDecimal"
+                        android:textAppearance="@style/input_hint_text_size" />
+                </RelativeLayout>
+
+            </RelativeLayout>
+        </RelativeLayout>
+    </RelativeLayout>
+
+    <Button
+        android:id="@+id/confirm_BT"
+        android:layout_width="250px"
+        android:layout_height="70px"
+        android:layout_marginTop="35px"
+        android:background="@drawable/selector_input_select_bt"
+        android:text="确定"
+        android:textColor="@color/white"
+        android:textSize="30px" />
+</LinearLayout>

BIN
app/src/main/res/mipmap-xhdpi/icon_cz_cz.png


BIN
app/src/main/res/mipmap-xhdpi/icon_cz_gg_zz_czd.png


BIN
app/src/main/res/mipmap-xhdpi/icon_cz_jhl_jjj.png


File diff suppressed because it is too large
+ 1 - 0
app/src/main/res/raw/ble_loading.json