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,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(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 河南版的获取权限 
 | 
     */ 
 | 
    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); 
 | 
    } 
 | 
} 
 |