package com.dayu.henanlibrary.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;
|
import android.view.View;
|
import android.widget.Toast;
|
|
import com.dayu.baselibrary.utils.DeviceUtils;
|
import com.dayu.baselibrary.utils.TipUtil;
|
import com.dayu.baselibrary.view.PassWordDialog;
|
import com.dayu.henanlibrary.HeNanApplication;
|
import com.dayu.henanlibrary.databinding.ActivityHomeHnBinding;
|
import com.dayu.henanlibrary.dbBean.AdminDataBean;
|
|
import java.lang.reflect.Method;
|
import java.util.Random;
|
import java.util.zip.CRC32;
|
|
|
/**
|
* Copyright (C), 2023,
|
* Author: zuo
|
* Date: 2023-11-6 19:52
|
* Description: 主界面
|
*/
|
public class HomeActivity extends HNBaseActivity {
|
|
public static HomeActivity homeActivity;
|
ActivityHomeHnBinding homeBinding;
|
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
homeActivity = this;
|
homeBinding = ActivityHomeHnBinding.inflate(LayoutInflater.from(this));
|
setContentView(homeBinding.getRoot());
|
initView();
|
rushState();
|
}
|
|
|
public void rushState() {
|
if (HeNanApplication.myApplication.isConncet) {
|
homeBinding.socketState.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.title_bg));
|
homeBinding.socketState.setText("已连接数据中心");
|
} else {
|
homeBinding.socketState.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red));
|
homeBinding.socketState.setText("正在连接数据中心");
|
}
|
}
|
|
private void initView() {
|
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(DeviceUtils.getSN()));
|
baseDao.adminDao().insert(adminDataBean);
|
}
|
|
|
homeBinding.homeNewCard.setOnClickListener(v -> {
|
AdminDataBean adminData1 = baseDao.adminDao().findFirst();
|
if (adminData1.isHasAddressCode()) {
|
startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
|
} else {
|
TipUtil.show("请先设置地址信息");
|
}
|
|
});
|
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) {
|
PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.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
|
public void onClick(View v) {
|
startActivity(new Intent(HomeActivity.this, MyActivity.class));
|
|
}
|
});
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
homeActivity = null;
|
}
|
|
|
long mExitTime;
|
|
//点击两次退出程序 有时间间隔 间隔内点击则退出程序 否则 则提示
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if ((System.currentTimeMillis() - mExitTime) > 2000) {
|
Toast.makeText(HomeActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
|
mExitTime = System.currentTimeMillis();
|
} else {
|
HomeActivity.this.finish();
|
}
|
return true;
|
}
|
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;
|
}
|
}
|
|
|
}
|