From 3ccff7173fb73322f7785d8eaedc90a1b5d8765d Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 10 十二月 2024 22:44:03 +0800
Subject: [PATCH] 2024年12月10日22:43:59

---
 app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java |  327 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 202 insertions(+), 125 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java b/app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
index b60bbd8..7ed0190 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
@@ -1,17 +1,22 @@
 package com.hdl.photovoltaic.ui.account;
 
-import android.app.AppComponentFactory;
+
 import android.os.Bundle;
 import android.os.CountDownTimer;
 import android.text.Editable;
 import android.text.InputType;
+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.PasswordTransformationMethod;
+import android.text.style.ClickableSpan;
 import android.view.View;
+import android.widget.TextView;
 
-import androidx.appcompat.app.AppCompatActivity;
+
+import androidx.annotation.NonNull;
 import androidx.appcompat.content.res.AppCompatResources;
 
 import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -20,15 +25,17 @@
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.base.CustomBaseActivity;
 import com.hdl.photovoltaic.config.AppConfigManage;
+import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityChangePasswordBinding;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlAccountLogic;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
 
 /**
- * 淇敼璐﹀彿鐣岄潰
+ * 蹇樿瀵嗙爜鐣岄潰
  */
 public class ChangePassword extends CustomBaseActivity {
     ActivityChangePasswordBinding viewBinding;
@@ -53,6 +60,8 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+        setStatusBarTranslucent();
+        getWindow().setNavigationBarColor(getColor(R.color.text_00000000));
         //鍒濆鍖�
         initView();
         //鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -64,7 +73,10 @@
      */
     private void initView() {
         switchPhoneOrMailView();
+        HdlCommonLogic.getInstance().setSpan(viewBinding.changePhoneVerificationTv, viewBinding.changePhoneVerificationTv.getText().toString(), true,null);
+        HdlCommonLogic.getInstance().setSpan(viewBinding.changeMailVerificationTv, viewBinding.changeMailVerificationTv.getText().toString(), true,null);
     }
+
 
     /**
      * 璁剧疆鐩戝惉浜嬩欢
@@ -97,22 +109,7 @@
             }
         });
         //杈撳叆鎵嬫満鍙锋垨鑰呴偖绠�
-        viewBinding.changeAccountEt.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) {
-                isCompleteEnabled();
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        });
+        viewBinding.changeAccountEt.addTextChangedListener(accountTextWatcher);
         //鎵嬫満鍙疯幏鍙栭獙璇佺爜
         viewBinding.changePhoneVerificationTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -122,22 +119,7 @@
             }
         });
         //杈撳叆鎵嬫満楠岃瘉鐮�
-        viewBinding.changePhoneVerificationEt.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) {
-                isCompleteEnabled();
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        });
+        viewBinding.changePhoneVerificationEt.addTextChangedListener(phoneVerificationTextWatcher);
         //閭鑾峰彇楠岃瘉鐮�
         viewBinding.changeMailVerificationTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -147,39 +129,9 @@
             }
         });
         //杈撳叆閭楠岃瘉鐮�
-        viewBinding.changeMailVerificationEt.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) {
-                isCompleteEnabled();
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        });
+        viewBinding.changeMailVerificationEt.addTextChangedListener(MailVerificationTextWatcher);
         //杈撳叆瀵嗙爜
-        viewBinding.changePswEt.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) {
-                isCompleteEnabled();
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        });
+        viewBinding.changePswEt.addTextChangedListener(changePswTextWatcher);
         //瀵嗙爜鏄剧ず鎴栬�呴殣钘�
         viewBinding.changePswHideIv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -201,22 +153,7 @@
             }
         });
         //杈撳叆纭瀵嗙爜
-        viewBinding.changeConfirmPswEt.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) {
-                isCompleteEnabled();
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-
-            }
-        });
+        viewBinding.changeConfirmPswEt.addTextChangedListener(changeConfirmPswTextWatcher);
         //纭瀵嗙爜鏄剧ず鎴栬�呴殣钘�
         viewBinding.changeConfirmPswHideIv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -251,30 +188,57 @@
                 } else {
                     verification_code = viewBinding.changeMailVerificationEt.getText().toString();
                 }
-                HdlAccountLogic.getInstance().changePassword(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
-                    @Override
-                    public void onSuccess(Boolean obj) {
-                        HdlThreadLogic.runMainThread(new Runnable() {
-                            @Override
-                            public void run() {
-                                ConfirmationTipDialog dialog = new ConfirmationTipDialog(_mActivity);
-                                dialog.show();
-                                dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
-                                    @Override
-                                    public void Confirm() {
-                                        finish();
-                                    }
-                                });
-                            }
-                        }, null, null);
+                if (UserConfigManage.getInstance().isBAccount()) {
+                    HdlAccountLogic.getInstance().changePassword_B(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
+                        @Override
+                        public void onSuccess(Boolean obj) {
+                            HdlThreadLogic.runMainThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    ConfirmationTipDialog dialog = new ConfirmationTipDialog(_mActivity);
+                                    dialog.show();
+                                    dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+                                        @Override
+                                        public void Confirm() {
+                                            finish();
+                                        }
+                                    });
+                                }
+                            }, null, null);
 
-                    }
+                        }
 
-                    @Override
-                    public void onFailure(HDLException e) {
+                        @Override
+                        public void onFailure(HDLException e) {
+                            HdlThreadLogic.toast(_mActivity, e);
+                        }
+                    });
+                } else {
+                    HdlAccountLogic.getInstance().changePassword_C(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
+                        @Override
+                        public void onSuccess(Boolean obj) {
+                            HdlThreadLogic.runMainThread(new Runnable() {
+                                @Override
+                                public void run() {
+                                    ConfirmationTipDialog dialog = new ConfirmationTipDialog(_mActivity);
+                                    dialog.show();
+                                    dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+                                        @Override
+                                        public void Confirm() {
+                                            finish();
+                                        }
+                                    });
+                                }
+                            }, null, null);
 
-                    }
-                });
+                        }
+
+                        @Override
+                        public void onFailure(HDLException e) {
+                            HdlThreadLogic.toast(_mActivity, e);
+                        }
+                    });
+                }
             }
         });
 
@@ -294,9 +258,12 @@
             }
             return;
         }
+        //鑾峰彇璐﹀彿鍖哄煙淇℃伅
         HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() {
+            //鍙戦�佹秷鎭獙璇佺爜
             @Override
             public void onSuccess(HDLUserRegionBean obj) {
+                //璁剧疆璐﹀彿鎵�鍦ㄥ尯鍩熷崗璁強鍦板潃
                 AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
                 HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
                 HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, "86", 2, new CloudCallBeak<Boolean>() {
@@ -311,14 +278,15 @@
 
                     @Override
                     public void onFailure(HDLException e) {
-
+                        HdlThreadLogic.toast(_mActivity, e);
                     }
                 });
             }
 
             @Override
             public void onFailure(HDLException e) {
-                hideLoading();
+                HdlThreadLogic.toast(_mActivity, e);
+//                hideLoading();
             }
         });
     }
@@ -332,7 +300,7 @@
             long time = (millisUntilFinished / 1000);
             String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
             viewBinding.changePhoneVerificationTv.setText(str);
-            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000));
+//            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
             viewBinding.changePhoneVerificationTv.setEnabled(false);
 
         }
@@ -340,7 +308,7 @@
         @Override
         public void onFinish() {
             viewBinding.changePhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
-            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3));
+//            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
             viewBinding.changePhoneVerificationTv.setEnabled(true);
 
 
@@ -356,7 +324,7 @@
             String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
 
             viewBinding.changeMailVerificationTv.setText(str);
-            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000));
+//            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
             viewBinding.changeMailVerificationTv.setEnabled(false);
 
         }
@@ -364,7 +332,7 @@
         @Override
         public void onFinish() {
             viewBinding.changeMailVerificationTv.setText(getString(R.string.home_login_verification_regain));
-            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3));
+//            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
             viewBinding.changeMailVerificationTv.setEnabled(true);
 
         }
@@ -376,19 +344,19 @@
     private void switchPhoneOrMailView() {
         if (isPhoneType) {
             //鎵嬫満鍙�
-            viewBinding.changePhoneIc.accountTitleTv.setText(R.string.home_login_鎵嬫満鍙�);
-            viewBinding.changePhoneIc.accountTitleTv.setTextSize(20);
-            viewBinding.changePhoneIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000));
-            viewBinding.changePhoneIc.lineV.setVisibility(View.VISIBLE);
+            viewBinding.changePhoneIc.accountTitleTv.setText(R.string.home_login_phone);
+            viewBinding.changePhoneIc.accountTitleTv.setTextSize(18);
+            viewBinding.changePhoneIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
+            viewBinding.changePhoneIc.lineV.setVisibility(View.GONE);
 
-            viewBinding.changeMailRl.accountTitleTv.setText(R.string.home_login_閭);
-            viewBinding.changeMailRl.accountTitleTv.setTextSize(16);
-            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000));
+            viewBinding.changeMailRl.accountTitleTv.setText(R.string.home_login_email);
+            viewBinding.changeMailRl.accountTitleTv.setTextSize(14);
+            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_66FFFFFF));
             viewBinding.changeMailRl.lineV.setVisibility(View.GONE);
 
             //杈撳叆鎵嬫満鍙�
             viewBinding.changeAccountEt.setInputType(InputType.TYPE_CLASS_NUMBER);
-            viewBinding.changeAccountEt.setHint(R.string.home_login_璇疯緭鍏ユ墜鏈哄彿);
+            viewBinding.changeAccountEt.setHint(R.string.home_login_input_phone);
             //鏄剧ず鎵嬫満鍙烽獙璇佺爜锛岄殣钘忛偖绠遍獙璇佺爜,
             viewBinding.changePhoneVerificationCodeRl.setVisibility(View.VISIBLE);
             viewBinding.changeMailVerificationCodeRl.setVisibility(View.GONE);
@@ -406,15 +374,15 @@
 
         } else {
             //閭
-            viewBinding.changePhoneIc.accountTitleTv.setText(R.string.home_login_鎵嬫満鍙�);
-            viewBinding.changePhoneIc.accountTitleTv.setTextSize(16);
-            viewBinding.changePhoneIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000));
+            viewBinding.changePhoneIc.accountTitleTv.setText(R.string.home_login_phone);
+            viewBinding.changePhoneIc.accountTitleTv.setTextSize(14);
+            viewBinding.changePhoneIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_66FFFFFF));
             viewBinding.changePhoneIc.lineV.setVisibility(View.GONE);
 
-            viewBinding.changeMailRl.accountTitleTv.setText(R.string.home_login_閭);
-            viewBinding.changeMailRl.accountTitleTv.setTextSize(20);
-            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000));
-            viewBinding.changeMailRl.lineV.setVisibility(View.VISIBLE);
+            viewBinding.changeMailRl.accountTitleTv.setText(R.string.home_login_email);
+            viewBinding.changeMailRl.accountTitleTv.setTextSize(18);
+            viewBinding.changeMailRl.accountTitleTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
+            viewBinding.changeMailRl.lineV.setVisibility(View.GONE);
             //杈撳叆閭
             viewBinding.changeAccountEt.setInputType(InputType.TYPE_CLASS_TEXT);
             viewBinding.changeAccountEt.setHint(R.string.home_login_input_mail);
@@ -453,6 +421,11 @@
             verification_code = viewBinding.changeMailVerificationEt.getText().toString();
         }
         boolean isEnabled = account.length() > 0 && psw1.length() > 0 && psw2.length() > 0 && verification_code.length() > 0;
+        if (isEnabled) {
+            viewBinding.confirmTv.setTextColor(getColor(R.color.text_E6FFFFFF));
+        } else {
+            viewBinding.confirmTv.setTextColor(getColor(R.color.text_66FFFFFF));
+        }
         viewBinding.confirmTv.setEnabled(isEnabled);
     }
 
@@ -490,5 +463,109 @@
             mailCountDownTimer.cancel();
             mailCountDownTimer = null;
         }
+        viewBinding.changeAccountEt.removeTextChangedListener(accountTextWatcher);
+        viewBinding.changePhoneVerificationEt.removeTextChangedListener(phoneVerificationTextWatcher);
+        viewBinding.changeMailVerificationEt.removeTextChangedListener(MailVerificationTextWatcher);
+        viewBinding.changePswEt.removeTextChangedListener(changePswTextWatcher);
+        viewBinding.changeConfirmPswEt.removeTextChangedListener(changeConfirmPswTextWatcher);
     }
+
+
+    /**
+     * 杈撳叆鎵嬫満鍙锋垨鑰呴偖绠�
+     */
+    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) {
+            isCompleteEnabled();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
+    /**
+     * 杈撳叆鎵嬫満楠岃瘉鐮�
+     */
+    private final TextWatcher phoneVerificationTextWatcher = 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) {
+            isCompleteEnabled();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
+
+    /**
+     * 閭鑾峰彇楠岃瘉鐮�
+     */
+    private final TextWatcher MailVerificationTextWatcher = 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) {
+            isCompleteEnabled();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
+
+    /**
+     * 杈撳叆瀵嗙爜
+     */
+    private final TextWatcher changePswTextWatcher = 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) {
+            isCompleteEnabled();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
+    /**
+     * 杈撳叆纭瀵嗙爜
+     */
+    private final TextWatcher changeConfirmPswTextWatcher = 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) {
+            isCompleteEnabled();
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+
+        }
+    };
 }
\ No newline at end of file

--
Gitblit v1.8.0