From e863cc5da7b0c581c65d7e16ac3aa2ff9d98e4fc Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 20 三月 2025 11:46:20 +0800
Subject: [PATCH] feat(generallibrary): 添加项目选择功能

---
 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java |  305 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 278 insertions(+), 27 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
index 8d0138b..2bc4efd 100644
--- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -1,22 +1,37 @@
 package com.dayu.recharge.activity;
 
-import android.Manifest;
+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 androidx.appcompat.app.AppCompatActivity;
 
+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.dao.BaseDaoSingleton;
 import com.dayu.recharge.databinding.ActivityLoginBinding;
-import com.dayu.recharge.dbBean.PassWordBean;
-import com.dayu.recharge.utils.TipUtil;
-import com.dayu.recharge.utils.WSMD5;
 import com.hjq.permissions.OnPermissionCallback;
 import com.hjq.permissions.Permission;
 import com.hjq.permissions.XXPermissions;
@@ -35,37 +50,111 @@
 
     ActivityLoginBinding binding;
     PassWordBean passWordBean;
+    int clickNumber;
 
     @Override
-    public void onCreate(Bundle savedInstanceState) {
+    protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         binding = ActivityLoginBinding.inflate(LayoutInflater.from(this));
         setContentView(binding.getRoot());
-        getPermission();
         initView();
+        getPermission();
+
     }
 
     private void initView() {
-        binding.loginBtn.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                String psStr = binding.loginPw.getText().toString();
-                if (TextUtils.isEmpty(psStr)) {
-                    TipUtil.show("璇疯緭鍏ュ瘑鐮�");
-                    return;
-                }
-                if ((passWordBean == null && psStr.equals("123456"))
-                        || passWordBean != null && passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(psStr))) {
-                    startActivity(new Intent(LoginActivity.this, HomeActivity.class));
-                    LoginActivity.this.finish();
-                } else {
-                    Toast.makeText(LoginActivity.this, "瀵嗙爜閿欒", Toast.LENGTH_SHORT).show();
-                }
+        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("褰撳墠鐗堟湰锛歏" + packageInfo.versionName);
+        } catch (
+                PackageManager.NameNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+
     }
 
-    private void getPermission() {
+
+    @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 {
 
 
@@ -86,13 +175,14 @@
                         public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
                             if (allGranted) {
                                 if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
-                                    MyApplication.myApplication.initEasySocket(false, null);
+
+                                    HeNanApplication.getInstance().initEasySocket(false, null);
                                     try {
-                                        File file = new File(BaseDaoSingleton.SqlitePath);
+                                        File file = new File(HNBaseDaoSingleton.SqlitePath);
                                         if (!file.exists()) {
                                             file.mkdirs();
                                         }
-                                        passWordBean = BaseDaoSingleton.getInstance(LoginActivity.this).loginPsDao().findFirst();
+
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                     }
@@ -113,4 +203,165 @@
             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鐗堟湰
+     * 璇ユ柟娉曠敤浜庤姹傚簲鐢ㄦ墍闇�鐨勬潈闄愶紝浠ヤ究搴旂敤鍙互姝e父杩愯
+     */
+    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);
+    }
 }

--
Gitblit v1.8.0