瀏覽代碼

1.重写音频播放器
2.重写清单打印逻辑和相关接口

JaycePC 8 月之前
父節點
當前提交
0bae7f6769

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -74,6 +74,9 @@
         android:usesCleartextTraffic="true"
         tools:targetApi="m">
         <activity
+            android:name=".ui.plan.change.ChangeCabinetActivity"
+            android:exported="false" />
+        <activity
             android:name=".ui.plan.add.AddActivity"
             android:exported="false" />
         <activity

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

@@ -282,7 +282,7 @@ public class PlanAddActivity extends BaseCountDownActivity<ActivityPlanAddBindin
         @Override
         public void onSelected(CabinetLayerSelect lastSelectInfo) {
             nowSelectInfo = lastSelectInfo;
-
+            hxpLayerDAO.insert(lastSelectInfo);
             // 展示选择层数的待存储列表
             if (binding.inputRL.getVisibility() == View.GONE) {
                 binding.inputRL.setVisibility(View.VISIBLE);

+ 42 - 39
app/src/main/java/com/example/chemical/ui/plan/add/AddActivityHelp.java

@@ -9,11 +9,15 @@ import androidx.annotation.Nullable;
 
 import com.blankj.utilcode.util.GsonUtils;
 import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ThreadUtils;
+import com.blankj.utilcode.util.ToastUtils;
+import com.example.chemical.ui.PrintBean;
 import com.example.chemical.weidith.BelongingPersonDialog;
 import com.example.chemical.weidith.LabelDialog;
 import com.example.chemical.weidith.SelectChemicalDialog;
 import com.example.chemical.weidith.SelectTopicDialog;
 import com.example.chemical.ui.plan.room.bean.input_add.HxpChemical;
+import com.example.chemical.weidith.prin_label_dialog.PrintLabelDialog;
 import com.rc.httpcore.bean.HxpChemicalVo;
 import com.google.gson.reflect.TypeToken;
 import com.rc.httpcore.bean.BelongingPersonBean;
@@ -338,48 +342,47 @@ public class AddActivityHelp {
         } catch (Exception e) {
 
         }
-        addActivity.addDisposable(ApiRepository.INSTANCE.getControlConfigs(addActivity.hxpChemicalVo.getChemicalLevel()).subscribe(new Consumer<HxpControlConfig>() {
-            @Override
-            public void accept(HxpControlConfig hxpControlConfig) throws Exception {
-                LogUtils.json(hxpControlConfig);
-                addActivity.hxpControlConfig = hxpControlConfig;
-                LogUtils.json(addActivity.hxpChemicalVo);
-                addActivity.addDisposable(ApiRepository.INSTANCE.certitude(addActivity.hxpChemicalVo).subscribe(new Consumer<HxpChemicalVo>() {
-                    @Override
-                    public void accept(HxpChemicalVo hxpChemicalVo) throws Exception {
-                        addActivity.hxpChemicalVo.setChemicalId(hxpChemicalVo.getChemicalId());
-
-                        new LabelDialog(addActivity,
-                                String.valueOf(addActivity.inventoryItemBean.getSize()),
-                                addActivity.sqlHxpCabinetDoorVo.getDoorLayers(),
-                                String.valueOf(addActivity.hxpChemicalVo.getChemicalDensity()),
-                                addActivity.hxpChemicalVo.getChemicalName(),
-                                new LabelDialog.IRfidClick() {
-                                    @Override
-                                    public void onItemClick(@Nullable List<StockDetailsModel> modelList, int layer) {
-                                        LogUtils.d(modelList, layer);
-                                    }
+        addActivity.addDisposable(ApiRepository.INSTANCE.getControlConfigs(addActivity.hxpChemicalVo.getChemicalLevel()).subscribe(hxpControlConfig -> {
+            LogUtils.json(hxpControlConfig);
+            addActivity.hxpControlConfig = hxpControlConfig;
+            LogUtils.json(addActivity.hxpChemicalVo);
+            addActivity.addDisposable(ApiRepository.INSTANCE.certitude(addActivity.hxpChemicalVo).subscribe(hxpChemicalVo -> {
+                addActivity.hxpChemicalVo.setChemicalId(hxpChemicalVo.getChemicalId());
+                CharSequence charSequence = addActivity.binding.cabinetLayerSelectTV.getText();
+                new PrintLabelDialog(addActivity, addActivity.inventoryItemBean,
+                        TextUtils.isEmpty(charSequence) ? "" : charSequence.toString(),
+                        addActivity.hxpControlConfig.isQrCodePrint(),
+                        new PrintLabelDialog.PrintLabelCallBack() {
+                            @Override
+                            public void confirm(List<StockDetailsModel> labelList) {
+                                if (!labelList.isEmpty()) {
+                                    ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<Object>() {
+                                        @Override
+                                        public Object doInBackground() throws Throwable {
 
-                                    @Override
-                                    public void onPrint(@NonNull String tagCode, @NonNull String wxCode, @NonNull String rfidCode, int position) {
-                                        LogUtils.d(tagCode, wxCode, rfidCode, position);
-                                    }
+                                            return null;
+                                        }
 
-                                    @Override
-                                    public void opTageCode(@NonNull List<StockDetailsModel> data, int layer) {
-                                        LogUtils.d(data, layer);
-                                    }
+                                        @Override
+                                        public void onSuccess(Object result) {
+                                        }
+                                    });
                                 }
-                        ).show();
-                    }
-                }, new Consumer<Throwable>() {
-                    @Override
-                    public void accept(Throwable throwable) throws Exception {
-                        LogUtils.e(Log.getStackTraceString(throwable));
-                        addActivity.showNetError(throwable);
-                    }
-                }));
-            }
+                            }
+
+                            @Override
+                            public void close() {
+                                ToastUtils.showLong("取消存储");
+                            }
+                        }
+                ).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 {

+ 29 - 0
app/src/main/java/com/example/chemical/ui/plan/change/ChangeCabinetActivity.java

@@ -0,0 +1,29 @@
+package com.example.chemical.ui.plan.change;
+
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.example.chemical.databinding.ActivityChangeCabinetBinding;
+import com.example.chemical.ui.common.BaseCountDownActivity;
+
+public class ChangeCabinetActivity extends BaseCountDownActivity<ActivityChangeCabinetBinding> {
+    private ActivityChangeCabinetBinding binding;
+
+    @NonNull
+    @Override
+    protected ActivityChangeCabinetBinding createViewBinding() {
+        return binding = ActivityChangeCabinetBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected void initViews(@Nullable Bundle savedInstanceState) {
+        super.initViews(savedInstanceState);
+    }
+
+    @Override
+    protected void initData() {
+        super.initData();
+    }
+}

+ 62 - 0
app/src/main/java/com/example/chemical/ui/plan/change/ChangeCabinetAdapter.java

@@ -0,0 +1,62 @@
+package com.example.chemical.ui.plan.change;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+
+import com.example.chemical.ui.plan.FragmentCallBack;
+import com.example.chemical.ui.plan.room.bean.locker.HxpCabinetVo;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * 双显示化学品柜
+ */
+public class ChangeCabinetAdapter extends FragmentStateAdapter {
+    private final List<Fragment> fragments = new LinkedList<>();
+
+    public ChangeCabinetAdapter(@NonNull FragmentActivity fragmentActivity, List<HxpCabinetVo> hxpCabinetVoList, FragmentCallBack fragmentCallBack) {
+        super(fragmentActivity);
+        int size = (int) Math.ceil(hxpCabinetVoList.size() / 2.0);
+        Map<Integer, List<HxpCabinetVo>> doubleCabinetMap = new TreeMap<>();
+        for (int i = 0; i < size; i++) {
+            List<HxpCabinetVo> hxpCabinetVoArrayList = new ArrayList<>();
+            hxpCabinetVoArrayList.add(hxpCabinetVoList.get(i));
+            if (i + 1 < hxpCabinetVoList.size()) {
+                hxpCabinetVoArrayList.add(hxpCabinetVoList.get(i + 1));
+            }
+            doubleCabinetMap.put(i, hxpCabinetVoArrayList);
+        }
+
+        for (int i = 0; i < size; i++) {
+            fragments.add(new ChangeCabinetFragment(doubleCabinetMap, fragmentCallBack));
+        }
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return fragments.get(position).hashCode();
+    }
+
+    @Override
+    public boolean containsItem(long itemId) {
+        return false;
+    }
+
+    @NonNull
+    @Override
+    public Fragment createFragment(int position) {
+        return fragments.get(position);
+    }
+
+    @Override
+    public int getItemCount() {
+        return fragments.size();
+    }
+
+}

+ 41 - 0
app/src/main/java/com/example/chemical/ui/plan/change/ChangeCabinetFragment.java

@@ -0,0 +1,41 @@
+package com.example.chemical.ui.plan.change;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.example.chemical.databinding.FragmentChangeCabinetBinding;
+import com.example.chemical.ui.plan.FragmentCallBack;
+import com.example.chemical.ui.plan.room.bean.locker.HxpCabinetVo;
+
+import java.util.List;
+import java.util.Map;
+
+public class ChangeCabinetFragment extends Fragment {
+    private Map<Integer, List<HxpCabinetVo>> doubleCabinetMap;
+    private FragmentCallBack fragmentCallBack;
+    private FragmentChangeCabinetBinding binding;
+
+    public ChangeCabinetFragment(Map<Integer, List<HxpCabinetVo>> doubleCabinetMap, FragmentCallBack fragmentCallBack) {
+        this.doubleCabinetMap = doubleCabinetMap;
+        this.fragmentCallBack = fragmentCallBack;
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        binding = FragmentChangeCabinetBinding.inflate(inflater, container, false);
+        return binding.getRoot();
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+    }
+}

+ 64 - 0
app/src/main/java/com/example/chemical/utils/AudioPlayer.java

@@ -0,0 +1,64 @@
+package com.example.chemical.utils;
+
+import android.media.MediaPlayer;
+import android.util.Log;
+
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.Utils;
+
+/**
+ * 播放音频
+ */
+public class AudioPlayer {
+    private static AudioPlayer instance;
+    private MediaPlayer mediaPlayer;
+    private int currentAudioResId = 0;
+
+    private AudioPlayer() {
+        // 私有构造函数,防止外部创建实例
+    }
+
+    public static synchronized AudioPlayer getInstance() {
+        if (instance == null) {
+            instance = new AudioPlayer();
+        }
+        return instance;
+    }
+
+    public void play(int audioResId) {
+        if (mediaPlayer != null && currentAudioResId == audioResId) {
+            if (!mediaPlayer.isPlaying()) {
+                mediaPlayer.start();
+            }
+            return;
+        }
+        stop();
+        try {
+            mediaPlayer = MediaPlayer.create(Utils.getApp(), audioResId);
+            if (mediaPlayer != null) {
+                mediaPlayer.start();
+                currentAudioResId = audioResId;
+                mediaPlayer.setOnCompletionListener(mp -> stop());
+            } else {
+                LogUtils.e("Failed to create MediaPlayer for resource ID: " + audioResId);
+            }
+        } catch (Exception e) {
+            LogUtils.e("Error playing audio resource: " + audioResId, Log.getStackTraceString(e));
+        }
+    }
+
+    public void stop() {
+        if (mediaPlayer != null) {
+            if (mediaPlayer.isPlaying()) {
+                mediaPlayer.stop();
+            }
+            mediaPlayer.release();
+            mediaPlayer = null;
+            currentAudioResId = 0;
+        }
+    }
+
+    public boolean isPlaying() {
+        return mediaPlayer != null && mediaPlayer.isPlaying();
+    }
+}

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

@@ -5,6 +5,11 @@ import android.media.AudioAttributes
 import android.media.MediaPlayer
 import android.net.Uri
 
+@Deprecated(
+    "没有释放资源,并且占用context,容易内存泄露",
+    ReplaceWith("AudioPlayer"),
+    DeprecationLevel.WARNING
+)
 object MediaPlayerHelper {
     private var mediaPlayer: MediaPlayer? = null
 

+ 227 - 0
app/src/main/java/com/example/chemical/weidith/prin_label_dialog/PrintLabelDialog.java

@@ -0,0 +1,227 @@
+package com.example.chemical.weidith.prin_label_dialog;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatDialog;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.ThreadUtils;
+import com.blankj.utilcode.util.ToastUtils;
+import com.caysn.autoreplyprint.AutoReplyPrint;
+import com.example.chemical.R;
+import com.example.chemical.databinding.DialogPrintLabelBinding;
+import com.example.chemical.receiver.UsbReceiver;
+import com.example.chemical.ui.PrintBean;
+import com.example.chemical.ui.adapter.LabelDialogAdapter;
+import com.example.chemical.ui.plan.room.bean.input_add.InventoryItemBean;
+import com.example.chemical.utils.AudioPlayer;
+import com.example.chemical.utils.BitmapUtils;
+import com.rc.httpcore.HttpConfig;
+import com.rc.httpcore.bean.BelongingPersonBean;
+import com.rc.httpcore.bean.HxpChemicalVo;
+import com.rc.httpcore.bean.StockDetailsModel;
+import com.sun.jna.Pointer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PrintLabelDialog extends AppCompatDialog {
+    // RFID广播接收器
+    private Context context;
+    private DialogPrintLabelBinding binding;
+    private PrintLabelCallBack printLabelCallBack;
+    // 待存储清单Item
+    private InventoryItemBean inventoryItemBean;
+    // 存储位置
+    private String planPath;
+
+    private List<StockDetailsModel> labelList = new ArrayList<>();
+    private LabelDialogAdapter labelDialogAdapter;
+
+    private Pointer pointer = Pointer.NULL;
+    private boolean isPrint;
+
+    /**
+     * @param inventoryItemBean 清单item
+     * @param planPath          存储位置
+     */
+    public PrintLabelDialog(@NonNull Context context, InventoryItemBean inventoryItemBean, String planPath, boolean isPrint, PrintLabelCallBack printLabelCallBack) {
+        super(context);
+        this.context = context;
+        this.inventoryItemBean = inventoryItemBean;
+        this.planPath = planPath;
+        this.printLabelCallBack = printLabelCallBack;
+        this.isPrint = isPrint;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        binding = DialogPrintLabelBinding.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);
+        }
+        setCanceledOnTouchOutside(false);
+        setCancelable(false);
+
+        HxpChemicalVo hxpChemicalVo = inventoryItemBean.getHxpChemicalVo();
+        // 化学品名
+        String chemicalName = hxpChemicalVo.getChemicalName();
+        binding.chemicalName.setText(TextUtils.isEmpty(chemicalName) ? "" : chemicalName);
+        // 净含量
+        double netWt = hxpChemicalVo.getNetWt();
+        binding.netWtTV.setText("净含量:" + netWt);
+        // 存储位置
+        binding.layerTV.setText(planPath);
+        ThreadUtils.executeByCached(new ThreadUtils.SimpleTask<Object>() {
+            @Override
+            public Object doInBackground() throws Throwable {
+                // 数量
+                int size = inventoryItemBean.getSize();
+                for (int i = 0; i < size; i++) {
+                    String code = "ZJ" + System.currentTimeMillis();
+                    String wxCode = HttpConfig.Companion.getAPI_BASE_QC_URL() + "?code=" + code + "&type=9";
+                    int no = i + 1;
+                    labelList.add(new StockDetailsModel(null, null, code, no, wxCode));
+                    Thread.sleep(10);
+                }
+                LogUtils.d(labelList);
+                return null;
+            }
+
+            @Override
+            public void onSuccess(Object result) {
+                binding.rvView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false));
+                labelDialogAdapter = new LabelDialogAdapter();
+                binding.rvView.setAdapter(labelDialogAdapter);
+                labelDialogAdapter.setList(labelList);
+                // 删除条目
+                labelDialogAdapter.setOnItemChildClickListener((adapter, view, position) -> {
+                    if (view.getId() == R.id.imgDelete) {
+                        try {
+                            labelList.remove(position);
+                            for (int i = 0; i < labelList.size(); i++) {
+                                labelList.get(i).setNo(++i);
+                            }
+                            labelDialogAdapter.setList(labelList);
+                        } catch (Exception e) {
+                            LogUtils.e(Log.getStackTraceString(e));
+                            ToastUtils.showLong("删除失败!");
+                        }
+                    }
+                });
+            }
+        });
+
+        // 关闭
+        binding.butClos.setOnClickListener(v -> {
+            dismiss();
+            printLabelCallBack.close();
+        });
+
+        // 确定
+        binding.determine.setOnClickListener(v -> {
+            printState(true);
+            for (int i = 0; i < labelList.size(); i++) {
+                StockDetailsModel stockDetailsModel = labelList.get(i);
+                PrintBean printBean = new PrintBean();
+                // 化学品编码
+                String tagCode = stockDetailsModel.getTagCode();
+                printBean.setTag(TextUtils.isEmpty(tagCode) ? "" : tagCode);
+                // 二维码
+                String wxCode = stockDetailsModel.getWxCode();
+                printBean.setWxCode(TextUtils.isEmpty(wxCode) ? "" : wxCode);
+                // 化学品名
+                printBean.setName(TextUtils.isEmpty(chemicalName) ? "" : chemicalName);
+                // CAS
+                String casNum = hxpChemicalVo.getCasNum();
+                printBean.setCasNo(TextUtils.isEmpty(casNum) ? "" : casNum);
+                // 归属人
+                BelongingPersonBean belongingPersonBean = inventoryItemBean.getBelongingPersonBean();
+                String belongingPersonUserName = belongingPersonBean.getUserName();
+                printBean.setPerson(TextUtils.isEmpty(belongingPersonUserName) ? "" : belongingPersonUserName);
+                // 管控非管控
+                int chemicalLevel = hxpChemicalVo.getChemicalLevel();
+                printBean.setLevel(1 == chemicalLevel ? "管控" : "非管控");
+                // 化学品类型
+                CharSequence chemicalCategory = hxpChemicalVo.getChemicalCategoryName();
+                printBean.setTypes(TextUtils.isEmpty(chemicalCategory) ? "" : chemicalCategory.toString());
+                // 打印
+                if (isPrint) {
+                    printLabel(printBean);
+                } else {
+                    printLabelCallBack.confirm(labelList);
+                }
+            }
+            printState(false);
+        });
+        // 请扫描标签音频播放
+        AudioPlayer.getInstance().play(R.raw.saomiaobiaoqian);
+    }
+
+    /**
+     * 打印状态切换
+     */
+    private void printState(boolean isPrinting) {
+        if (isPrinting) {
+            binding.loadingLL.setVisibility(View.VISIBLE);
+            binding.loadingLL.setOnClickListener(v1 -> {
+            });
+            binding.determine.setClickable(false);
+            binding.butClos.setClickable(false);
+        } else {
+            binding.loadingLL.setVisibility(View.GONE);
+            binding.loadingLL.setOnClickListener(null);
+            binding.determine.setClickable(true);
+            binding.butClos.setClickable(true);
+        }
+    }
+
+    // 打印
+    private void printLabel(PrintBean printBean) {
+        try {
+            if (pointer == Pointer.NULL) {
+                pointer = AutoReplyPrint.INSTANCE.CP_Port_OpenUsb("VID:0x0FE6,PID:0x811E", 1);
+            }
+            Bitmap bitmap = BitmapUtils.INSTANCE.generateBitmap(printBean);
+            AutoReplyPrint.INSTANCE.CP_Label_BackPaperToPrintPosition(pointer);
+            AutoReplyPrint.CP_Pos_PrintRasterImageFromData_Helper.PrintRasterImageFromBitmap(pointer,
+                    bitmap.getWidth(),
+                    bitmap.getHeight(),
+                    bitmap,
+                    AutoReplyPrint.CP_ImageBinarizationMethod_Thresholding,
+                    AutoReplyPrint.CP_ImageCompressionMethod_None
+            );
+            AutoReplyPrint.INSTANCE.CP_Label_PagePrint(pointer, 1);
+            if (AutoReplyPrint.INSTANCE.CP_Pos_HalfCutPaper(pointer)) {
+                AudioPlayer.getInstance().play(R.raw.huaxuepinbiaoqian);
+            }
+        } catch (Exception e) {
+            LogUtils.e(Log.getStackTraceString(e));
+        }
+    }
+
+    public interface PrintLabelCallBack {
+        void confirm(List<StockDetailsModel> labelList);
+
+        void close();
+    }
+}

+ 2 - 2
app/src/main/res/drawable/bg_shu_ru_kuang.xml

@@ -2,9 +2,9 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
 
     <stroke
-        android:width="1dp"
+        android:width="1px"
         android:color="#E0E0E0" />
     <solid android:color="#ffffffff" />
     <corners
-        android:radius="7dp" />
+        android:radius="12px" />
 </shape>

+ 189 - 0
app/src/main/res/layout/activity_change_cabinet.xml

@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:id="@+id/main"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:animateLayoutChanges="true"
+    android:background="@mipmap/icon_add_bg"
+    tools:context=".ui.plan.change.ChangeCabinetActivity"
+    tools:ignore="PxUsage">
+
+    <RelativeLayout
+        android:id="@+id/rel1"
+        android:layout_width="match_parent"
+        android:layout_height="45dp"
+        android:layout_marginTop="10dp">
+
+        <ImageView
+            android:id="@+id/image"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="20dp" />
+
+        <TextView
+            android:id="@+id/deptName"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_toRightOf="@+id/image"
+            android:text="实验室名称-房间号"
+            android:textColor="@color/white"
+            android:textSize="22sp" />
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:layout_centerVertical="true"
+            android:layout_marginTop="2dp">
+
+            <TextView
+                android:id="@+id/tvTitle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerHorizontal="true"
+                android:layout_centerVertical="true"
+                android:text="化学品智能管理"
+                android:textColor="@color/white"
+                android:textSize="24sp"
+                android:textStyle="bold" />
+
+            <TextView
+                android:id="@+id/nowTime"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="6dp"
+                android:layout_toRightOf="@+id/tvTitle"
+                android:textColor="@color/white" />
+
+        </LinearLayout>
+
+
+        <RelativeLayout
+            android:id="@+id/loggedIn"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:gravity="center_vertical"
+            android:paddingRight="18dp">
+
+            <ImageView
+                android:id="@+id/imageName"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="6dp" />
+
+            <TextView
+                android:id="@+id/tvName"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="6dp"
+                android:layout_marginRight="6dp"
+                android:layout_toRightOf="@+id/imageName"
+                android:text="李XX"
+                android:textColor="@color/white" />
+
+            <ImageView
+                android:id="@+id/imgOut"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_marginLeft="6dp"
+                android:layout_marginRight="6dp"
+                android:layout_toRightOf="@+id/tvName"
+                android:background="@mipmap/cshrk_dl_tc" />
+
+            <TextView
+                android:id="@+id/tvOutLogin"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_marginRight="10dp"
+                android:layout_toRightOf="@+id/imgOut"
+                android:text="退出"
+                android:textColor="@color/white"
+                android:textSize="16sp" />
+        </RelativeLayout>
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/rel1"
+        android:layout_marginLeft="31dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="31dp"
+        android:layout_marginBottom="69dp"
+        android:background="@drawable/bg_add_chemicals_one">
+
+        <LinearLayout
+            android:id="@+id/control_LL"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="10px"
+            android:layout_marginBottom="10px"
+            android:orientation="horizontal">
+
+            <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="确定" />
+        </LinearLayout>
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_above="@id/control_LL"
+            android:layout_margin="10px">
+
+            <androidx.viewpager2.widget.ViewPager2
+                android:id="@+id/cabinet_VP"
+                android:layout_width="1260px"
+                android:layout_height="match_parent"
+                android:layout_centerInParent="true"
+                android:layout_weight="1" />
+
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_toStartOf="@id/cabinet_VP">
+
+                <Button
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_centerInParent="true"
+                    android:text="上一页" />
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:layout_toEndOf="@id/cabinet_VP">
+
+                <Button
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_centerInParent="true"
+                    android:text="下一页" />
+            </RelativeLayout>
+
+        </RelativeLayout>
+    </RelativeLayout>
+</RelativeLayout>

+ 173 - 0
app/src/main/res/layout/dialog_print_label.xml

@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_centerHorizontal="true"
+        android:gravity="center"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="420dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:background="@drawable/bg_shu_ru_kuang"
+            android:orientation="vertical"
+            android:padding="20dp">
+
+            <TextView
+                android:layout_width="380dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:layout_marginTop="12dp"
+                android:gravity="center"
+                android:text="请将标签粘贴在化学品外包装上"
+                android:textColor="@color/black"
+                android:textSize="12sp" />
+
+            <TextView
+                android:id="@+id/chemicalName"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="8dp"
+                android:textColor="@color/black"
+                android:textSize="15sp" />
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+
+                <TextView
+                    android:id="@+id/net_Wt_TV"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:textColor="@color/purple_666666"
+                    android:textSize="12sp" />
+
+
+                <TextView
+                    android:id="@+id/layer_TV"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentEnd="true"
+                    android:layout_centerVertical="true"
+                    android:text="柜层"
+                    android:textColor="@color/black"
+                    android:textSize="12sp" />
+            </RelativeLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1px"
+                android:layout_marginTop="10px"
+                android:background="@color/purple_A2A2A2" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="40dp"
+                android:layout_marginTop="8dp"
+                android:background="@drawable/bg_bei_ji"
+                android:gravity="center_vertical">
+
+                <TextView
+                    android:layout_width="40dp"
+                    android:layout_height="wrap_content"
+                    android:textColor="@color/black"
+                    android:textSize="12sp" />
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="编号"
+                    android:textColor="@color/black"
+                    android:textSize="12sp" />
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="RFID编号"
+                    android:visibility="gone"
+                    android:textColor="@color/black"
+                    android:textSize="12sp" />
+
+                <TextView
+                    android:layout_width="40dp"
+                    android:layout_height="wrap_content"
+                    android:text="删除"
+                    android:textColor="@color/black"
+                    android:textSize="12sp" />
+
+            </LinearLayout>
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="180dp">
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/rvView"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    tools:listitem="@layout/label_dialog_rv" />
+
+                <LinearLayout
+                    android:id="@+id/loading_LL"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:visibility="gone">
+
+                    <ProgressBar
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="打印中..." />
+                </LinearLayout>
+            </RelativeLayout>
+
+            <TextView
+                android:id="@+id/sum_TV"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:padding="5dp"
+                android:text="共  30  张" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="40dp"
+            android:layout_gravity="center"
+            android:layout_marginTop="18dp"
+            android:orientation="horizontal">
+
+            <Button
+                android:id="@+id/butClos"
+                android:layout_width="110dp"
+                android:layout_height="32dp"
+                android:layout_marginRight="19dp"
+                android:background="@drawable/bg_closes"
+                android:text="关闭" />
+
+            <Button
+                android:id="@+id/determine"
+                android:layout_width="110dp"
+                android:layout_height="32dp"
+                android:layout_marginLeft="19dp"
+                android:background="@drawable/bg_quan_xin_twoe"
+                android:text="确定"
+                android:textColor="@color/white" />
+        </LinearLayout>
+    </LinearLayout>
+</RelativeLayout>

+ 11 - 0
app/src/main/res/layout/fragment_change_cabinet.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/main"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:animateLayoutChanges="true"
+    android:orientation="horizontal"
+    tools:ignore="PxUsage">
+
+</LinearLayout>

+ 0 - 7
app/src/main/res/layout/fragment_locker1.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/white">
-
-</RelativeLayout>

+ 0 - 7
app/src/main/res/layout/fragment_locker2.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/viewfinder_result_point_color">
-
-</RelativeLayout>

+ 353 - 0
app/src/main/res/layout/include_cabinet.xml

@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_weight="1"
+    android:gravity="center"
+    tools:ignore="PxUsage">
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@mipmap/locker">
+
+        <RelativeLayout
+            android:layout_width="372px"
+            android:layout_height="484px"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="108px"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+                <RadioGroup
+                    android:id="@+id/locker_up_drawer_RG"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:orientation="vertical">
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_1_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_2_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_3_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_4_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_5_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_6_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_7_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_up_drawer_8_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+                </RadioGroup>
+
+                <RadioGroup
+                    android:id="@+id/locker_down_drawer_RG"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:visibility="gone">
+
+                    <RadioButton
+                        android:id="@+id/locker_down_drawer_1_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_down_drawer_2_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_down_drawer_3_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+
+                    <RadioButton
+                        android:id="@+id/locker_down_drawer_4_RB"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:background="@drawable/selector_locker_drawer"
+                        android:button="@null"
+                        android:visibility="gone" />
+                </RadioGroup>
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:id="@+id/locker_up_drawer_LL"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_1_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="①  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_2_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="②  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_3_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="③  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_4_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="④  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_5_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="⑤  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_6_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="⑥  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_7_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="⑦  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_up_drawer_8_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="⑧  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/locker_down_drawer_LL"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:orientation="vertical"
+                    android:visibility="gone">
+
+                    <TextView
+                        android:id="@+id/locker_down_drawer_1_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="①  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_down_drawer_2_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="②  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_down_drawer_3_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="③  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+
+                    <TextView
+                        android:id="@+id/locker_down_drawer_4_TV"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginStart="20px"
+                        android:layout_marginBottom="10px"
+                        android:layout_weight="1"
+                        android:gravity="bottom"
+                        android:text="④  层"
+                        android:textColor="@color/white"
+                        android:visibility="gone" />
+                </LinearLayout>
+            </LinearLayout>
+        </RelativeLayout>
+
+        <TextView
+            android:id="@+id/up_door_name_TV"
+            android:layout_width="60px"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="33px"
+            android:layout_marginTop="168px"
+            android:maxLines="4"
+            android:textColor="@color/white" />
+
+        <TextView
+            android:id="@+id/down_door_name_TV"
+            android:layout_width="60px"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="33px"
+            android:layout_marginTop="410px"
+            android:maxLines="4"
+            android:textColor="@color/white"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/locker_name_TV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="120px"
+            android:layout_marginTop="30px"
+            android:drawableStart="@drawable/locker_name_round"
+            android:drawablePadding="15px"
+            android:gravity="center_vertical"
+            android:textColor="@color/white"
+            android:textSize="16sp" />
+
+    </RelativeLayout>
+</LinearLayout>

+ 2 - 1
app/src/main/res/layout/label_dialog_rv.xml

@@ -35,7 +35,8 @@
             android:singleLine="true"
             android:textColor="@color/black"
             android:textColorHint="@color/purple_ff0072dd"
-            android:textSize="10sp" />
+            android:textSize="10sp"
+            android:visibility="gone" />
 
         <ImageView
             android:id="@+id/imgDelete"