package com.dayu.recharge.activity; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.widget.Toast; import androidx.annotation.NonNull; import com.dayu.baselibrary.activity.BaseActivity; import com.dayu.baselibrary.dao.BaseDaoSingleton; import com.dayu.baselibrary.dbbean.PassWordBean; import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.utils.WSMD5; import com.dayu.baselibrary.view.LibraryDialog; import com.dayu.henanlibrary.HeNanApplication; import com.dayu.henanlibrary.dao.HNBaseDaoSingleton; import com.dayu.qihealonelibrary.activity.HomeActivityQHAlone; import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.activity.HomeActivityQHOline; import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton; import com.dayu.recharge.MyApplication; import com.dayu.recharge.databinding.ActivityLoginBinding; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import java.io.File; import java.util.List; /** * Copyright (C), 2023, * Author: zuo * Date: 2023-11-10 19:52 * Description: 登录界面 */ public class LoginActivity extends BaseActivity { ActivityLoginBinding binding; PassWordBean passWordBean; int clickNumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityLoginBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); initView(); getPermission(); } private void initView() { binding.title.setOnClickListener(v -> { clickNumber++; if (clickNumber == 20) { choesLibrary(); clickNumber = 0; } }); binding.loginBtn.setOnClickListener(v -> { String psStr = binding.loginPw.getText().toString(); String nameStr = binding.loginName.getText().toString(); if (TextUtils.isEmpty(psStr)) { TipUtil.show("请输入密码"); return; } if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary && TextUtils.isEmpty(nameStr)) { TipUtil.show("请输入账号"); return; } if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) { QHOnLineApplication.getInstance().getPublicKey(this, nameStr, psStr); } else if ((passWordBean == null && psStr.equals("123456")) || passWordBean != null && passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(psStr))) { startToHomeActivity(); } else if (MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) { com.dayu.general.activity.LoginActivity.login(nameStr, psStr, this); } else { Toast.makeText(LoginActivity.this, "密码错误", Toast.LENGTH_SHORT).show(); } }); try { PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); binding.versionName.setText("当前版本:V" + packageInfo.versionName); } catch ( PackageManager.NameNotFoundException e) { throw new RuntimeException(e); } } @Override protected void onResume() { super.onResume(); Log.i("LoginActivity", "onResume"); if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary || MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) { binding.nameLL.setVisibility(View.VISIBLE); } } /** * 选择版本 */ private void choesLibrary() { LibraryDialog dialog = new LibraryDialog(this, type -> { binding.nameLL.setVisibility(View.GONE); if (type == BaseCommon.HeNanLibrary) { getHNPermission(); } else if (type == BaseCommon.QHOnLineLibrary) { getQHOnlinPermission(); binding.nameLL.setVisibility(View.VISIBLE); } else if (type == BaseCommon.Generalv1Library) { binding.nameLL.setVisibility(View.VISIBLE); getGeneralV1Permission(); } MyApplication.myApplication.initApplication(); }); dialog.show(); } private void startToHomeActivity() { if (MyApplication.myApplication.libraryType == BaseCommon.HeNanLibrary) { startActivity(new Intent(LoginActivity.this, com.dayu.henanlibrary.activity.HomeActivity.class)); } else if (MyApplication.myApplication.libraryType == BaseCommon.QHAloneLibrary) { startActivity(new Intent(LoginActivity.this, HomeActivityQHAlone.class)); } else if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) { startActivity(new Intent(LoginActivity.this, HomeActivityQHOline.class)); } else if (MyApplication.myApplication.libraryType == BaseCommon.Generalv1Library) { startActivity(new Intent(LoginActivity.this, com.dayu.general.activity.MainActivity.class)); } LoginActivity.this.finish(); } /** * 河南版的获取权限 */ private void getHNPermission() { try { XXPermissions.with(this) // 申请单个权限 // .permission(Permission.RECORD_AUDIO) // 申请多个权限 .permission(Permission.READ_PHONE_STATE, Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置) //.unchecked() .request(new OnPermissionCallback() { @Override public void onGranted(@NonNull List permissions, boolean allGranted) { if (allGranted) { if (allGranted) {//所有申请的权限都已通过 HeNanApplication.getInstance().initEasySocket(false, null); try { File file = new File(HNBaseDaoSingleton.SqlitePath); if (!file.exists()) { file.mkdirs(); } } catch (Exception e) { e.printStackTrace(); } } } } @Override public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { if (doNotAskAgain) { // 如果是被永久拒绝就跳转到应用权限系统设置页面 } else { // toast("获取录音和日历权限失败"); } } }); } catch (Throwable e) { e.printStackTrace(); } } /** * 获取通用权限 */ private void getPermission() { try { XXPermissions.with(this) .permission( Permission.WRITE_EXTERNAL_STORAGE) .request(new OnPermissionCallback() { @Override public void onGranted(@NonNull List permissions, boolean allGranted) { if (allGranted) { if (allGranted) {//所有申请的权限都已通过 try { File file = new File(HNBaseDaoSingleton.SqlitePath); if (!file.exists()) { file.mkdirs(); } passWordBean = BaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst(); if (MyApplication.myApplication.libraryType == BaseCommon.NoLibrary) { choesLibrary(); //没有选择版本先选择版本 } } catch (Exception e) { e.printStackTrace(); } } } } @Override public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { if (doNotAskAgain) { // 如果是被永久拒绝就跳转到应用权限系统设置页面 } else { // toast("获取录音和日历权限失败"); } } }); } catch ( Throwable e) { e.printStackTrace(); } } private void getQHOnlinPermission() { try { XXPermissions.with(this) // 申请单个权限 // .permission(Permission.RECORD_AUDIO) // 申请多个权限 .permission(Permission.READ_PHONE_STATE, Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置) //.unchecked() .request(new OnPermissionCallback() { @Override public void onGranted(@NonNull List permissions, boolean allGranted) { if (allGranted) { if (allGranted) {//所有申请的权限都已通过 try { File file = new File(QHOnlineBaseDaoSingleton.SqlitePath); if (!file.exists()) { file.mkdirs(); } } catch (Exception e) { e.printStackTrace(); } } } } @Override public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { if (doNotAskAgain) { // 如果是被永久拒绝就跳转到应用权限系统设置页面 } else { // toast("获取录音和日历权限失败"); } } }); } catch (Throwable e) { e.printStackTrace(); } } /** * 获取通用权限V1版本 * 该方法用于请求应用所需的权限,以便应用可以正常运行 */ private void getGeneralV1Permission() { try { XXPermissions.with(this) // 申请单个权限 // .permission(Permission.RECORD_AUDIO) // 申请多个权限 .permission(Permission.READ_PHONE_STATE, Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE) // 设置权限请求拦截器(局部设置) //.interceptor(new PermissionInterceptor()) // 设置不触发错误检测机制(局部设置) //.unchecked() .request(new OnPermissionCallback() { @Override public void onGranted(@NonNull List permissions, boolean allGranted) { if (allGranted) { if (allGranted) {//所有申请的权限都已通过 try { File file = new File(com.dayu.general.dao.BaseDaoSingleton.SqlitePath); if (!file.exists()) { file.mkdirs(); } } catch (Exception e) { e.printStackTrace(); } } } } @Override public void onDenied(@NonNull List permissions, boolean doNotAskAgain) { if (doNotAskAgain) { // 如果是被永久拒绝就跳转到应用权限系统设置页面 } else { // toast("获取录音和日历权限失败"); } } }); } catch (Throwable e) { e.printStackTrace(); } } long mExitTime; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTime) > 2000) { Toast.makeText(LoginActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { LoginActivity.this.finish(); } return true; } return super.onKeyDown(keyCode, event); } }