package com.dayu.recharge.activity;
|
|
import static com.dayu.baselibrary.utils.BaseCommon.Generalv1Library;
|
|
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.general.view.ProjectDialog;
|
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();
|
ProjectDialog projectDialog=new ProjectDialog(this);
|
projectDialog.show();
|
}
|
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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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);
|
}
|
}
|