app/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/activity/HomeActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/activity/MyActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/dao/AdminDataDao.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/dayu/recharge/dbBean/AdminDataBean.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/build.gradle
@@ -16,8 +16,8 @@ applicationId "com.dayu.recharge" minSdk 23 targetSdk 26 versionCode 20 versionName "2.0" versionCode 22 versionName "2.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk{ 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; } } } app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -1,6 +1,8 @@ package com.dayu.recharge.activity; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -13,6 +15,10 @@ import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.PassWordDialog; import java.lang.reflect.Method; import java.util.Random; import java.util.zip.CRC32; /** @@ -37,7 +43,6 @@ } public void rushState() { if (MyApplication.myApplication.isConncet) { homeBinding.socketState.setTextColor(getResources().getColor(R.color.title_bg)); @@ -50,36 +55,37 @@ } private void initView() { homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AdminDataBean adminData = baseDao.adminDao().findFirst(); if (adminData != null) { startActivity(new Intent(HomeActivity.this, NewCardActivity.class)); } else { TipUtil.show("请先设置地址信息"); } AdminDataBean adminData = baseDao.adminDao().findFirst(); if (adminData == null) { // 创建一个随机数生成器对象 Random random = new Random(); // 生成 1 到 12 之间的随机数字 int randomNumber = random.nextInt(12) + 1; AdminDataBean adminDataBean = new AdminDataBean(); adminDataBean.setSerial(randomNumber + generateUniqueNumber(getSN())); baseDao.adminDao().insert(adminDataBean); } } }); homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AdminDataBean adminData = baseDao.adminDao().findFirst(); if (adminData != null) { startActivity(new Intent(HomeActivity.this, RechargeActivity.class)); } else { TipUtil.show("请先设置地址信息"); } homeBinding.homeNewCard.setOnClickListener(v -> { AdminDataBean adminData1 = baseDao.adminDao().findFirst(); if (adminData1.isHasAddressCode()) { startActivity(new Intent(HomeActivity.this, NewCardActivity.class)); } else { TipUtil.show("请先设置地址信息"); } }); homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class)); homeBinding.homeRecharge.setOnClickListener(v -> { AdminDataBean adminData12 = baseDao.adminDao().findFirst(); if (adminData12.isHasAddressCode()) { startActivity(new Intent(HomeActivity.this, RechargeActivity.class)); } else { TipUtil.show("请先设置地址信息"); } }); homeBinding.homeRedCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class))); homeBinding.homeAdmin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -88,12 +94,9 @@ } }); //参数设置 homeBinding.homeParameter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class)); passWordDialog.show(); } homeBinding.homeParameter.setOnClickListener(v -> { PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class)); passWordDialog.show(); }); homeBinding.homeMy.setOnClickListener(new View.OnClickListener() { @Override @@ -127,4 +130,53 @@ } return super.onKeyDown(keyCode, event); } public 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; } } @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); } } } app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -7,20 +7,15 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import androidx.annotation.NonNull; import com.dayu.recharge.MyApplication; import com.dayu.recharge.databinding.ActivityMyBinding; import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.net.SocketNet; import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.ExcelUtil; import com.dayu.recharge.utils.SocketUtil; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.view.PassWordDialog; import com.dayu.recharge.view.datepicker.CustomDatePicker; @@ -60,80 +55,42 @@ } private void initView() { myBinding.cardReplacement.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MyActivity.this, ReplacementActivity.class)); } }); myBinding.myAdmin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class)); passWordDialog.show(); myBinding.cardReplacement.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, ReplacementActivity.class))); myBinding.myAdmin.setOnClickListener(v -> { PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class)); passWordDialog.show(); // startActivity(new Intent(MyActivity.this, AdminSetupActivity.class)); } }); myBinding.myPsw.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MyActivity.this, PassWordActivity.class)); } myBinding.myPsw.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, PassWordActivity.class))); myBinding.myRechargeListLl.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, RechargeListActivity.class))); myBinding.myNewCardListLl.setOnClickListener(v -> startActivity(new Intent(MyActivity.this, NewCardListActivity.class))); myBinding.myNewCardOut.setOnClickListener(v -> { isRechargeList = false; beginDatePicker.show(System.currentTimeMillis()); }); myBinding.myRechargeListLl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MyActivity.this, RechargeListActivity.class)); } myBinding.myRechargeOut.setOnClickListener(v -> { isRechargeList = true; beginDatePicker.show(System.currentTimeMillis()); }); myBinding.myNewCardListLl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MyActivity.this, NewCardListActivity.class)); } }); myBinding.myNewCardOut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isRechargeList = false; beginDatePicker.show(System.currentTimeMillis()); } }); myBinding.myRechargeOut.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isRechargeList = true; beginDatePicker.show(System.currentTimeMillis()); } }); myBinding.myTestConnect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SocketNet.getInstance().isConnect(MyActivity.this); } }); myBinding.myTestConnect.setOnClickListener(v -> SocketNet.getInstance().isConnect(MyActivity.this)); } Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { switch (msg.what) { case 1: TipUtil.show(MyActivity.this, "导出成功!"); break; case 3: TipUtil.show(MyActivity.this, "记录为空!"); break; default: TipUtil.show(MyActivity.this, "导出失败!"); break; } stopAnim(); return false; Handler handler = new Handler(msg -> { switch (msg.what) { case 1: TipUtil.show(MyActivity.this, "导出成功!"); break; case 3: TipUtil.show(MyActivity.this, "记录为空!"); break; default: TipUtil.show(MyActivity.this, "导出失败!"); break; } stopAnim(); return false; }); /** @@ -141,50 +98,47 @@ */ private void outExcl() { startAnim(); new Thread(new Runnable() { @Override public void run() { { new Thread(() -> { { try { File file = new File(ExcelUtil.outPath); //文件夹是否已经存在 if (!file.exists()) { file.mkdirs(); } List listData = new ArrayList(); try { File file = new File(ExcelUtil.outPath); //文件夹是否已经存在 if (!file.exists()) { file.mkdirs(); if (isRechargeList) { listData = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime); } else { listData = asynchBaseDao.userCardDao().findByTime(beginTime, endTime); } List listData = new ArrayList(); try { if (isRechargeList) { listData = asynchBaseDao.rechargeDao().ansyFindByTime(beginTime, endTime); } else { listData = asynchBaseDao.userCardDao().findByTime(beginTime, endTime); } if (listData == null || listData.size() == 0) { handler.sendEmptyMessage(2); return; } } catch (Exception e) { e.printStackTrace(); } String[] title; String fileName; if (listData == null || listData.size() == 0) { TipUtil.show(MyActivity.this, "记录为空"); handler.sendEmptyMessage(2); return; } if (isRechargeList) { title = new String[]{"设备序列号", "用户名", "订单号", "充值日期", "充值金额(元)", "剩余金额(元)"}; fileName = file.toString() + "/" + ExcelUtil.outRechargePathName; } else { title = new String[]{"设备序列号", "用户名", "身份证号", "注册日期", "电话"}; fileName = file.toString() + "/" + ExcelUtil.outUserPathName; } ExcelUtil.initExcel(fileName, title); ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this); handler.sendEmptyMessage(1); } catch (Exception e) { handler.sendEmptyMessage(2); e.printStackTrace(); } String[] title; String fileName; if (listData == null || listData.size() == 0) { TipUtil.show(MyActivity.this, "记录为空"); return; } if (isRechargeList) { title = new String[]{"设备序列号", "用户名", "订单号", "充值日期", "充值金额(元)", "剩余金额(元)"}; fileName = file.toString() + "/" + ExcelUtil.outRechargePathName; } else { title = new String[]{"设备序列号", "用户名", "身份证号", "注册日期", "电话"}; fileName = file.toString() + "/" + ExcelUtil.outUserPathName; } ExcelUtil.initExcel(fileName, title); ExcelUtil.writeObjListToExcel(listData, fileName, MyActivity.this); handler.sendEmptyMessage(1); } catch (Exception e) { handler.sendEmptyMessage(2); e.printStackTrace(); } } }).start(); @@ -213,7 +167,7 @@ AdminDataBean adminData; try { adminData = baseDao.adminDao().findFirst(); if (adminData != null) { if (adminData.isHasAddressCode()) { myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun()); myBinding.myVillageNum.setText(adminData.getSerial()); } else { @@ -226,7 +180,7 @@ if (TextUtils.isEmpty(initCode)) { msgData.append("设备未注册"); } else { msgData.append("设备注册号:" + initCode); msgData.append("设备注册号:").append(initCode); } myBinding.myTestConnect.setText(msgData); } catch (Exception e) { @@ -247,12 +201,9 @@ final long endTimestamp = System.currentTimeMillis(); // 通过时间戳初始化日期,毫秒级别 beginDatePicker = new CustomDatePicker(this, "选择开始时间", new CustomDatePicker.Callback() { @Override public void onTimeSelected(long timestamp) { beginTime = timestamp; endDatePicker.show(timestamp); } beginDatePicker = new CustomDatePicker(this, "选择开始时间", timestamp -> { beginTime = timestamp; endDatePicker.show(timestamp); }, beginTimestamp, endTimestamp); // 不允许点击屏幕或物理返回键关闭 beginDatePicker.setCancelable(false); @@ -263,19 +214,16 @@ // 不允许滚动动画 beginDatePicker.setCanShowAnim(false); endDatePicker = new CustomDatePicker(this, "选择结束时间", new CustomDatePicker.Callback() { @Override public void onTimeSelected(long timestamp) { endTime = timestamp; if ((endTime < beginTime) && endTime != beginTime) { TipUtil.show(MyActivity.this, "结束时间不能晚于开始时间"); } else { try { endTime = endTime + (1000 * 60 * 60 * 24) - 1; outExcl(); } catch (Exception e) { e.printStackTrace(); } endDatePicker = new CustomDatePicker(this, "选择结束时间", timestamp -> { endTime = timestamp; if ((endTime < beginTime) && endTime != beginTime) { TipUtil.show(MyActivity.this, "结束时间不能晚于开始时间"); } else { try { endTime = endTime + (1000 * 60 * 60 * 24) - 1; outExcl(); } catch (Exception e) { e.printStackTrace(); } } }, beginTimestamp, endTimestamp); app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
@@ -3,17 +3,13 @@ import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.widget.Toast; import com.dayu.recharge.MyApplication; import com.dayu.recharge.databinding.ActivityIpBinding; import com.dayu.recharge.dbBean.AdminDataBean; import com.dayu.recharge.dbBean.IpBean; import com.dayu.recharge.utils.DeviceNumberUtils; import com.dayu.recharge.utils.TipUtil; import com.dayu.recharge.utils.ToastUtil; import com.dayu.recharge.utils.WSHelper; /** * Copyright (C), 2022, @@ -48,39 +44,35 @@ } private void initView() { ipBinding.ipOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (TextUtils.isEmpty(ipBinding.port.getText().toString())) { ToastUtil.show("请输入端口号"); return; } int newPort = Integer.parseInt(ipBinding.port.getText().toString()); if (newPort <= 0 || newPort > 65535) { TipUtil.show("请输入正确的端口号"); return; } if (ipBean != null) { String oldIp = ipBean.getIp(); int oldPort = ipBean.getPort(); if (!oldIp.equals(ipBinding.ip.getText().toString()) || oldPort != newPort) { // DeviceNumberUtils.setDeviceNumber(""); } } if (ipBean == null) { ipBean = new IpBean(); } ipBean.setIp(ipBinding.ip.getText().toString()); ipBean.setPort(newPort); baseDao.ipDao().insert(ipBean); AdminDataBean adminData = baseDao.adminDao().findFirst(); //修改IP后重新连接 MyApplication.myApplication.initEasySocket(false, null); ipBinding.ipOk.setOnClickListener(v -> { if (TextUtils.isEmpty(ipBinding.port.getText().toString())) { ToastUtil.show("请输入端口号"); return; } int newPort = Integer.parseInt(ipBinding.port.getText().toString()); if (newPort <= 0 || newPort > 65535) { TipUtil.show("请输入正确的端口号"); return; } if (ipBean != null) { String oldIp = ipBean.getIp(); int oldPort = ipBean.getPort(); // if (!oldIp.equals(ipBinding.ip.getText().toString()) || oldPort != newPort) { //// DeviceNumberUtils.setDeviceNumber(""); // } } if (ipBean == null) { ipBean = new IpBean(); } ipBean.setIp(ipBinding.ip.getText().toString()); ipBean.setPort(newPort); baseDao.ipDao().insert(ipBean); //修改IP后重新连接 MyApplication.myApplication.initEasySocket(false, null); // if (adminData != null) { // MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode()); // } Toast.makeText(SysIpActivity.this, "保存成功", Toast.LENGTH_LONG).show(); } Toast.makeText(SysIpActivity.this, "保存成功", Toast.LENGTH_LONG).show(); }); } app/src/main/java/com/dayu/recharge/dao/AdminDataDao.java
@@ -28,4 +28,7 @@ @Query("select * from AdminDataBean limit 1") AdminDataBean findFirst(); } app/src/main/java/com/dayu/recharge/dbBean/AdminDataBean.java
@@ -1,5 +1,7 @@ package com.dayu.recharge.dbBean; import android.text.TextUtils; import androidx.room.Entity; import androidx.room.PrimaryKey; @@ -113,4 +115,12 @@ public void setAddressCode(String addressCode) { this.addressCode = addressCode; } public boolean isHasAddressCode() { if (!TextUtils.isEmpty(addressCode)) { return true; } return false; } }