From cf761dbce02ea1da7682265853354ca74dc2c31f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 26 八月 2025 17:30:42 +0800
Subject: [PATCH] 2025年08月26日17:30:41
---
app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 156 insertions(+), 15 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java
index 2e3db38..cb5864d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/BindPhoneActivity.java
@@ -1,10 +1,11 @@
package com.hdl.photovoltaic.ui.me;
-import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
+import android.text.Editable;
import android.text.TextUtils;
+import android.text.TextWatcher;
import android.view.View;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -12,10 +13,16 @@
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.ActivityBindPhoneBinding;
+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.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.utils.GPSManagerUtils;
+import com.sahooz.library.countrypicker.Country;
+import com.sahooz.library.countrypicker.CountryPickerFragment;
+import com.sahooz.library.countrypicker.PickCountryCallback;
/**
* 淇敼缁戝畾鎵嬫満鍙风殑鐣岄潰
@@ -32,8 +39,8 @@
@Override
public void onBindView(Bundle savedInstanceState) {
- setNotificationBarBackgroundColor(CustomColor.white);
- setStatusBarTextColor();
+ setStatusBarTranslucent();
+ getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
//鍒濆鍖�
initView();
//鍒濆鍖栫晫闈㈢洃鍚櫒
@@ -43,11 +50,17 @@
private void initEvent() {
- viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setOnClickListener(new View.OnClickListener() {
+ viewBinding.toolbarTopRl.topBackLl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(20);
finish();
+ }
+ });
+ viewBinding.bindAreaParentRl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ selectArea();
}
});
@@ -64,18 +77,24 @@
viewBinding.bindPhoneEt.setText("");
}
});
+
+ //杈撳叆璐﹀彿
+ viewBinding.bindPhoneEt.addTextChangedListener(accountTextWatcher);
+ //杈撳叆楠岃瘉鐮�
+ viewBinding.changePhoneVerificationEt.addTextChangedListener(verificationCodeTextWatcher);
viewBinding.bindPhoneTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (isLocalCheck()) {
+ if (isEnabled()) {
String phoneStr = viewBinding.bindPhoneEt.getText().toString();
String verificationStr = viewBinding.changePhoneVerificationEt.getText().toString();
- HdlAccountLogic.getInstance().bindingAccount_C(phoneStr, "", verificationStr, new CloudCallBeak<Boolean>() {
+ HdlAccountLogic.getInstance().bindingAccount_C(phoneStr, "", verificationStr, viewBinding.bindAreaNumberTv.getText().toString(), new CloudCallBeak<Boolean>() {
@Override
public void onSuccess(Boolean obj) {
UserConfigManage.getInstance().setBingPhone(phoneStr);
UserConfigManage.getInstance().Save();
- HdlThreadLogic.tipFlashingBox(_mActivity, true, getString(R.string.set_bind_phone_succeed), 0);
+ setResult(20);
+ finish();
}
@Override
@@ -90,10 +109,51 @@
}
private void initView() {
- viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setText(R.string.set_change_bind_phone_number);
- viewBinding.toolbarTopFragmentHouseListRl.topTitleTv.setTextColor(getResources().getColor(R.color.text_030D1C, null));
- viewBinding.toolbarTopFragmentHouseListRl.topBackBtn.setVisibility(View.VISIBLE);
- viewBinding.toolbarTopFragmentHouseListRl.topBarView.setBackgroundColor(getResources().getColor(R.color.text_FFFFFFFF, null));
+ if (UserConfigManage.getInstance().isZh()) {
+ viewBinding.bindAreaTv.setText(getText(R.string.home_chinese_mainland));
+ viewBinding.bindAreaNumberTv.setText("+86");
+ } else {
+ viewBinding.bindAreaTv.setText(getText(R.string.iraq));
+ viewBinding.bindAreaNumberTv.setText("+964");
+ }
+ viewBinding.toolbarTopRl.topTitleTv.setText(R.string.set_change_bind_phone_number);
+ viewBinding.toolbarTopRl.topBackLl.setVisibility(View.VISIBLE);
+ checkClearIconShowOrNot(viewBinding.bindPhoneEt.getText().toString());
+ 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.bindAreaTv.setText(country.translate);
+ viewBinding.bindAreaNumberTv.setText("+" + country.code);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ HdlCommonLogic.getInstance().setSpan(viewBinding.bindPhoneVerificationTv, viewBinding.bindPhoneVerificationTv.getText().toString(), true, null);
+ }
+
+ /**
+ * 鍥藉鎵嬫満鍙峰尯鍙峰脊绐�
+ */
+ private void selectArea() {
+ CountryPickerFragment dialog = new CountryPickerFragment(this, new PickCountryCallback() {
+ @Override
+ public void onPick(Country country) {
+ if (country.flag != 0)
+ viewBinding.bindAreaTv.setText(country.translate);
+ String code = "+" + country.code;
+ viewBinding.bindAreaNumberTv.setText(code);
+ }
+ });
+ dialog.show();
+ dialog.setDialogSize();
}
/**
@@ -106,7 +166,7 @@
HdlThreadLogic.tipFlashingBox(this, false, getString(R.string.home_login_phone_null), -1);
return;
}
- HdlAccountLogic.getInstance().sendVerifyCode(true, account, "86", 3, new CloudCallBeak<Boolean>() {
+ HdlAccountLogic.getInstance().sendVerifyCode_C(true, account, viewBinding.bindAreaNumberTv.getText().toString(), VerifyType.VerifyType_3, new CloudCallBeak<Boolean>() {
@Override
public void onSuccess(Boolean obj) {
countDownTimer.start();
@@ -130,7 +190,6 @@
long time = (millisUntilFinished / 1000);
String str = time + "s" + getString(R.string.home_login_psw_verification_repeater);
viewBinding.bindPhoneVerificationTv.setText(str);
- viewBinding.bindPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_25000000, null));
viewBinding.bindPhoneVerificationTv.setEnabled(false);
}
@@ -138,12 +197,44 @@
@Override
public void onFinish() {
viewBinding.bindPhoneVerificationTv.setText(getString(R.string.home_login_verification_regain));
- viewBinding.bindPhoneVerificationTv.setTextColor(getResources().getColor(R.color.text_245EC3, null));
viewBinding.bindPhoneVerificationTv.setEnabled(true);
}
};
+
+ /**
+ * 妫�娴嬫竻闄ゅ浘鏍囨槸鍚︽樉绀�
+ */
+ private void checkClearIconShowOrNot(String s) {
+ if (s.replace(" ", "").length() > 0) {
+ if (viewBinding.bindPhoneClearIv.getVisibility() == View.GONE) {
+ viewBinding.bindPhoneClearIv.setVisibility(View.VISIBLE);
+ }
+ } else {
+ if (viewBinding.bindPhoneClearIv.getVisibility() == View.VISIBLE) {
+ viewBinding.bindPhoneClearIv.setVisibility(View.GONE);
+ }
+ }
+ }
+
+ /**
+ * 鏍¢獙纭鎸夐挳鏄惁鍚敤
+ */
+ private boolean isEnabled() {
+ String account = viewBinding.bindPhoneEt.getText().toString().replace(" ", "");
+ String verificationCode = viewBinding.changePhoneVerificationEt.getText().toString().replace(" ", "");
+ boolean isEnabled = account.length() > 0 && verificationCode.length() > 0;
+ if (isEnabled) {
+ viewBinding.bindPhoneTv.setTextColor(getColor(R.color.text_FFACACAC));
+ } else {
+ viewBinding.bindPhoneTv.setTextColor(getColor(R.color.text_FF5B5B5B));
+ }
+ viewBinding.bindPhoneTv.setEnabled(isEnabled);
+ return isEnabled;
+
+ }
+
/**
* 鏈湴鏍¢獙
@@ -159,18 +250,68 @@
HdlThreadLogic.tipFlashingBox(this, false, getString(R.string.home_login_null_verification_code), -1);
return false;
}
-
return true;
}
+ /**
+ * 杈撳叆璐﹀彿
+ */
+ 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) {
+ checkClearIconShowOrNot(s.toString());
+ isEnabled();
+ }
+ };
+
+ /**
+ * 杈撳叆楠岃瘉鐮�
+ */
+ private final TextWatcher verificationCodeTextWatcher = 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) {
+ isEnabled();
+ }
+ };
+
@Override
protected void onDestroy() {
super.onDestroy();
+ Country.destroy();
if (countDownTimer != null) {
countDownTimer.cancel();
countDownTimer = null;
}
+ viewBinding.bindPhoneEt.removeTextChangedListener(accountTextWatcher);
+ viewBinding.changePhoneVerificationEt.removeTextChangedListener(verificationCodeTextWatcher);
}
+
+ /**
+ * 鐗╃悊鎸夐敭杩斿洖浜嬩欢
+ */
+ @Override
+ public void onBackPressed() {
+ setResult(20);
+ super.onBackPressed();
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0