wjc
2026-01-15 11409771024381e06173490d846bf121e6a19552
app/src/main/java/com/hdl/photovoltaic/ui/account/ChangePassword.java
@@ -5,18 +5,13 @@
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.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -27,10 +22,13 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityChangePasswordBinding;
import com.hdl.photovoltaic.enums.Languages;
import com.hdl.photovoltaic.enums.VerifyType;
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.utils.GPSManagerUtils;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
import com.sahooz.library.countrypicker.Country;
@@ -75,14 +73,65 @@
     * 初始化界面
     */
    private void initView() {
        switchPhoneOrMailView();
        try {
            Country.load(this);
        } catch (Exception e) {
            e.printStackTrace();
        if (UserConfigManage.getInstance().getCurrentAppLanguage().equals(Languages.zh)) {
            viewBinding.regionAccountTv.setText(getText(R.string.home_chinese_mainland));
            viewBinding.regionAccountNumberTv.setText("+86");
        } else {
            viewBinding.regionAccountTv.setText(getText(R.string.iraq));
            viewBinding.regionAccountNumberTv.setText("+964");
        }
        switchPhoneOrMailView();
//        try {
//            Country.load(this);
//            Country country = null;
//            if (TextUtils.isEmpty(GPSManagerUtils.getInstance().getCountryCode(this))) {
//                //再根据系统语言
//                country = Country.getCountryInfo();
//            } else {
//                //先根据定位
//                country = Country.getLocationCountryInfo(GPSManagerUtils.getInstance().getCountryCode(this));
//            }
//            if (country != null) {
//                viewBinding.regionAccountTv.setText(country.translate);
//                viewBinding.regionAccountNumberTv.setText("+" + country.code);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        new Thread(
                new Runnable() {
                    @Override
                    public void run() {
                        try {
                            final Country[] country = new Country[1];
                            Country.load(_mActivity);
                            if (TextUtils.isEmpty(GPSManagerUtils.getInstance().getCountryCode(_mActivity))) {
                                //再根据系统语言
                                country[0] = Country.getCountryInfo();
                            } else {
                                //先根据定位
                                country[0] = Country.getLocationCountryInfo(GPSManagerUtils.getInstance().getCountryCode(_mActivity));
                            }
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    if (country != null) {
                                        viewBinding.regionAccountTv.setText(country[0].translate);
                                        viewBinding.regionAccountNumberTv.setText("+" + country[0].code);
                                    }
                                }
                            });
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
        ).start();
        HdlCommonLogic.getInstance().setSpan(viewBinding.changePhoneVerificationTv, viewBinding.changePhoneVerificationTv.getText().toString(), true, null);
        HdlCommonLogic.getInstance().setSpan(viewBinding.changeMailVerificationTv, viewBinding.changeMailVerificationTv.getText().toString(), true, null);
        if (UserConfigManage.getInstance().isArabicLanguage()) {
            viewBinding.changeBackTv.setRotation(180); // 旋转180度
        }
    }
@@ -205,7 +254,7 @@
                    verification_code = viewBinding.changeMailVerificationEt.getText().toString();
                }
                if (UserConfigManage.getInstance().isBAccount()) {
                    HdlAccountLogic.getInstance().changePassword_B(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().changePassword_B(isPhoneType, account, psw, verification_code, viewBinding.regionAccountNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            HdlThreadLogic.runMainThread(new Runnable() {
@@ -230,7 +279,7 @@
                        }
                    });
                } else {
                    HdlAccountLogic.getInstance().changePassword_C(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().changePassword_C(isPhoneType, account, psw, verification_code, viewBinding.regionAccountNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            HdlThreadLogic.runMainThread(new Runnable() {
@@ -267,7 +316,7 @@
        CountryPickerFragment dialog = new CountryPickerFragment(this, new PickCountryCallback() {
            @Override
            public void onPick(Country country) {
                if (country.flag != 0) viewBinding.regionAccountTv.setText(country.name);
                if (country.flag != 0) viewBinding.regionAccountTv.setText(country.translate);
                viewBinding.regionAccountNumberTv.setText("+" + country.code);
            }
        });
@@ -297,21 +346,43 @@
                //设置账号所在区域协议及地址
                AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
                HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
                HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), 2, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        if (isPhoneType) {
                            phoneCountDownTimer.start();
                        } else {
                            mailCountDownTimer.start();
                        }
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        HdlThreadLogic.toast(_mActivity, e);
                    }
                });
                if (UserConfigManage.getInstance().isBAccount()) {
                    //B端发送获取验证码
                    HdlAccountLogic.getInstance().sendVerifyCode_B(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), VerifyType.VerifyType_FIND_PASSWORD, new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            if (isPhoneType) {
                                phoneCountDownTimer.start();
                            } else {
                                mailCountDownTimer.start();
                            }
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HdlThreadLogic.toast(_mActivity, e);
                        }
                    });
                } else {
                    //C端发送获取验证码
                    HdlAccountLogic.getInstance().sendVerifyCode_C(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), VerifyType.VerifyType_2, new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            if (isPhoneType) {
                                phoneCountDownTimer.start();
                            } else {
                                mailCountDownTimer.start();
                            }
                        }
                        @Override
                        public void onFailure(HDLException e) {
                            HdlThreadLogic.toast(_mActivity, e);
                        }
                    });
                }
            }
            @Override
@@ -331,7 +402,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_E6FFFFFF));
//            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changePhoneVerificationTv.setEnabled(false);
        }
@@ -339,7 +410,7 @@
        @Override
        public void onFinish() {
            viewBinding.changePhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
//            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
//            viewBinding.changePhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changePhoneVerificationTv.setEnabled(true);
@@ -355,7 +426,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_E6FFFFFF));
//            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changeMailVerificationTv.setEnabled(false);
        }
@@ -363,7 +434,7 @@
        @Override
        public void onFinish() {
            viewBinding.changeMailVerificationTv.setText(getString(R.string.home_login_verification_regain));
//            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_E6FFFFFF));
//            viewBinding.changeMailVerificationTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changeMailVerificationTv.setEnabled(true);
        }
@@ -377,12 +448,12 @@
            //手机号
            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.accountTitleTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changePhoneIc.lineV.setVisibility(View.VISIBLE);
            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.accountTitleTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
            viewBinding.changeMailRl.lineV.setVisibility(View.GONE);
@@ -409,12 +480,12 @@
            //邮箱
            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.accountTitleTv.setTextColor(getResources().getColor(R.color.text_FF5B5B5B));
            viewBinding.changePhoneIc.lineV.setVisibility(View.GONE);
            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.accountTitleTv.setTextColor(getResources().getColor(R.color.text_FFACACAC));
            viewBinding.changeMailRl.lineV.setVisibility(View.VISIBLE);
            viewBinding.regionAccountRl.setVisibility(View.GONE);
@@ -457,9 +528,9 @@
        }
        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));
            viewBinding.confirmTv.setTextColor(getColor(R.color.text_FFACACAC));
        } else {
            viewBinding.confirmTv.setTextColor(getColor(R.color.text_66FFFFFF));
            viewBinding.confirmTv.setTextColor(getColor(R.color.text_FF5B5B5B));
        }
        viewBinding.confirmTv.setEnabled(isEnabled);
    }