|  |  |  | 
|---|
|  |  |  | 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.henanlibrary.dbBean.PassWordBean; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | if (MyApplication.myApplication.libraryType == BaseCommon.NoLibrary) { | 
|---|
|  |  |  | LibraryDialog dialog = new LibraryDialog(this, type -> { | 
|---|
|  |  |  | if (type == BaseCommon.HeNanLibrary) { | 
|---|
|  |  |  | getHNPermission(); | 
|---|
|  |  |  | } else if (type == BaseCommon.QHAloneLibrary) { | 
|---|
|  |  |  | getQHAlonePermission(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MyApplication.myApplication.initApplication(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | dialog.show(); | 
|---|
|  |  |  | //没有选择版本先选择版本 | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String nameStr = binding.loginName.getText().toString(); | 
|---|
|  |  |  | if (TextUtils.isEmpty(psStr)) { | 
|---|
|  |  |  | TipUtil.show("请输入密码"); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ((passWordBean == null && psStr.equals("123456")) | 
|---|
|  |  |  | 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))) { | 
|---|
|  |  |  | if (MyApplication.myApplication.libraryType == 0) { | 
|---|
|  |  |  | startActivity(new Intent(LoginActivity.this, com.dayu.henanlibrary.activity.HomeActivity.class)); | 
|---|
|  |  |  | } else if (MyApplication.myApplication.libraryType == 1) { | 
|---|
|  |  |  | startActivity(new Intent(LoginActivity.this, com.dayu.qihealonelibrary.activity.HomeActivity.class)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginActivity.this.finish(); | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | } 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,MyApplication.myApplication); | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | if (!file.exists()) { | 
|---|
|  |  |  | file.mkdirs(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | passWordBean = HNBaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void getQHAlonePermission() { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取通用权限 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void getPermission() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | XXPermissions.with(this) | 
|---|
|  |  |  | .permission( | 
|---|
|  |  |  | 
|---|
|  |  |  | if (!file.exists()) { | 
|---|
|  |  |  | file.mkdirs(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | passWordBean = HNBaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst(); | 
|---|
|  |  |  | passWordBean = BaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst(); | 
|---|
|  |  |  | if (MyApplication.myApplication.libraryType == BaseCommon.NoLibrary) { | 
|---|
|  |  |  | choesLibrary(); | 
|---|
|  |  |  | //没有选择版本先选择版本 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|