From 936fb552a30c05fc7a60c20f47bf6fccbc2dc1c1 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 27 十二月 2023 16:17:23 +0800
Subject: [PATCH] 备份一下代码

---
 app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java |  376 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 293 insertions(+), 83 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
index 5292e09..c528186 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/HomeLoginActivity.java
@@ -1,18 +1,18 @@
 package com.hdl.photovoltaic.ui;
 
 
-import android.Manifest;
-import android.content.pm.PackageManager;
+import android.content.Intent;
 import android.os.Bundle;
+import android.os.SystemClock;
 import android.text.Editable;
-import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.TextPaint;
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.text.method.HideReturnsTransformationMethod;
+import android.text.method.LinkMovementMethod;
 import android.text.method.PasswordTransformationMethod;
-import android.text.style.ForegroundColorSpan;
-import android.util.Log;
+import android.text.style.ClickableSpan;
 import android.view.View;
 import android.widget.TextView;
 
@@ -20,51 +20,54 @@
 import androidx.annotation.NonNull;
 import androidx.appcompat.content.res.AppCompatResources;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
 import com.hdl.linkpm.sdk.user.bean.HDLLoginBean;
 import com.hdl.linkpm.sdk.user.bean.HDLUserRegionBean;
 import com.hdl.linkpm.sdk.user.callback.ILoginCallBack;
-import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
-import com.hdl.photovoltaic.enums.ShowErrorMode;
-import com.hdl.photovoltaic.other.HdlFileLogic;
+import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
+import com.hdl.photovoltaic.ui.account.ChangePassword;
+import com.hdl.photovoltaic.ui.account.RegisterAccountActivity;
+import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
-import com.hdl.photovoltaic.ui.bean.LoginUserBean;
-import com.hdl.photovoltaic.ui.bean.LoginUserRegionBean;
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityHomeLoginBinding;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
-import com.hdl.photovoltaic.ui.device.FastScanActivity;
-import com.hdl.photovoltaic.uni.HDLUniMP;
-import com.hdl.photovoltaic.utils.PermissionUtils;
-import com.hdl.photovoltaic.utils.WifiUtils;
-
-import org.json.JSONException;
-import org.json.JSONObject;
+import com.hdl.photovoltaic.ui.me.WebActivity;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.TimeUtils;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog1;
+import com.hdl.photovoltaic.widget.ListDialog;
+import com.hdl.photovoltaic.widget.adapter.ListDialogAdapter;
 
 import java.util.List;
 
-
+/**
+ * 鐧诲綍鐨勭晫闈�
+ */
 public class HomeLoginActivity extends CustomBaseActivity {
 
     private ActivityHomeLoginBinding viewBinding;
 
     @Override
     public Object getContentView() {
+
+        setNotificationBarBackgroundColor(CustomColor.blue);
         viewBinding = ActivityHomeLoginBinding.inflate(getLayoutInflater());
         return viewBinding.getRoot();
     }
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+
+        setNotificationBarBackgroundColor(CustomColor.white);
+        setStatusBarTextColor();
         //鍒濆鍖�
         initView();
         //鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -97,43 +100,51 @@
 
     }
 
+    /**
+     * 鍒濆鍖朥I
+     */
     private void initView() {
+        viewBinding.homeLoginCheckBCIv.setSelected(UserConfigManage.getInstance().isBAccount());
+        viewBinding.homeLoginInstallUserTv.setSelected(UserConfigManage.getInstance().isBAccount());
+        viewBinding.homeLoginPrivacyCheckIv.setSelected(UserConfigManage.getInstance().isAcceiptPolicy());
         setStringDifferentColors(viewBinding.homeLoginPrivacyTv);
+        if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(LocalManageUtil.zh)) {
+            viewBinding.homeLoginLanguageTv.setText("绠�浣撲腑鏂�");
+        } else {
+            viewBinding.homeLoginLanguageTv.setText("English");
+        }
+
+        String acc = "13375012441";
+        String pws = "123456";
         //娴嬭瘯鐢�
-        viewBinding.homeLoginAccountEt.setText("13375012441");
-        viewBinding.homeLoginPasswordEt.setText("123456");
+        viewBinding.homeLoginAccountEt.setText(acc);
+        viewBinding.homeLoginPasswordEt.setText(pws);
         isLoginTextViewEnabled();
     }
 
+    /**
+     * 娉ㄥ唽鐩戝惉浜嬩欢
+     */
     private void initEvent() {
 
-        viewBinding.homeLoginAccountEt.addTextChangedListener(new TextWatcher() {
+        //璇█閫夋嫨
+        viewBinding.homeLoginLanguageTv.setOnClickListener(new View.OnClickListener() {
             @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            public void onClick(View v) {
+                ListDialog listDialog = new ListDialog(_mActivity);
+                listDialog.show();
+                listDialog.setCanceledOnTouchOutside(true);
+                listDialog.setItemOnclickListener(new ListDialogAdapter.OnclickListener() {
+                    @Override
+                    public void onClick(int position, LanguageAdapter.ItemData itemData) {
 
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-                Log.d("HomeLoginActivity2", String.format("CharSequence=%s,start=%s,before=%s,count=%s", s, start, before, count));
-
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                if (s.length() > 0) {
-                    if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.GONE) {
-                        viewBinding.homeLoginClearContentsIv.setVisibility(View.VISIBLE);
+                        viewBinding.homeLoginLanguageTv.setText(itemData.getTitle());
                     }
-                } else {
-                    if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.VISIBLE) {
-                        viewBinding.homeLoginClearContentsIv.setVisibility(View.GONE);
-                    }
-                }
-                isLoginTextViewEnabled();
-
+                });
             }
         });
+
+        viewBinding.homeLoginAccountEt.addTextChangedListener(accountTextWatcher);
         viewBinding.homeLoginClearContentsIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -141,22 +152,7 @@
             }
         });
 
-        viewBinding.homeLoginPasswordEt.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-                isLoginTextViewEnabled();
-            }
-        });
+        viewBinding.homeLoginPasswordEt.addTextChangedListener(passwordTextWatcher);
         viewBinding.homeLoginHideIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -177,17 +173,39 @@
             }
         });
 
-
-        viewBinding.homeLoginCheckIv.setOnClickListener(new View.OnClickListener() {
+        //閫夋嫨b绔紝c绔�
+        viewBinding.homeLoginInstallUserTv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 v.setSelected(!v.isSelected());
+                UserConfigManage.getInstance().setBAccount(v.isSelected());
+                viewBinding.homeLoginCheckBCIv.setSelected(UserConfigManage.getInstance().isBAccount());
+                if (UserConfigManage.getInstance().isBAccount()) {
+                    viewBinding.homeLoginRegisterTv.setVisibility(View.GONE);
+                } else {
+                    viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE);
+                }
             }
         });
+        //閫夋嫨b绔紝c绔�
+        viewBinding.homeLoginCheckBCIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                v.setSelected(!v.isSelected());
+                UserConfigManage.getInstance().setBAccount(v.isSelected());
+                if (UserConfigManage.getInstance().isBAccount()) {
+                    viewBinding.homeLoginRegisterTv.setVisibility(View.GONE);
+                } else {
+                    viewBinding.homeLoginRegisterTv.setVisibility(View.VISIBLE);
+                }
+            }
+        });
+        //闅愮鍗忚
         viewBinding.homeLoginPrivacyCheckIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 v.setSelected(!v.isSelected());
+                UserConfigManage.getInstance().setAcceiptPolicy(v.isSelected());
             }
         });
         //鐧诲綍
@@ -201,17 +219,18 @@
                 if (!isLogin) {
                     return;
                 }
-//                boolean isSelected = viewBinding.homeLoginPrivacyCheckIv.isSelected();
-//                if(!isSelected){
-//                    //闅愮鍗忚鎻愮ず
-//                    return;
-//                }
-                Log.d("娴嬭瘯涓�", "123456789");
-                showLoading(getString(R.string.home_login_鐧诲綍涓�));
+                boolean isSelected = UserConfigManage.getInstance().isAcceiptPolicy();
+                if (!isSelected) {
+                    //闅愮鍗忚鎻愮ず
+                    getDialog();
+                    return;
+                }
+                showLoading(getString(R.string.home_login_be_logging_in));
                 HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() {
                     @Override
                     public void onSuccess(HDLUserRegionBean obj) {
-                        AppConfigManage.setUserRegionUrl("http://59.41.255.150:7777");//obj.getRegionUrl()
+                        //鍒濆鍖栨湇鍔″煙鍚�
+                        AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
                         HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
                         HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() {
                             @Override
@@ -223,6 +242,7 @@
                                         HdlResidenceLogic.getInstance().setHouseIdList(obj);
                                         restoreButtonStyleToInitializeState();
                                         startActivity(MyPowerStationActivity.class);
+                                        finish();
                                     }
 
                                     @Override
@@ -230,13 +250,31 @@
                                         hideLoading();
                                         restoreButtonStyleToInitializeState();
                                         startActivity(MyPowerStationActivity.class);
+                                        finish();
                                     }
                                 });
                             }
 
                             @Override
-                            public void onFailure(HDLException exception) {
+                            public void onFailure(HDLException e) {
                                 hideLoading();
+                                if (e.getCode() == 10019) {
+                                    //鐢ㄦ埛宸茬粡琚攣瀹氶敊璇爜
+                                    try {
+                                        if (e.getmExtra() != null) {
+                                            if (System.currentTimeMillis() < e.getmExtra().getUnlockTime()) {
+                                                long time = e.getmExtra().getUnlockTime() - System.currentTimeMillis();
+                                                int minute = Integer.parseInt(TimeUtils.getMinuteTime(time));
+                                                HdlThreadLogic.toast(_mActivity, e.getMsg() + "鍓╀綑" + minute + "鍒嗛挓" + "(" + e.getCode() + ")");
+                                            }
+                                        }
+                                    } catch (Exception ee) {
+                                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
+                                    }
+
+                                } else {
+                                    HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
+                                }
                             }
                         });
                     }
@@ -244,6 +282,7 @@
                     @Override
                     public void onFailure(HDLException e) {
                         hideLoading();
+                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
                     }
                 });
 
@@ -254,9 +293,28 @@
         viewBinding.homeLoginExperienceTv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                v.setSelected(!v.isSelected());
+                UserConfigManage.getInstance().setUserExperience(v.isSelected());
 //                requestPermissions();
 //                startActivity(MyPowerStationActivity.class);
-                HdlFileLogic.getInstance().deleteDirectory(HdlFileLogic.getInstance().getCurrentHomeRootPath());
+            }
+        });
+        //娉ㄥ唽
+        viewBinding.homeLoginRegisterTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(HomeLoginActivity.this, RegisterAccountActivity.class);
+                startActivity(intent);
+            }
+        });
+        //蹇樿瀵嗙爜
+        viewBinding.homeLoginForgetPasswordTv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(HomeLoginActivity.this, ChangePassword.class);
+                startActivity(intent);
             }
         });
 
@@ -270,6 +328,13 @@
         String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", "");
         boolean isEnabled = account.length() > 0 && password.length() > 0;
         viewBinding.homeLoginTv.setEnabled(isEnabled);
+        if (password.length() < 6 || password.length() > 16) {
+            return;
+        }
+        //绗﹀悎瀵嗙爜瑙勫垯鍚庨殣钘忛敊璇彁绀猴紱
+        viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_E1E1E1));
+        viewBinding.homeLoginPasswordTextErrorTv.setText("");
+
     }
 
     /**
@@ -283,19 +348,19 @@
     private boolean isLocalCheckAccountAndPassword(String account, String password) {
         if (TextUtils.isEmpty(account)) {
             viewBinding.homeLoginLine1V.setBackgroundColor(getColor(R.color.text_D34545));
-            viewBinding.homeLoginAccountTextErrorTv.setText(R.string.home_login_error_璐﹀彿涓嶈兘涓虹┖);
+            viewBinding.homeLoginAccountTextErrorTv.setText(R.string.home_login_error_account_null);
             return false;
         }
         if (TextUtils.isEmpty(password)) {
             viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545));
-            viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_瀵嗙爜涓嶈兘涓虹┖);
+            viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_password_null);
             return false;
         }
 
 
         if (password.length() < 6 || password.length() > 16) {
             viewBinding.homeLoginLine2V.setBackgroundColor(getColor(R.color.text_D34545));
-            viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_鏈�灏�6_16涓瓧绗�);
+            viewBinding.homeLoginPasswordTextErrorTv.setText(R.string.home_login_error_6_16_str);
             return false;
         }
         return true;
@@ -318,17 +383,162 @@
     }
 
     /**
-     * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹�
+     * 璁剧疆涓�涓插瓧绗﹀绉嶉鑹蹭互鍙婄偣鍑讳簨浠�
      *
-     * @param view 褰撳墠缁勪欢
+     * @param textView 褰撳墠缁勪欢
      */
-    private void setStringDifferentColors(TextView view) {
-        String s = view.getText().toString();
+    private void setStringDifferentColors(TextView textView) {
+
+        if (textView == null) {
+            return;
+        }
+
+        String s = textView.getText().toString();
+
+        int startIndex1 = s.indexOf("銆�");
+        int endIndex1 = s.indexOf("銆�") + 1;
+
+        int startIndex2 = s.lastIndexOf("銆�");
+        int endIndex2 = s.lastIndexOf("銆�") + 1;
+
         SpannableStringBuilder spannable = new SpannableStringBuilder(s);
         //璁剧疆鏂囧瓧鐨勫墠鏅壊
-        spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), 2, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
-        spannable.setSpan(new ForegroundColorSpan(getColor(R.color.text_245EC3)), 9, 19, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
-        view.setText(spannable);
+        if (textView.getTag() != null && textView.getTag().toString().equals("click")) {
+            spannable.setSpan(new ClickableSpan() {
+                @Override
+                public void onClick(@NonNull View widget) {
+                    //todo 闇�瑕佽烦杞埌鏈嶅姟鍗忚鐣岄潰
+                    Intent intent = new Intent();
+                    intent.putExtra("type", WebActivity.ServiceAgreement);
+                    intent.setClass(_mActivity, WebActivity.class);
+                    startActivity(intent);
+                }
+
+                @Override
+                public void updateDrawState(@NonNull TextPaint ds) {
+                    super.updateDrawState(ds);
+                    //璁剧疆瀛椾綋棰滆壊
+                    ds.setColor(getResources().getColor(R.color.text_245EC3, null));
+                    // 鍘绘帀涓嬪垝绾�
+                    ds.setUnderlineText(false);
+                }
+
+
+            }, startIndex1, endIndex1, 0);
+
+            spannable.setSpan(new ClickableSpan() {
+                @Override
+                public void onClick(@NonNull View widget) {
+                    //todo 闇�瑕佽烦杞埌闅愮鐣岄潰
+                    Intent intent = new Intent();
+                    intent.putExtra("type", WebActivity.PrivacyAgreement);
+                    intent.setClass(_mActivity, WebActivity.class);
+                    startActivity(intent);
+                }
+
+                @Override
+                public void updateDrawState(@NonNull TextPaint ds) {
+                    super.updateDrawState(ds);
+                    //璁剧疆瀛椾綋棰滆壊
+                    ds.setColor(getResources().getColor(R.color.text_245EC3, null));
+                    // 鍘绘帀涓嬪垝绾�
+                    ds.setUnderlineText(false);
+                }
+
+
+            }, startIndex2, endIndex2, 0);
+
+
+        }
+        textView.setText(spannable);
+        //涓�旈亣鍒扮偣鍑诲悗瀛椾綋鏄剧ず楂樹寒锛屽彇娑堥珮浜�
+        textView.setHighlightColor(getResources().getColor(R.color.text_00000000, null));
+        //鏈�鍚庤缃彲鐐瑰嚮锛屽繀椤诲疄鐜帮紝鍚﹀垯鍙兘鏄剧ず鏍峰紡锛屾棤娉曞疄鐜扮偣鍑绘晥鏋�
+        textView.setMovementMethod(LinkMovementMethod.getInstance());
+
+    }
+
+
+    /**
+     * 寮圭獥
+     */
+    private void getDialog() {
+        ConfirmationCancelDialog1 dialog = new ConfirmationCancelDialog1(_mActivity);
+        dialog.setTitle(getString(R.string.loading_privacy));
+        dialog.setContent(getString(R.string.loading_privacy_server));
+        dialog.show();
+        setStringDifferentColors(dialog.getContentTextView());
+        dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+            @Override
+            public void Confirm() {
+
+                UserConfigManage.getInstance().setAcceiptPolicy(true);
+                viewBinding.homeLoginPrivacyCheckIv.setSelected(true);
+                dialog.dismiss();
+            }
+        });
+        dialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
+            @Override
+            public void Cancel() {
+                UserConfigManage.getInstance().setAcceiptPolicy(false);
+                viewBinding.homeLoginPrivacyCheckIv.setSelected(false);
+                dialog.dismiss();
+            }
+        });
+
+    }
+
+    /**
+     * 杈撳叆璐﹀彿
+     */
+    private final TextWatcher accountTextWatcher = new TextWatcher() {
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            if (s.length() > 0) {
+                if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.GONE) {
+                    viewBinding.homeLoginClearContentsIv.setVisibility(View.VISIBLE);
+                }
+            } else {
+                if (viewBinding.homeLoginClearContentsIv.getVisibility() == View.VISIBLE) {
+                    viewBinding.homeLoginClearContentsIv.setVisibility(View.GONE);
+                }
+            }
+            isLoginTextViewEnabled();
+        }
+    };
+    /**
+     * 杈撳叆瀵嗙爜
+     */
+    private final TextWatcher passwordTextWatcher = new TextWatcher() {
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+        }
+
+        @Override
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            isLoginTextViewEnabled();
+        }
+    };
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        viewBinding.homeLoginAccountEt.removeTextChangedListener(accountTextWatcher);
+        viewBinding.homeLoginPasswordEt.removeTextChangedListener(passwordTextWatcher);
     }
 
 

--
Gitblit v1.8.0