From 75f59fa9a615e3584694e820ff83503e8b72ea16 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 14 三月 2025 16:55:31 +0800
Subject: [PATCH] refactor(generallibrary):重构网络请求模块

---
 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java |  356 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 319 insertions(+), 37 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 91b0873..3632ec7 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,40 @@
 package com.dayu.recharge.activity;
 
-import android.Manifest;
 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.appcompat.app.AppCompatActivity;
+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.dao.BaseDaoSingleton;
 import com.dayu.recharge.databinding.ActivityLoginBinding;
-import com.dayu.recharge.dbBean.PassWordBean;
-import com.dayu.recharge.utils.WSMD5;
-import com.permissionx.guolindev.PermissionX;
+import com.hjq.permissions.OnPermissionCallback;
+import com.hjq.permissions.Permission;
+import com.hjq.permissions.XXPermissions;
 
 import java.io.File;
+import java.util.List;
 
 
 /**
@@ -25,56 +43,320 @@
  * Date: 2023-11-10 19:52
  * Description: 鐧诲綍鐣岄潰
  */
-public class LoginActivity extends AppCompatActivity {
+public class LoginActivity extends BaseActivity {
 
     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) {
-                if ((passWordBean != null && (passWordBean.getPassWord().equals(binding.loginPw.getText().toString()) || WSMD5.getMD5Str(binding.loginPw.getText().toString()).equals("8af357996269a1b52b182a839150097d"))) || (passWordBean == null && binding.loginPw.getText().toString().equals("123456")) || WSMD5.getMD5Str(binding.loginPw.getText().toString()).equalsIgnoreCase("00A93D54CF982B18A05ADB4520D58FC8")) {
-                    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() {
-        PermissionX.init(LoginActivity.this).permissions(Manifest.permission.READ_PHONE_STATE,
-                        Manifest.permission.READ_EXTERNAL_STORAGE,
-                        Manifest.permission.WRITE_EXTERNAL_STORAGE)
-                .onExplainRequestReason((scope, deniedList) -> {
-                })
-                .request((allGranted, grantedList, deniedList) -> {
-                    if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
-                        MyApplication.myApplication.initEasySocket(false, null);
-                        try {
-                            File file = new File(BaseDaoSingleton.SqlitePath);
-                            if (!file.exists()) {
-                                file.mkdirs();
+
+    @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<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();
+                                    }
+                                }
                             }
-                            passWordBean = BaseDaoSingleton.getInstance(this).loginPsDao().findFirst();
-                        } catch (Exception e) {
-                            e.printStackTrace();
                         }
-                    } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
+
+                        @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鐗堟湰
+     * 璇ユ柟娉曠敤浜庤姹傚簲鐢ㄦ墍闇�鐨勬潈闄愶紝浠ヤ究搴旂敤鍙互姝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