From d830fef6a2bc2ab061e6ac2b423c4a49dda3cf21 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 06 十二月 2023 18:08:26 +0800
Subject: [PATCH] 2023年12月06日18:08:20

---
 app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java |   89 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 69 insertions(+), 20 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java
index 5cc5a34..6e30683 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/account/RegisterAccountActivity.java
+++ b/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 @@
 
         }
     };
+
+
 }
\ No newline at end of file

--
Gitblit v1.8.0