mac
2023-12-06 d830fef6a2bc2ab061e6ac2b423c4a49dda3cf21
app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java
@@ -1,8 +1,12 @@
package com.hdl.photovoltaic.ui.account;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
@@ -13,6 +17,7 @@
import androidx.appcompat.content.res.AppCompatResources;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.content.ContextCompat;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
@@ -26,9 +31,17 @@
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils;
import com.hdl.photovoltaic.utils.LocalManageUtil;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
import com.hdl.photovoltaic.widget.ListDialog;
import com.hdl.photovoltaic.widget.ListStaticDialog;
import com.sahooz.library.countrypicker.Country;
import com.sahooz.library.countrypicker.CountryPickerFragment;
import com.sahooz.library.countrypicker.PickCountryCallback;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
/**
 * 注册账号界面
@@ -90,7 +103,7 @@
    private void initView() {
        switchPhoneOrMailView();
        switchPhoneOrEmailStyleView();
    }
    private void initEvent() {
@@ -101,35 +114,46 @@
                finish();
            }
        });
        //服务器选择
        viewBinding.registerRegionServerRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ListDialog listDialog = new ListDialog(_mActivity);
                ListStaticDialog listDialog = new ListStaticDialog(_mActivity);
                listDialog.show();
                listDialog.setOnHDLChinaOnListener(new ListDialog.onHDLChinaListener() {
                listDialog.setOnHDLChinaOnListener(new ListStaticDialog.onHDLChinaListener() {
                    @Override
                    public void HDLChina() {
                        mUrl = "https://china-gateway.hdlcontrol.com";
                        viewBinding.regionTv.setText(listDialog.geHDLChinaText());
                        listDialog.dismiss();
                    }
                });
                listDialog.setOnHDLBahrainListener(new ListDialog.onHDLBahrainListener() {
                listDialog.setOnHDLBahrainListener(new ListStaticDialog.onHDLBahrainListener() {
                    @Override
                    public void HDLBahrain() {
                        mUrl = "https://bahrain-gateway.hdlcontrol.com";
                        viewBinding.regionTv.setText(listDialog.getHDLBahrainText());
                        listDialog.dismiss();
                    }
                });
            }
        });
        //手机区号选择
        viewBinding.registerRegionAccountRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectArea();
            }
        });
        //切换手机号
        viewBinding.registerPhoneTitleIc.underlineCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                isPhoneType = true;
                switchPhoneOrMailView();
                switchPhoneOrEmailStyleView();
            }
        });
        //切换邮箱
@@ -137,7 +161,7 @@
            @Override
            public void onClick(View v) {
                isPhoneType = false;
                switchPhoneOrMailView();
                switchPhoneOrEmailStyleView();
            }
        });
@@ -221,7 +245,7 @@
                } else {
                    verification_code = viewBinding.registerMailVerificationEt.getText().toString();
                }
                HdlAccountLogic.getInstance().registerAccount(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                HdlAccountLogic.getInstance().registerAccount_C(isPhoneType, account, psw, verification_code, new CloudCallBeak<Boolean>() {
                    @Override
                    public void onSuccess(Boolean obj) {
                        HdlThreadLogic.runMainThread(new Runnable() {
@@ -250,6 +274,7 @@
    }
    /**
     * 发送验证码指令
     */
@@ -270,9 +295,8 @@
        HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() {
            @Override
            public void onSuccess(HDLUserRegionBean obj) {
                //发送消息验证码
                HdlThreadLogic.toast(RegisterAccountActivity.this, getString(R.string.home_login_already_exists));
                HdlLogLogic.print("regionByAccount onSuccess==" + obj);
                HdlLogLogic.print("获取账号区域信息===" + obj, false);
            }
            @Override
@@ -286,7 +310,7 @@
                        mUrl = "https://test-gz.hdlcontrol.com";
                    }
                    HDLLinkPMUser.getInstance().setUserRegionUrl(mUrl);
                    HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, "86", 1, new CloudCallBeak<Boolean>() {
                    HdlAccountLogic.getInstance().sendVerifyCode(isPhoneType, account, viewBinding.regionAccountNumberTv.getText().toString(), 1, new CloudCallBeak<Boolean>() {
                        @Override
                        public void onSuccess(Boolean obj) {
                            if (isPhoneType) {
@@ -308,6 +332,7 @@
    }
    /**
     * 初始化手机号计时器
     */
@@ -317,7 +342,7 @@
            long time = (millisUntilFinished / 1000);
            String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
            viewBinding.registerPhoneVerificationTv.setText(str);
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000,null));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null));
            viewBinding.registerPhoneVerificationTv.setEnabled(false);
        }
@@ -325,7 +350,7 @@
        @Override
        public void onFinish() {
            viewBinding.registerPhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3,null));
            viewBinding.registerPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null));
            viewBinding.registerPhoneVerificationTv.setEnabled(true);
@@ -341,7 +366,7 @@
            String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
            viewBinding.registerMailVerificationTv.setText(str);
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000,null));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null));
            viewBinding.registerMailVerificationTv.setEnabled(false);
        }
@@ -349,26 +374,42 @@
        @Override
        public void onFinish() {
            viewBinding.registerMailVerificationTv.setText(getString(R.string.home_login_verification_regain));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3,null));
            viewBinding.registerMailVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null));
            viewBinding.registerMailVerificationTv.setEnabled(true);
        }
    };
    /**
     * 国家手机号区号弹窗
     */
    private void selectArea() {
        CountryPickerFragment dialog = new CountryPickerFragment(this, new PickCountryCallback() {
            @Override
            public void onPick(Country country) {
                if (country.flag != 0)
                    viewBinding.regionAccountTv.setText(country.name);
                viewBinding.regionAccountNumberTv.setText("+" + country.code);
            }
        });
        dialog.show();
        dialog.setDialogSize();
    }
    /**
     * 切换手机号或者邮箱的样式
     */
    private void switchPhoneOrMailView() {
    private void switchPhoneOrEmailStyleView() {
        if (isPhoneType) {
            //手机号
            viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(20);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000,null));
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000, null));
            viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.VISIBLE);
            viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(16);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000,null));
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000, null));
            viewBinding.registerMailTitleIc.lineV.setVisibility(View.GONE);
            //输入手机号
@@ -393,12 +434,12 @@
            //邮箱
            viewBinding.registerPhoneTitleIc.accountTitleTv.setText(R.string.home_login_phone);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextSize(16);
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000,null));
            viewBinding.registerPhoneTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_40000000, null));
            viewBinding.registerPhoneTitleIc.lineV.setVisibility(View.GONE);
            viewBinding.registerMailTitleIc.accountTitleTv.setText(R.string.home_login_email);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextSize(20);
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000,null));
            viewBinding.registerMailTitleIc.accountTitleTv.setTextColor(getResources().getColor(R.color.text_90000000, null));
            viewBinding.registerMailTitleIc.lineV.setVisibility(View.VISIBLE);
            //输入邮箱
            viewBinding.registerAccountEt.setInputType(InputType.TYPE_CLASS_TEXT);
@@ -421,6 +462,11 @@
        }
        isCompleteEnabled();
        try {
            Country.load(this);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -467,6 +513,7 @@
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Country.destroy();
        if (phoneCountDownTimer != null) {
            phoneCountDownTimer.cancel();
            phoneCountDownTimer = null;
@@ -579,4 +626,6 @@
        }
    };
}