package com.dayu.recharge.activity;
|
|
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.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.zip.CRC32;
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-10 19:52
|
* Description: 管理员信息设置
|
*/
|
public class AdminSetupActivity extends BaseActivity {
|
|
ActivityAdminSetupBinding adminBinding;
|
public static AdminSetupActivity adminSetupActivity;
|
AdminDataBean adminData = new AdminDataBean();
|
TeaPickerView pickerView;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
try {
|
adminBinding = ActivityAdminSetupBinding.inflate(LayoutInflater.from(this));
|
setContentView(adminBinding.getRoot());
|
adminSetupActivity = this;
|
setData();
|
initView();
|
} catch (Exception e) {
|
CrashReport.postCatchedException(e);
|
e.printStackTrace();
|
|
}
|
}
|
|
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");
|
}
|
} 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();
|
}
|
});
|
pickerView = new TeaPickerView(this);
|
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
pickerView.initAddressData();
|
}
|
}).start();
|
|
}
|
|
|
private void setData() {
|
try {
|
AdminDataBean adminData = baseDao.adminDao().findFirst();
|
|
if (adminData != null) {
|
this.adminData = adminData;
|
adminBinding.adminSerial.setText(adminData.getSerial());
|
adminBinding.adminAddressCode.setText(adminData.getAddressCode());
|
adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
|
} else {
|
adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN()));
|
}
|
|
} catch (Exception e) {
|
CrashReport.postCatchedException(e);
|
e.printStackTrace();
|
}
|
}
|
|
|
private void intiPickerView() {
|
|
try {
|
pickerView.setScreenH(2)
|
.setDiscolourHook(true)
|
.setRadius(25)
|
.setContentLine(true)
|
.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();
|
}
|
});
|
} catch (Exception e) {
|
CrashReport.postCatchedException(e);
|
e.printStackTrace();
|
|
}
|
}
|
|
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;
|
}
|
}
|
|
}
|