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