From 732e4481b8437719468cddfb4971ee54a4b36625 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 02 四月 2024 09:48:38 +0800
Subject: [PATCH] 修复设备序列号没有设置地址时一直变化的bug

---
 app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java |  168 ++++++++++++++------------------------------------------
 1 files changed, 42 insertions(+), 126 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
index 1cd0373..aa20f02 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -1,28 +1,18 @@
 package com.dayu.recharge.activity;
 
-import android.annotation.SuppressLint;
 import android.content.Context;
-import android.os.Build;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
-import android.view.View;
 import android.view.inputmethod.InputMethodManager;
 
 import com.dayu.recharge.MyApplication;
 import com.dayu.recharge.databinding.ActivityAdminSetupBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.dbBean.IpBean;
-import com.dayu.recharge.utils.SocketUtil;
 import com.dayu.recharge.utils.TipUtil;
 import com.example.pickerviewlibrary.picker.TeaPickerView;
-import com.example.pickerviewlibrary.picker.entity.PickerData;
-import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener;
 import com.tencent.bugly.crashreport.CrashReport;
-
-import java.lang.reflect.Method;
-import java.util.Random;
-import java.util.zip.CRC32;
 
 /**
  * Copyright (C), 2023,
@@ -54,71 +44,48 @@
     }
 
     private void initView() {
-        adminBinding.setupOk.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (!TextUtils.isEmpty(adminData.getCun())
-                        && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
-                ) {
-                    if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
-                        adminBinding.adminAddressCode.setText(adminData.getAddressCode());
-                        adminData.setSerial(adminBinding.adminSerial.getText().toString());
-                        baseDao.adminDao().insert(adminData);
-                        setData();
-                        IpBean ipBean = MyApplication.myApplication.ipBean;
-                        if (ipBean != null) {
-                            MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
-                        }
-                        TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
-                            @Override
-                            public void onCancle() {
-                                AdminSetupActivity.this.finish();
-                            }
-                        });
-                    } else {
-                        TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+        adminBinding.setupOk.setOnClickListener(v -> {
+            if (!TextUtils.isEmpty(adminData.getCun())
+                    && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
+            ) {
+                if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
+                    adminBinding.adminAddressCode.setText(adminData.getAddressCode());
+                    adminData.setSerial(adminBinding.adminSerial.getText().toString());
+                    baseDao.adminDao().insert(adminData);
+                    setData();
+                    IpBean ipBean = MyApplication.myApplication.ipBean;
+                    if (ipBean != null) {
+                        MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
                     }
+                    TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", () -> AdminSetupActivity.this.finish());
                 } else {
-                    TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                    TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
                 }
+            } else {
+                TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
             }
         });
-        adminBinding.choseAddress.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-                imm.hideSoftInputFromWindow(adminBinding.adminSerial.getWindowToken(), 0);
-                intiPickerView();
-            }
+        adminBinding.choseAddress.setOnClickListener(v -> {
+            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+            imm.hideSoftInputFromWindow(adminBinding.adminSerial.getWindowToken(), 0);
+            intiPickerView();
         });
         pickerView = new TeaPickerView(this);
 
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                pickerView.initAddressData();
-            }
-        }).start();
+        new Thread(() -> pickerView.initAddressData()).start();
 
     }
 
 
     private void setData() {
         try {
-            AdminDataBean adminData = baseDao.adminDao().findFirst();
-
-            if (adminData != null) {
-                this.adminData = adminData;
+             adminData = baseDao.adminDao().findFirst();
+            if (adminData.isHasAddressCode()) {
                 adminBinding.adminSerial.setText(adminData.getSerial());
                 adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                 adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
             } else {
-                // 鍒涘缓涓�涓殢鏈烘暟鐢熸垚鍣ㄥ璞�
-                Random random = new Random();
-                // 鐢熸垚 1 鍒� 12 涔嬮棿鐨勯殢鏈烘暟瀛�
-                int randomNumber = random.nextInt(12) + 1;
-                adminBinding.adminSerial.setText(randomNumber + generateUniqueNumber(getSN()));
-
+                adminBinding.adminSerial.setText(adminData.getSerial());
             }
 
         } catch (Exception e) {
@@ -138,28 +105,25 @@
                     .setRadius(25)
                     .build();
             pickerView.show(adminBinding.choseAddress);
-            pickerView.setOnPickerClickListener(new OnPickerClickListener() {
-                @Override
-                public void OnPickerClick(PickerData pickerData) {
-                    adminData.setSheng("娌冲崡");
-                    adminData.setShi(pickerData.getFirstText().getName());
-                    adminData.setXian(pickerData.getSecondText().getName());
-                    if (pickerData.getThirdText() != null) {
-                        adminData.setZhen(pickerData.getThirdText().getName());
-                    } else {
-                        adminData.setZhen("");
-                    }
-                    if (pickerData.getFourthText() != null) {
-                        adminData.setCun(pickerData.getFourthText().getName());
-                        adminData.setAddressCode(pickerData.getFourthText().getCode());
-                    } else {
-                        adminData.setCun("");
-                        adminData.setAddressCode(pickerData.getSecondText().getCode());
-                    }
-                    adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
-                    adminBinding.adminAddressCode.setText(adminData.getAddressCode());
-                    pickerView.dismiss();
+            pickerView.setOnPickerClickListener(pickerData -> {
+                adminData.setSheng("娌冲崡");
+                adminData.setShi(pickerData.getFirstText().getName());
+                adminData.setXian(pickerData.getSecondText().getName());
+                if (pickerData.getThirdText() != null) {
+                    adminData.setZhen(pickerData.getThirdText().getName());
+                } else {
+                    adminData.setZhen("");
                 }
+                if (pickerData.getFourthText() != null) {
+                    adminData.setCun(pickerData.getFourthText().getName());
+                    adminData.setAddressCode(pickerData.getFourthText().getCode());
+                } else {
+                    adminData.setCun("");
+                    adminData.setAddressCode(pickerData.getSecondText().getCode());
+                }
+                adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+                adminBinding.adminAddressCode.setText(adminData.getAddressCode());
+                pickerView.dismiss();
             });
         } catch (Exception e) {
             CrashReport.postCatchedException(e);
@@ -168,53 +132,5 @@
         }
     }
 
-    @SuppressLint("MissingPermission")
-    public static String getSN() {
-        String serial = null;
-        try {
-            Class<?> c = Class.forName("android.os.SystemProperties");
-            Method get = c.getMethod("get", String.class);
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
-                try {
-                    serial = (String) get.invoke(c, "ro.sunmi.serial");
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-                return serial;
-            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-                serial = Build.getSerial();
-                return serial;
-            } else {
-                //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡
-                //return Build.SERIAL;
-                try {
-                    serial = (String) get.invoke(c, "ro.serialno");
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-                return serial;
-            }
-        } catch (ClassNotFoundException e) {
-            throw new RuntimeException(e);
-        } catch (NoSuchMethodException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public static String generateUniqueNumber(String input) {
-        try {
-            // 浣跨敤CRC32鍝堝笇鍑芥暟
-            CRC32 crc32 = new CRC32();
-            crc32.update(input.getBytes());
-            long crcValue = crc32.getValue();
-            // 灏嗗搱甯屽�兼槧灏勫埌6浣嶆暟瀛楃殑鑼冨洿
-            long sixDigitNumber = Math.abs(crcValue) % 1000000;
-            // 鏍煎紡鍖栦负6浣嶆暟瀛楃殑瀛楃涓�
-            return String.format("%06d", sixDigitNumber);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
 
 }

--
Gitblit v1.8.0