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; } } }