diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 449929dc6..fb0123460 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,78 +1,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ package="com.yizhuan.erban">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:screenOrientation="portrait" />
-
+
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+
-
-
+
+
-
-
-
+
-
-
+
+
-
+
+ android:screenOrientation="portrait" />
+
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+
+ android:screenOrientation="portrait" />
+
+ android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
+ android:screenOrientation="portrait" />
+ android:windowSoftInputMode="adjustPan" />
+ android:screenOrientation="portrait" />
@@ -450,7 +294,7 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
- android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:screenOrientation="portrait" />
@@ -707,7 +551,7 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -718,11 +562,11 @@
android:name="com.yizhuan.tutu.mentoring_relationship.activity.MentoringRelationshipActivity"
android:label="@string/main_androidmanifest_030"
android:screenOrientation="portrait"
- android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:screenOrientation="portrait" />
@@ -745,8 +589,7 @@
-
+ android:theme="@style/room_message_activity" />
@@ -758,7 +601,7 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -781,10 +624,10 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -798,7 +641,7 @@
+ android:theme="@style/room_message_activity" />
@@ -807,23 +650,24 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+
-
+
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -832,7 +676,7 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -856,7 +700,7 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:windowSoftInputMode="stateHidden|adjustResize" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+ android:windowSoftInputMode="adjustPan" />
@@ -900,22 +744,17 @@
android:theme="@style/dialog_web_view_activity" />
+ android:screenOrientation="portrait" />
-
-
-
-
+
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -964,7 +803,7 @@
android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
@@ -1015,7 +854,7 @@
android:name=".earn.activity.EarnWithdrawActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
- android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/base/BaseActivity.java b/app/src/main/java/com/yizhuan/erban/base/BaseActivity.java
index b7304757f..a01c283e4 100644
--- a/app/src/main/java/com/yizhuan/erban/base/BaseActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/base/BaseActivity.java
@@ -57,6 +57,7 @@ import com.yizhuan.erban.common.widget.dialog.DialogUiHelper;
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.erban.ui.login.AddUserInfoActivity;
import com.yizhuan.erban.ui.login.LoginCodeActivity;
+import com.yizhuan.erban.ui.login.LoginPhoneActivity;
import com.yizhuan.erban.ui.pay.ChargeActivity;
import com.yizhuan.erban.ui.setting.ResetPasswordActivity;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
@@ -971,7 +972,7 @@ public abstract class BaseActivity extends RxAppCompatActivity
*/
private boolean isNeedToHandleBroadcastMessageActivity() {
List acts = new ArrayList<>();
-// acts.add(LoginPhoneActivity.class);
+ acts.add(LoginPhoneActivity.class);
acts.add(LoginCodeActivity.class);
acts.add(ResetPasswordActivity.class);
acts.add(AddUserInfoActivity.class);
diff --git a/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java b/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java
index 0bb36d91d..0eecb9f55 100644
--- a/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/pay/password/GiveGoldPassWordFragment.java
@@ -18,7 +18,6 @@ import androidx.fragment.app.FragmentManager;
import com.jungly.gridpasswordview.GridPasswordView;
import com.yizhuan.erban.R;
import com.yizhuan.erban.ui.setting.ModifyPwdActivity;
-import com.yizhuan.erban.ui.setting.VerifyPhoneActivity;
import com.yizhuan.xchat_android_library.utils.ResUtil;
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/AreaCodeActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/AreaCodeActivity.kt
new file mode 100644
index 000000000..e2ea074a7
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/AreaCodeActivity.kt
@@ -0,0 +1,80 @@
+package com.yizhuan.erban.ui.login
+
+import android.app.Activity
+import android.content.Intent
+import android.view.View
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.BaseViewHolder
+import com.netease.nim.uikit.StatusBarUtil
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityAreaCodeBinding
+import com.yizhuan.erban.ui.login.bean.CountryBean
+
+/**
+ * 区号
+ * Created by wushaocheng
+ * Date: 2022/11/28
+ */
+class AreaCodeActivity : BaseViewBindingActivity() {
+
+ private val mCountries = ArrayList()
+
+ companion object {
+ const val COUNTRY_NUMBER = "country_number"
+
+ @JvmStatic
+ fun startForResult(context: Activity, requestCode: Int) {
+ val intent = Intent(context, AreaCodeActivity::class.java)
+ context.startActivityForResult(
+ intent,
+ requestCode
+ )
+ }
+ }
+
+ override fun init() {
+ initTitleBar(getString(R.string.select_area_code))
+ initCountryData()
+ initListView()
+ }
+
+ private fun initCountryData() {
+ val countryList = resources.getStringArray(R.array.country_code_list_ch)
+ for (s in countryList) {
+ val country = s.split("*").toTypedArray()
+ val countryName = country[0]
+ val countryNumber = country[1]
+ val c = CountryBean(countryName, countryNumber)
+ mCountries.add(c)
+ }
+ }
+
+ private fun initListView() {
+ val mAdapter = object :
+ BaseQuickAdapter(R.layout.item_country, mCountries) {
+ override fun convert(helper: BaseViewHolder, item: CountryBean) {
+ helper.setText(R.id.tv_name, item.name)
+ helper.setText(R.id.tv_country_code, item.code)
+ }
+ }
+ binding.mRecyclerView.adapter = mAdapter
+ //返回国家
+ mAdapter.setOnItemClickListener { adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int ->
+ val country = mCountries[position]
+ val intent = Intent()
+ intent.putExtra(COUNTRY_NUMBER, country.code)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+
+ override fun needSteepStateBar() = true
+
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/AuthorizationCodeActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/AuthorizationCodeActivity.kt
new file mode 100644
index 000000000..c2826002e
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/AuthorizationCodeActivity.kt
@@ -0,0 +1,70 @@
+package com.yizhuan.erban.ui.login
+
+import android.text.Editable
+import android.text.TextWatcher
+import android.view.MotionEvent
+import android.view.WindowManager
+import android.widget.EditText
+import com.netease.nim.uikit.StatusBarUtil
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityAuthorizationCodeBinding
+
+/**
+ * 授权码页面
+ * Created by wushaocheng
+ * Date: 2022/11/28
+ */
+class AuthorizationCodeActivity : BaseViewBindingActivity() {
+
+ override fun init() {
+ initData()
+ initListener()
+ }
+
+ private fun initData() {
+ this.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
+ }
+
+ private fun initListener() {
+ binding.etCode.addTextChangedListener(object : TextWatcher {
+ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun afterTextChanged(p0: Editable?) {
+ binding.btnNext.isEnabled = p0?.isEmpty() != true
+ }
+
+ })
+ binding.btnNext.setOnClickListener {
+
+ }
+ }
+
+ override fun onTouchEvent(event: MotionEvent): Boolean {
+ val view = currentFocus
+ var isPressEdit = false
+ if (view is EditText) {
+ if (event.rawX >= view.getX() && event.rawX <= view.getX() + view.getWidth() && event.rawY >= view.getY() && event.rawY <= view.getY() + view.getHeight()) {
+ isPressEdit = true
+ }
+ }
+ if (!isPressEdit) {
+ hideIME()
+ }
+ return super.onTouchEvent(event)
+ }
+
+ override fun needSteepStateBar() = true
+
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/BindCodeActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/BindCodeActivity.java
index cc5696f35..8c468b98d 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/login/BindCodeActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/BindCodeActivity.java
@@ -81,9 +81,9 @@ public class BindCodeActivity extends BaseActivity {
private void onFindViews() {
codeEt = findViewById(R.id.et_code);
- tvGetCode = findViewById(R.id.tv_get_code);
+// tvGetCode = findViewById(R.id.tv_get_code);
tvDesc = findViewById(R.id.tv_desc);
- tvSecond = findViewById(R.id.tv_second);
+// tvSecond = findViewById(R.id.tv_second);
}
private void onSetListener() {
@@ -179,7 +179,7 @@ public class BindCodeActivity extends BaseActivity {
private void bindPhone() {
getDialogManager().showProgressDialog(BindCodeActivity.this, ResUtil.getString(R.string.ui_login_bindcodeactivity_02));
- AuthModel.get().bindPhone(mPhone, codeEt.getText().toString())
+ AuthModel.get().bindPhone(mPhone, codeEt.getText().toString(),"")
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.doOnSuccess(s -> {
toast(ResUtil.getString(R.string.ui_login_bindcodeactivity_03));
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.java
deleted file mode 100644
index d4ba91804..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package com.yizhuan.erban.ui.login;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ImageView;
-
-import com.netease.nim.uikit.StatusBarUtil;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.base.BaseActivity;
-import com.yizhuan.erban.ui.login.helper.LogoutHelper;
-import com.yizhuan.xchat_android_library.utils.NetworkUtils;
-import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper;
-
-/**
- * 由于所有用户都需要强制绑定手机,所以理论上这里只有MainActivity会调用到这个界面
- * 但是为了以防万一,其它调用绑定手机的地方也改为调用这个页面了
- */
-public class BindPhoneActivity extends BaseActivity implements View.OnClickListener {
-
- private static final String TAG = "BindPhoneActivity";
-
- private EditText accountEt;
- private Button btnNext;
- private ImageView ivBack;
- public static final String KEY_BACK_LOGIN = "key_back_login";
- private int REQUEST_CODE = 100;
-
- private AccountValidator accountValidator = new AccountValidator();
- private TextWatcher textWatcher = new TextWatcherWrapper() {
- @Override
- public void afterTextChanged(Editable s) {
- checkInput();
- }
- };
-
-
- public static void start(Context context) {
- Intent intent = new Intent(context, BindPhoneActivity.class);
- context.startActivity(intent);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_bind_phone);
- onFindViews();
- onSetListener();
-
- accountEt.setFocusable(true);
- accountEt.setFocusableInTouchMode(true);
- accountEt.requestFocus();
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- }
-
- private void onFindViews() {
- accountEt = findViewById(R.id.et_account);
- btnNext = findViewById(R.id.btn_next);
- ivBack = findViewById(R.id.iv_back);
- }
-
- private void onSetListener() {
- btnNext.setOnClickListener(this);
- btnNext.setEnabled(false);
- accountEt.addTextChangedListener(textWatcher);
- ivBack.setOnClickListener(this);
- }
-
- private void checkInput() {
- if (!TextUtils.isEmpty(accountEt.getText().toString()) && accountEt.getText().toString().length() >= 7) {
- btnNext.setEnabled(true);
- } else {
- btnNext.setEnabled(false);
- }
- }
-
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btn_next:
- if (!NetworkUtils.isNetworkStrictlyAvailable(this)) {
- checkNetToast();
- return;
- }
- if (!accountValidator.isValid(accountEt.getText().toString())) {
- toast(accountValidator.getErrorMessage());
- return;
- }
- BindCodeActivity.startForResult(BindPhoneActivity.this, accountEt.getText().toString(), REQUEST_CODE);
- break;
-
- case R.id.iv_back:
- handleFinish();
- break;
- default:
- break;
- }
- }
-
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
- finish();
- }
- }
-
- @Override
- protected void onDestroy() {
- accountEt = null;
- super.onDestroy();
- }
-
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- View view = getCurrentFocus();
- boolean isPressEdit = false;
- if (view instanceof EditText) {
- if (event.getRawX() >= view.getX() && event.getRawX() <= view.getX() + view.getWidth() && event.getRawY() >= view.getY() && event.getRawY() <= view.getY() + view.getHeight()) {
- isPressEdit = true;
- }
- }
- if (!isPressEdit) {
- hideIME();
- }
- return super.onTouchEvent(event);
- }
-
-
- @Override
- public void onBackPressed() {
- handleFinish();
- }
-
- private void handleFinish() {
- LogoutHelper.logout();
- finish();
- }
-
- @Override
- protected boolean needSteepStateBar() {
- return true;
- }
-
- @Override
- protected void setStatusBar() {
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
- }
-
-}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.kt
new file mode 100644
index 000000000..9718cdf02
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/BindPhoneActivity.kt
@@ -0,0 +1,218 @@
+package com.yizhuan.erban.ui.login
+
+import android.content.Context
+import android.content.Intent
+import android.os.CountDownTimer
+import android.text.Editable
+import android.text.TextUtils
+import android.text.TextWatcher
+import android.view.MotionEvent
+import android.view.View
+import android.widget.EditText
+import androidx.core.content.ContextCompat
+import com.coorchice.library.utils.LogUtils
+import com.netease.nim.uikit.StatusBarUtil
+import com.trello.rxlifecycle3.android.ActivityEvent
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityBindPhoneBinding
+import com.yizhuan.erban.ui.login.BindPhoneActivity
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.code.CodeType
+import com.yizhuan.xchat_android_core.user.UserModel
+import com.yizhuan.xchat_android_core.user.bean.UserInfo
+import com.yizhuan.xchat_android_library.utils.NetworkUtils
+import com.yizhuan.xchat_android_library.utils.ResUtil
+import io.reactivex.SingleObserver
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.disposables.Disposable
+
+/**
+ * 由于所有用户都需要强制绑定手机,所以理论上这里只有MainActivity会调用到这个界面
+ * 但是为了以防万一,其它调用绑定手机的地方也改为调用这个页面了
+ */
+class BindPhoneActivity : BaseViewBindingActivity(),
+ View.OnClickListener, TextWatcher {
+
+ private var cdt: CountDownTimer? = null
+
+ companion object {
+ private const val TAG = "BindPhoneActivity"
+ const val REQUEST_AREA_CODE = 100
+
+ @JvmStatic
+ fun start(context: Context) {
+ val intent = Intent(context, BindPhoneActivity::class.java)
+ context.startActivity(intent)
+ }
+ }
+
+ override fun init() {
+ initTitleBar(getString(R.string.text_bind_phone))
+ initListener()
+ }
+
+ private fun initListener() {
+ binding.tvAreaCode.setOnClickListener(this)
+ binding.tvGetCode.setOnClickListener(this)
+ binding.btnNext.setOnClickListener(this)
+ binding.etAccount.addTextChangedListener(this)
+ binding.etCode.addTextChangedListener(this)
+ }
+
+ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun afterTextChanged(p0: Editable?) {
+ binding.btnNext.isEnabled = !TextUtils.isEmpty(binding.etAccount.text.toString()) &&
+ !TextUtils.isEmpty(binding.etCode.text.toString())
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.tv_area_code -> {
+ AreaCodeActivity.startForResult(this, REQUEST_AREA_CODE)
+ }
+ R.id.tv_get_code -> {
+ dialogManager.showProgressDialog(this)
+ AuthModel.get()
+ .getSmsCode(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ CodeType.BIND_PHONE
+ )
+ .observeOn(AndroidSchedulers.mainThread())
+ .compose(bindUntilEvent(ActivityEvent.DESTROY))
+ .subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {}
+ override fun onSuccess(tip: String) {
+ dialogManager.dismissDialog()
+ startCounter()
+ toast(tip)
+ }
+
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ toast(e.message)
+ LogUtils.e(ResUtil.getString(R.string.ui_login_bindcodeactivity_01))
+ }
+ })
+ }
+ R.id.btn_next -> {
+ if (!NetworkUtils.isNetworkStrictlyAvailable(this)) {
+ checkNetToast()
+ return
+ }
+ dialogManager.showProgressDialog(
+ this,
+ ResUtil.getString(R.string.ui_login_bindcodeactivity_02)
+ )
+ AuthModel.get().bindPhone(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ binding.etCode.text.toString()
+ )
+ .compose(bindUntilEvent(ActivityEvent.DESTROY))
+ .doOnSuccess { s: String? ->
+ toast(ResUtil.getString(R.string.ui_login_bindcodeactivity_03))
+ setResult(RESULT_OK)
+ }
+ .doOnError { throwable: Throwable ->
+ toast(
+ throwable.message
+ )
+ }
+ .flatMap { s: String? ->
+ UserModel.get().updateCurrentUserInfo()
+ }
+ .doOnSuccess { s: UserInfo? ->
+ setResult(RESULT_OK)
+ finish()
+ }
+ .doFinally { dialogManager.dismissDialog() }
+ .subscribe()
+ }
+ }
+ }
+
+ private fun startCounter() {
+ stopCounter()
+ //开始倒计时 60s 间隔1s
+ binding.tvGetCode.isEnabled = false
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.color_9168FA))
+ cdt = object : CountDownTimer(60 * 1000, 100) {
+ override fun onTick(text: Long) {
+ showTextDown(text)
+ }
+
+ override fun onFinish() {
+ resetBtn()
+ }
+ }
+ cdt?.start()
+ }
+
+ private fun showTextDown(text: Long) {
+ val time = (text / 1000).toString() + "s"
+ binding.tvGetCode.text = time
+ }
+
+ private fun stopCounter() {
+ cdt?.cancel()
+ cdt = null
+ }
+
+
+ private fun resetBtn() {
+ stopCounter()
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.text_title_color))
+ binding.tvGetCode.isEnabled = true
+ binding.tvGetCode.text = getString(R.string.text_request_code)
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == REQUEST_AREA_CODE && resultCode == RESULT_OK) {
+ val areaCode = data?.getStringExtra(AreaCodeActivity.COUNTRY_NUMBER)
+ if (areaCode != null) {
+ binding.tvAreaCode.text = areaCode
+ }
+ }
+ }
+
+ override fun onTouchEvent(event: MotionEvent): Boolean {
+ val view = currentFocus
+ var isPressEdit = false
+ if (view is EditText) {
+ if (event.rawX >= view.getX() && event.rawX <= view.getX() + view.getWidth() && event.rawY >= view.getY() && event.rawY <= view.getY() + view.getHeight()) {
+ isPressEdit = true
+ }
+ }
+ if (!isPressEdit) {
+ hideIME()
+ }
+ return super.onTouchEvent(event)
+ }
+
+ override fun needSteepStateBar(): Boolean {
+ return true
+ }
+
+ override fun setStatusBar() {
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ stopCounter()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java
index a0718905a..3c92c345f 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginActivity.java
@@ -219,7 +219,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
break;
case R.id.tv_phone:
-
+ LoginPhoneActivity.start(this);
break;
case R.id.tv_others:
LoginPasswordActivity.start(LoginActivity.this);
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java
deleted file mode 100644
index 2a9363cfb..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package com.yizhuan.erban.ui.login;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.TextView;
-
-import com.coorchice.library.utils.LogUtils;
-import com.netease.nim.uikit.StatusBarUtil;
-import com.trello.rxlifecycle3.android.ActivityEvent;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.base.BaseActivity;
-import com.yizhuan.erban.ui.login.helper.LogoutHelper;
-import com.yizhuan.erban.ui.login.ui.CodeEditText;
-import com.yizhuan.xchat_android_core.auth.AuthModel;
-import com.yizhuan.xchat_android_core.auth.event.LoginEvent;
-import com.yizhuan.xchat_android_core.code.CodeType;
-import com.yizhuan.xchat_android_core.statistic.StatisticManager;
-import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
-import com.yizhuan.xchat_android_library.utils.ResUtil;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-import io.reactivex.SingleObserver;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-
-/**
- * @author zhouxiangfeng
- * @date 17/2/26
- */
-public class LoginCodeActivity extends BaseActivity {
-
- private CodeEditText codeEt;
- private TextView tvGetCode, tvDesc, tvSecond;
- private String mPhone;
- private boolean isSuperAdmin = false;
- private CodeDownDescTimer timer;
-
- public static void start(Context context, String phone) {
- Intent intent = new Intent(context, LoginCodeActivity.class);
- intent.putExtra("phone", phone);
- context.startActivity(intent);
- }
-
- public static void startForResult(Activity context, int requestCode) {
- Intent intent = new Intent(context, LoginCodeActivity.class);
- context.startActivityForResult(intent, requestCode); // startActivityForResult会导致singletop,singletask失效
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login_code);
- EventBus.getDefault().register(this);
- onFindViews();
- initData();
- onSetListener();
- getSmsCode();
- }
-
- @SuppressLint("SetTextI18n")
- private void initData() {
- mPhone = getIntent().getStringExtra("phone");
-
- codeEt.setFocusable(true);
- codeEt.setFocusableInTouchMode(true);
- codeEt.requestFocus();
- this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
-
- }
-
- @Override
- protected boolean needSteepStateBar() {
- return true;
- }
-
- @Override
- protected void setStatusBar() {
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
- }
-
- private void onFindViews() {
- codeEt = findViewById(R.id.et_code);
- tvGetCode = findViewById(R.id.tv_get_code);
- tvDesc = findViewById(R.id.tv_desc);
- tvSecond = findViewById(R.id.tv_second);
- }
-
- private void onSetListener() {
-
- codeEt.setOnTextFinishListener((text, length) -> login());
-
- tvGetCode.setOnClickListener(v -> getSmsCode());
-
- findViewById(R.id.iv_back).setOnClickListener(v -> finish());
- }
-
- @Override
- protected void onDestroy() {
- codeEt = null;
- super.onDestroy();
- stopCountDownTimer();
- EventBus.getDefault().unregister(this);
- }
-
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- View view = getCurrentFocus();
- boolean isPressEdit = false;
- if (view instanceof EditText) {
- if (event.getRawX() >= view.getX() && event.getRawX() <= view.getX() + view.getWidth() && event.getRawY() >= view.getY() && event.getRawY() <= view.getY() + view.getHeight()) {
- isPressEdit = true;
- }
- }
- if (!isPressEdit) {
- hideIME();
- }
- return super.onTouchEvent(event);
-
- }
-
-
- /**
- * 获取验证码
- */
- @SuppressLint("CheckResult")
- private void getSmsCode() {
- if (TextUtils.isEmpty(mPhone) || mPhone.length() != 11) {
- return;
- }
- AuthModel.get()
- .sendLoginCode(mPhone, CodeType.REGISTER)
- .observeOn(AndroidSchedulers.mainThread())
- .compose(bindUntilEvent(ActivityEvent.DESTROY))
- .subscribe(new SingleObserver() {
- @Override
- public void onSubscribe(Disposable d) {
-
- }
-
- @Override
- public void onSuccess(String s) {
- tvDesc.setText(getString(R.string.str_send_code_success) + mPhone);
- startCountDownTimer();
- toast(s);
- }
-
- @Override
- public void onError(Throwable e) {
- toast(e.getMessage());
-// finish();
- LogUtils.e(ResUtil.getString(R.string.ui_login_logincodeactivity_01));
- }
- });
- }
-
- private void login() {
- String smsCode = codeEt.getText().toString();
- getDialogManager().showProgressDialog(this, ResUtil.getString(R.string.ui_login_logincodeactivity_02));
- AuthModel.get().login(
- mPhone,
- "",
- smsCode,
- "",
- "")
- .subscribe(new SingleObserver() {
- @Override
- public void onSubscribe(Disposable d) {
- mCompositeDisposable.add(d);
- }
-
- @Override
- public void onSuccess(String s) {
- getDialogManager().dismissDialog();
- stopCountDownTimer();
- setResult(RESULT_OK);
- finish();
- }
-
- @Override
- public void onError(Throwable e) {
- getDialogManager().dismissDialog();
- dealWithLoginError(e);
- }
- });
-
- StatisticManager.Instance().onEvent(this,
- StatisticsProtocol.EVENT_LOGIN_PHONE_CLICK, ResUtil.getString(R.string.ui_login_logincodeactivity_03), null);
- }
-
- public void dealWithLoginError(Throwable e) {
- LogoutHelper.dealWithLoginError(this, e);
- }
-
- private void startCountDownTimer() {
- stopCountDownTimer();
- timer = new CodeDownDescTimer(tvSecond, tvGetCode, 60000, 1000);
- timer.start();
- }
-
- private void stopCountDownTimer() {
- if (timer != null) {
- timer.cancel();
- timer = null;
- }
- }
-
- /**
- * 注册成功后发送过来的事件
- */
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onLoginEvent(LoginEvent event) {
- getDialogManager().dismissDialog();
- setResult(RESULT_OK);
- finish();
- }
-
-}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt
new file mode 100644
index 000000000..095809eb0
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.kt
@@ -0,0 +1,195 @@
+package com.yizhuan.erban.ui.login
+
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.text.Editable
+import android.text.TextWatcher
+import android.view.MotionEvent
+import android.view.WindowManager
+import android.widget.EditText
+import com.coorchice.library.utils.LogUtils
+import com.netease.nim.uikit.StatusBarUtil
+import com.trello.rxlifecycle3.android.ActivityEvent
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityLoginCodeBinding
+import com.yizhuan.erban.ui.login.helper.LogoutHelper
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.auth.event.LoginEvent
+import com.yizhuan.xchat_android_core.code.CodeType
+import com.yizhuan.xchat_android_core.statistic.StatisticManager
+import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
+import com.yizhuan.xchat_android_library.utils.ResUtil
+import io.reactivex.SingleObserver
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.disposables.Disposable
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+/**
+ * 验证码页面
+ * Created by wushaocheng
+ * Date: 2022/11/28
+ */
+class LoginCodeActivity : BaseViewBindingActivity() {
+ private var mPhone: String? = null
+
+ companion object {
+ fun start(context: Context, phone: String?) {
+ val intent = Intent(context, LoginCodeActivity::class.java)
+ intent.putExtra("phone", phone)
+ context.startActivity(intent)
+ }
+
+ fun startForResult(context: Activity, requestCode: Int) {
+ val intent = Intent(context, LoginCodeActivity::class.java)
+ context.startActivityForResult(
+ intent,
+ requestCode
+ ) // startActivityForResult会导致singletop,singletask失效
+ }
+ }
+
+ override fun init() {
+ EventBus.getDefault().register(this)
+ initData()
+ initListener()
+ getSmsCode()
+ }
+
+ @SuppressLint("SetTextI18n")
+ private fun initData() {
+ mPhone = intent.getStringExtra("phone")
+ this.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
+ }
+
+ private fun initListener() {
+ binding.etCode.addTextChangedListener(object : TextWatcher{
+ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun afterTextChanged(p0: Editable?) {
+ binding.btnNext.isEnabled = p0?.isEmpty() != true
+ }
+
+ })
+ binding.tvRegain.setOnClickListener { getSmsCode() }
+ binding.btnNext.setOnClickListener {
+
+ }
+ }
+
+ override fun onTouchEvent(event: MotionEvent): Boolean {
+ val view = currentFocus
+ var isPressEdit = false
+ if (view is EditText) {
+ if (event.rawX >= view.getX() && event.rawX <= view.getX() + view.getWidth() && event.rawY >= view.getY() && event.rawY <= view.getY() + view.getHeight()) {
+ isPressEdit = true
+ }
+ }
+ if (!isPressEdit) {
+ hideIME()
+ }
+ return super.onTouchEvent(event)
+ }
+
+ /**
+ * 获取验证码
+ */
+ private fun getSmsCode(){
+ AuthModel.get()
+ .sendLoginCode(mPhone, CodeType.REGISTER)
+ .observeOn(AndroidSchedulers.mainThread())
+ .compose(bindUntilEvent(ActivityEvent.DESTROY))
+ .subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {}
+
+ override fun onSuccess(tip: String) {
+// startCountDownTimer()
+ toast(tip)
+ }
+
+ override fun onError(e: Throwable) {
+ toast(e.message)
+ //finish();
+ LogUtils.e(ResUtil.getString(R.string.ui_login_logincodeactivity_01))
+ }
+
+ })
+ }
+
+ private fun login() {
+ val smsCode = binding.etCode.text.toString()
+ dialogManager.showProgressDialog(
+ this,
+ ResUtil.getString(R.string.ui_login_logincodeactivity_02)
+ )
+ AuthModel.get().login(
+ mPhone,
+ "",
+ smsCode,
+ "",
+ ""
+ )
+ .subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {
+ mCompositeDisposable.add(d)
+ }
+
+ override fun onSuccess(t: String) {
+ dialogManager.dismissDialog()
+// stopCountDownTimer()
+ setResult(RESULT_OK)
+ finish()
+ }
+
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ dealWithLoginError(e)
+ }
+ })
+ StatisticManager.Instance().onEvent(
+ this,
+ StatisticsProtocol.EVENT_LOGIN_PHONE_CLICK,
+ ResUtil.getString(R.string.ui_login_logincodeactivity_03),
+ null
+ )
+ }
+
+ fun dealWithLoginError(e: Throwable?) {
+ LogoutHelper.dealWithLoginError(this, e)
+ }
+
+ /**
+ * 注册成功后发送过来的事件
+ */
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onLoginEvent(event: LoginEvent?) {
+ dialogManager.dismissDialog()
+ setResult(RESULT_OK)
+ finish()
+ }
+
+ override fun needSteepStateBar(): Boolean {
+ return true
+ }
+
+ override fun setStatusBar() {
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ EventBus.getDefault().unregister(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java
index 6258c173f..330d25162 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPasswordActivity.java
@@ -15,6 +15,7 @@ import com.yizhuan.erban.R;
import com.yizhuan.erban.application.ReportManager;
import com.yizhuan.erban.base.BaseActivity;
import com.yizhuan.erban.ui.login.helper.LogoutHelper;
+import com.yizhuan.erban.ui.setting.ResetPasswordActivity;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.auth.event.LoginEvent;
import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper;
@@ -69,9 +70,10 @@ public class LoginPasswordActivity extends BaseActivity {
edtPassword.addTextChangedListener(textWatcher);
btnNext.setOnClickListener(v -> login());
findViewById(R.id.tv_forget_password).setOnClickListener(v ->
- getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINE:pekoyuyin", getString(R.string.button_ok), "", true, () -> {
-
- })
+ ResetPasswordActivity.start(context, ResetPasswordActivity.FROM_NOT_LOGIN)
+// getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINE:pekoyuyin", getString(R.string.button_ok), "", true, () -> {
+//
+// })
);
}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt
new file mode 100644
index 000000000..ac472e31f
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginPhoneActivity.kt
@@ -0,0 +1,91 @@
+package com.yizhuan.erban.ui.login
+
+import android.content.Context
+import android.content.Intent
+import android.text.Editable
+import android.text.TextWatcher
+import android.view.MotionEvent
+import android.view.View
+import android.view.WindowManager
+import android.widget.EditText
+import com.netease.nim.uikit.StatusBarUtil
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityLoginPhoneBinding
+
+/**
+ * 手机号登录页面
+ * Created by wushaocheng
+ * Date: 2022/11/28
+ */
+class LoginPhoneActivity : BaseViewBindingActivity(),
+ View.OnClickListener {
+
+ companion object {
+
+ @JvmStatic
+ fun start(context: Context) {
+ val starter = Intent(context, LoginPhoneActivity::class.java)
+ context.startActivity(starter)
+ }
+ }
+
+ override fun init() {
+ this.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
+ initListener()
+ }
+
+ private fun initListener() {
+ binding.tvCode.setOnClickListener(this)
+ binding.btnNext.setOnClickListener(this)
+ binding.etPhone.addTextChangedListener(object : TextWatcher {
+ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun afterTextChanged(p0: Editable?) {
+ binding.btnNext.isEnabled = p0?.isEmpty() != true
+ }
+
+ })
+ }
+
+ override fun onClick(view: View?) {
+ when (view?.id) {
+ R.id.tvCode -> {
+
+ }
+ R.id.btnNext -> {
+ hideIME()
+ LoginCodeActivity.start(this, binding.etPhone.text.toString())
+ }
+ }
+ }
+
+ override fun onTouchEvent(event: MotionEvent): Boolean {
+ val view = currentFocus
+ var isPressEdit = false
+ if (view is EditText) {
+ if (event.rawX >= view.getX() && event.rawX <= view.getX() + view.getWidth() && event.rawY >= view.getY() && event.rawY <= view.getY() + view.getHeight()) {
+ isPressEdit = true
+ }
+ }
+ if (!isPressEdit) {
+ hideIME()
+ }
+ return super.onTouchEvent(event)
+ }
+
+ override fun needSteepStateBar() = true
+
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/ShowBindPhoneActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/login/ShowBindPhoneActivity.kt
index 0479d8ef5..f5855599b 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/login/ShowBindPhoneActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/ShowBindPhoneActivity.kt
@@ -1,52 +1,58 @@
-package com.yizhuan.erban.ui.login;
+package com.yizhuan.erban.ui.login
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.widget.TextView;
+import android.annotation.SuppressLint
+import android.content.Context
+import android.os.Bundle
+import com.yizhuan.erban.R
+import com.yizhuan.xchat_android_library.utils.ResUtil
+import android.widget.TextView
+import com.yizhuan.xchat_android_core.user.UserModel
+import com.yizhuan.erban.ui.setting.VerifyPhoneActivity
+import com.netease.nim.uikit.StatusBarUtil
+import android.content.Intent
+import android.text.TextUtils
+import android.view.View
+import com.yizhuan.erban.base.BaseActivity
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityShowBindPhoneBinding
+import com.yizhuan.erban.ui.login.ShowBindPhoneActivity
-import com.netease.nim.uikit.StatusBarUtil;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.base.BaseActivity;
-import com.yizhuan.erban.ui.setting.VerifyPhoneActivity;
-import com.yizhuan.xchat_android_core.user.UserModel;
-import com.yizhuan.xchat_android_core.user.bean.UserInfo;
-import com.yizhuan.xchat_android_library.utils.ResUtil;
+/**
+ * 已綁定手機號頁面
+ * Created by wushaocheng
+ * Date: 2022/11/28
+ */
+class ShowBindPhoneActivity : BaseViewBindingActivity() {
-public class ShowBindPhoneActivity extends BaseActivity {
-
- public static void start(Context context) {
- Intent intent = new Intent(context, ShowBindPhoneActivity.class);
- context.startActivity(intent);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_show_bind_phone);
- initWhiteTitleBar(ResUtil.getString(R.string.ui_login_showbindphoneactivity_01));
- TextView tv_phone = findViewById(R.id.tv_phone);
- UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
- if (userInfo != null && !TextUtils.isEmpty(userInfo.getPhone())) {
- tv_phone.setText(userInfo.getPhone());
+ companion object {
+ @JvmStatic
+ fun start(context: Context) {
+ val intent = Intent(context, ShowBindPhoneActivity::class.java)
+ context.startActivity(intent)
}
- findViewById(R.id.tv_change_phone).setOnClickListener(v -> {
- VerifyPhoneActivity.start(ShowBindPhoneActivity.this, false);
- finish();
- }
- );
}
- @Override
- protected boolean needSteepStateBar() {
- return true;
+ @SuppressLint("SetTextI18n")
+ override fun init() {
+ initWhiteTitleBar(getString(R.string.text_bind_phone))
+ val userInfo = UserModel.get().cacheLoginUserInfo
+ if (userInfo != null && !TextUtils.isEmpty(userInfo.phone)) {
+ binding.tvPhone.text = "+${userInfo.phoneAreaCode} ${userInfo.phone}"
+ }
+ binding.tvChangePhone.setOnClickListener { v: View? ->
+ VerifyPhoneActivity.start(this@ShowBindPhoneActivity, false)
+ finish()
+ }
}
- @Override
- protected void setStatusBar() {
- super.setStatusBar();
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
+ override fun needSteepStateBar(): Boolean {
+ return true
}
-}
+
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/bean/CountryBean.java b/app/src/main/java/com/yizhuan/erban/ui/login/bean/CountryBean.java
new file mode 100644
index 000000000..3cf9b8d6a
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/bean/CountryBean.java
@@ -0,0 +1,15 @@
+package com.yizhuan.erban.ui.login.bean;
+
+import lombok.Data;
+
+@Data
+public class CountryBean {
+ public String name;
+ public String code;
+
+ public CountryBean(String name, String code) {
+ this.name = name;
+ this.code = code;
+ }
+
+}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/ModifyPwdActivity.java b/app/src/main/java/com/yizhuan/erban/ui/setting/ModifyPwdActivity.java
index 029ed8e84..202eae5f2 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/ModifyPwdActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/ModifyPwdActivity.java
@@ -179,9 +179,14 @@ public class ModifyPwdActivity extends BaseBindingActivity {
-
- });
+ if (type == PAY_PWD) {
+ VerifyPhoneActivity.startForResult(this, true);
+ } else {
+ ResetPasswordActivity.start(context, ResetPasswordActivity.FROM_LOGIN);
+ }
+// getDialogManager().showOkCancelWithTitleDialog(getString(R.string.login_contact_service), "LINE:pekoyuyin", getString(R.string.button_ok), "", true, () -> {
+//
+// });
break;
}
}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/ResetPasswordActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/ResetPasswordActivity.kt
index c11a0bfc1..8fdd1629d 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/ResetPasswordActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/ResetPasswordActivity.kt
@@ -1,189 +1,213 @@
-package com.yizhuan.erban.ui.setting;
+package com.yizhuan.erban.ui.setting
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.Intent;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.view.View;
+import android.annotation.SuppressLint
+import android.content.Context
+import android.content.Intent
+import android.os.CountDownTimer
+import android.text.Editable
+import android.text.TextUtils
+import android.text.TextWatcher
+import android.view.View
+import androidx.core.content.ContextCompat
+import com.coorchice.library.utils.LogUtils
+import com.netease.nim.uikit.StatusBarUtil
+import com.trello.rxlifecycle3.android.ActivityEvent
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityResetLoginPwdBinding
+import com.yizhuan.erban.ui.login.AreaCodeActivity
+import com.yizhuan.erban.ui.login.BindPhoneActivity
+import com.yizhuan.erban.ui.login.CodeDownTimer
+import com.yizhuan.erban.ui.login.helper.LogoutHelper
+import com.yizhuan.erban.ui.setting.ResetPasswordActivity
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.code.CodeType
+import com.yizhuan.xchat_android_core.user.UserModel
+import com.yizhuan.xchat_android_library.utils.ResUtil
+import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper
+import io.reactivex.SingleObserver
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.disposables.Disposable
-import com.coorchice.library.utils.LogUtils;
-import com.netease.nim.uikit.StatusBarUtil;
-import com.trello.rxlifecycle3.android.ActivityEvent;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.base.BaseBindingActivity;
-import com.yizhuan.erban.databinding.ActivityResetLoginPwdBinding;
-import com.yizhuan.erban.ui.login.CodeDownTimer;
-import com.yizhuan.erban.ui.login.helper.LogoutHelper;
-import com.yizhuan.xchat_android_core.auth.AuthModel;
-import com.yizhuan.xchat_android_core.code.CodeType;
-import com.yizhuan.xchat_android_core.user.UserModel;
-import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
-import com.yizhuan.xchat_android_library.utils.ResUtil;
-import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper;
-
-import io.reactivex.SingleObserver;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-
-@ActLayoutRes(R.layout.activity_reset_login_pwd)
-public class ResetPasswordActivity extends BaseBindingActivity {
- public static final int FROM_NOT_LOGIN = 1;
- public static final int FROM_LOGIN = 2;
-
-
- private int from;
-
- private CodeDownTimer timer;
-
- private final TextWatcher textWatcher = new TextWatcherWrapper() {
- @Override
- public void afterTextChanged(Editable s) {
- checkInput();
+class ResetPasswordActivity : BaseViewBindingActivity(),
+ View.OnClickListener {
+ private var from = 0
+ private var cdt: CountDownTimer? = null
+ private val textWatcher: TextWatcher = object : TextWatcherWrapper() {
+ override fun afterTextChanged(s: Editable) {
+ checkInput()
}
- };
-
- public static void start(Context context, int type) {
- Intent intent = new Intent(context, ResetPasswordActivity.class);
- intent.putExtra("from", type);
- context.startActivity(intent);
}
- @Override
- protected void init() {
- from = getIntent().getIntExtra("from", FROM_LOGIN);
- mBinding.setClick(this);
- initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_01));
+ companion object {
+ const val FROM_NOT_LOGIN = 1
+ const val FROM_LOGIN = 2
- if (from == FROM_LOGIN) {
- if (UserModel.get().getCacheLoginUserInfo() != null) {
- mBinding.etPhone.setText(UserModel.get().getCacheLoginUserInfo().getPhone());
+ @JvmStatic
+ fun start(context: Context, type: Int) {
+ val intent = Intent(context, ResetPasswordActivity::class.java)
+ intent.putExtra("from", type)
+ context.startActivity(intent)
+ }
+ }
+
+ override fun init() {
+ from = intent.getIntExtra("from", FROM_LOGIN)
+ initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_01))
+// if (from == FROM_LOGIN) {
+// if (UserModel.get().cacheLoginUserInfo != null) {
+// binding.etAccount.setText(UserModel.get().cacheLoginUserInfo!!.phone)
+// }
+// binding.etAccount.isEnabled = false
+// }
+ initListener()
+ }
+
+ private fun initListener() {
+ binding.tvAreaCode.setOnClickListener(this)
+ binding.tvGetCode.setOnClickListener(this)
+ binding.btnCommit.setOnClickListener(this)
+
+ binding.etAccount.addTextChangedListener(textWatcher)
+ binding.etPassword.editText.addTextChangedListener(textWatcher)
+ binding.etCode.addTextChangedListener(textWatcher)
+ }
+
+ private fun checkInput() {
+ val enabled =
+ !TextUtils.isEmpty(binding.etAccount.text) && binding.etAccount.text.toString()
+ .trim { it <= ' ' }.length >= 7 && !TextUtils.isEmpty(binding.etPassword.text) && binding.etPassword.text.trim { it <= ' ' }.length >= 6 && !TextUtils.isEmpty(
+ binding.etCode.text
+ ) && binding.etCode.text.toString().trim { it <= ' ' }.length >= 5
+ binding.btnCommit.isEnabled = enabled
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.tv_area_code -> {
+ AreaCodeActivity.startForResult(this, BindPhoneActivity.REQUEST_AREA_CODE)
}
- mBinding.etPhone.setEnabled(false);
- }
- mBinding.etPhone.addTextChangedListener(textWatcher);
- mBinding.edPassword.getEditText().addTextChangedListener(textWatcher);
- mBinding.etCode.addTextChangedListener(textWatcher);
- }
-
- private void checkInput() {
- boolean enabled = !TextUtils.isEmpty(mBinding.etPhone.getText()) && mBinding.etPhone.getText().toString().trim().length() >= 7
- && !TextUtils.isEmpty(mBinding.edPassword.getText()) && mBinding.edPassword.getText().trim().length() >= 6
- && !TextUtils.isEmpty(mBinding.etCode.getText()) && mBinding.etCode.getText().toString().trim().length() >= 5;
- mBinding.btnCommit.setEnabled(enabled);
- }
-
-
- @Override
- public void onClick(View v) {
- super.onClick(v);
- switch (v.getId()) {
- case R.id.btn_commit:
- commit();
- break;
- case R.id.btn_get_code:
- if (TextUtils.isEmpty(mBinding.etPhone.getText())) {
- toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_02));
- return;
- }
- mBinding.btnGetCode.setClickable(false);
+ R.id.tv_get_code -> {
+ dialogManager.showProgressDialog(this)
AuthModel.get()
- .sendLoginCode(mBinding.etPhone.getText().toString().trim(), from == FROM_LOGIN ?
- CodeType.RESET_PSW_LOGIN : CodeType.RESET_PSW_NOT_LOGIN)
- .observeOn(AndroidSchedulers.mainThread())
- .compose(bindUntilEvent(ActivityEvent.DESTROY))
- .subscribe(new SingleObserver() {
- @Override
- public void onSubscribe(Disposable d) {
+ .getSmsCode(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ if (from == FROM_LOGIN) CodeType.RESET_PSW_LOGIN else CodeType.RESET_PSW_NOT_LOGIN
+ )
+ .observeOn(AndroidSchedulers.mainThread())
+ .compose(bindUntilEvent(ActivityEvent.DESTROY))
+ .subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {}
+ override fun onSuccess(t: String) {
+ dialogManager.dismissDialog()
+ startCounter()
+ }
- }
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ toast(e.message)
+ LogUtils.e(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_03))
+ }
- @Override
- public void onSuccess(String s) {
- startCountDownTimer();
- }
-
- @Override
- public void onError(Throwable e) {
- mBinding.btnGetCode.setClickable(true);
- LogUtils.e(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_03));
- }
- });
- break;
+ })
+ }
+ R.id.btn_commit -> commit()
}
}
- private void startCountDownTimer() {
- stopCountDownTimer();
- timer = new CodeDownTimer(mBinding.btnGetCode, 60000, 1000);
- timer.start();
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == BindPhoneActivity.REQUEST_AREA_CODE && resultCode == RESULT_OK) {
+ val areaCode = data?.getStringExtra(AreaCodeActivity.COUNTRY_NUMBER)
+ if (areaCode != null) {
+ binding.tvAreaCode.text = areaCode
+ }
+ }
}
- private void stopCountDownTimer() {
- if (timer != null) {
- timer.cancel();
- timer = null;
+ private fun startCounter() {
+ stopCounter()
+ //开始倒计时 60s 间隔1s
+ binding.tvGetCode.isEnabled = false
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.color_9168FA))
+ cdt = object : CountDownTimer(60 * 1000, 100) {
+ override fun onTick(text: Long) {
+ showTextDown(text)
+ }
+
+ override fun onFinish() {
+ resetBtn()
+ }
}
+ cdt?.start()
+ }
+
+ private fun showTextDown(text: Long) {
+ val time = (text / 1000).toString() + "s"
+ binding.tvGetCode.text = time
+ }
+
+ private fun stopCounter() {
+ cdt?.cancel()
+ cdt = null
+ }
+
+ private fun resetBtn() {
+ stopCounter()
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.text_title_color))
+ binding.tvGetCode.isEnabled = true
+ binding.tvGetCode.text = getString(R.string.text_request_code)
}
@SuppressLint("CheckResult")
- private void commit() {
- if (TextUtils.isEmpty(mBinding.etPhone.getText())) {
- toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_04));
- return;
- }
- if (TextUtils.isEmpty(mBinding.edPassword.getText())) {
- toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_05));
- return;
- }
- if (TextUtils.isEmpty(mBinding.etCode.getText())) {
- toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_06));
- return;
- }
-
- getDialogManager().showProgressDialog(ResetPasswordActivity.this, ResUtil.getString(R.string.ui_setting_resetpasswordactivity_07));
+ private fun commit() {
+ dialogManager.showProgressDialog(
+ this@ResetPasswordActivity,
+ ResUtil.getString(R.string.ui_setting_resetpasswordactivity_07)
+ )
AuthModel.get().requestResetPsw(
- mBinding.etPhone.getText().toString().trim(),
- mBinding.etCode.getText().toString().trim(),
- mBinding.edPassword.getText().trim())
- .compose(bindToLifecycle())
- .subscribe(new SingleObserver() {
- @Override
- public void onSubscribe(Disposable d) {
+ binding.tvAreaCode.text.toString().substring(1) + binding.etAccount.text.toString()
+ .trim { it <= ' ' },
+ binding.etCode.text.toString().trim { it <= ' ' },
+ binding.etPassword.text.trim { it <= ' ' })
+ .compose(bindToLifecycle())
+ .subscribe(object : SingleObserver {
+ override fun onSubscribe(d: Disposable) {}
+ override fun onSuccess(t: String) {
+ dialogManager.dismissDialog()
+ UserModel.get().updateCurrentUserInfo().subscribe()
+ toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_08))
+ if (from == FROM_LOGIN) {
+ LogoutHelper.logout()
}
+ finish()
+ }
- @Override
- public void onSuccess(String s) {
- getDialogManager().dismissDialog();
- UserModel.get().updateCurrentUserInfo().subscribe();
- toast(ResUtil.getString(R.string.ui_setting_resetpasswordactivity_08));
- if (from == FROM_LOGIN) {
- LogoutHelper.logout();
- }
- finish();
- }
-
- @Override
- public void onError(Throwable e) {
- getDialogManager().dismissDialog();
- toast(e.getMessage());
- }
- });
+ override fun onError(e: Throwable) {
+ dialogManager.dismissDialog()
+ toast(e.message)
+ }
+ })
}
- @Override
- protected boolean needSteepStateBar() {
- return true;
+ override fun needSteepStateBar(): Boolean {
+ return true
}
- @Override
- protected void setStatusBar() {
- super.setStatusBar();
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
- StatusBarUtil.StatusBarLightMode(this);
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
}
-}
+
+ override fun onDestroy() {
+ super.onDestroy()
+ dialogManager.dismissDialog()
+ stopCounter()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.java b/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.java
index 6a95d9b9c..94ea521a0 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/SettingActivity.java
@@ -17,6 +17,8 @@ import com.yizhuan.erban.base.BaseActivity;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.databinding.ActivitySettingBinding;
import com.yizhuan.erban.ui.im.avtivity.BlackListManageActivity;
+import com.yizhuan.erban.ui.login.BindPhoneActivity;
+import com.yizhuan.erban.ui.login.ShowBindPhoneActivity;
import com.yizhuan.erban.ui.login.helper.LogoutHelper;
import com.yizhuan.erban.ui.user.AboutActivity;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
@@ -36,6 +38,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
+import lombok.val;
+
/**
* Created by zhouxiangfeng on 2017/4/16.
*/
@@ -79,6 +83,14 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
@Override
public void onClick(View view) {
switch (view.getId()) {
+ case R.id.rly_bind_phone:
+ UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
+ if(userInfo != null && userInfo.isBindPhone()){
+ ShowBindPhoneActivity.start(context);
+ }else {
+ BindPhoneActivity.start(this);
+ }
+ break;
case R.id.rly_contact_us:
UIHelper.openContactUs(this);
break;
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/VerifyPhoneActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/VerifyPhoneActivity.kt
index dbff4194c..b50c471ce 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/VerifyPhoneActivity.kt
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/VerifyPhoneActivity.kt
@@ -1,273 +1,262 @@
-package com.yizhuan.erban.ui.setting;
+package com.yizhuan.erban.ui.setting
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-import android.view.View;
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.os.CountDownTimer
+import android.text.Editable
+import android.text.TextUtils
+import android.text.TextWatcher
+import android.view.View
+import androidx.core.content.ContextCompat
+import com.netease.nim.uikit.StatusBarUtil
+import com.trello.rxlifecycle3.android.ActivityEvent
+import com.yizhuan.erban.R
+import com.yizhuan.erban.base.BaseViewBindingActivity
+import com.yizhuan.erban.databinding.ActivityVerifyPhoneBinding
+import com.yizhuan.erban.ui.login.AreaCodeActivity
+import com.yizhuan.erban.ui.login.BindPhoneActivity
+import com.yizhuan.xchat_android_core.auth.AuthModel
+import com.yizhuan.xchat_android_core.code.CodeType
+import com.yizhuan.xchat_android_core.pay.PayModel
+import com.yizhuan.xchat_android_core.user.UserModel
+import com.yizhuan.xchat_android_core.user.bean.UserInfo
+import com.yizhuan.xchat_android_core.utils.net.BeanObserver
+import com.yizhuan.xchat_android_library.utils.ResUtil
-import com.netease.nim.uikit.StatusBarUtil;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.base.BaseBindingActivity;
-import com.yizhuan.erban.databinding.ActivityVerifyPhoneBinding;
-import com.yizhuan.erban.ui.login.BindSuccessDialog;
-import com.yizhuan.erban.ui.login.CodeDownTimer;
-import com.yizhuan.xchat_android_core.auth.AuthModel;
-import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
-import com.yizhuan.xchat_android_core.code.CodeType;
-import com.yizhuan.xchat_android_core.pay.PayModel;
-import com.yizhuan.xchat_android_core.user.UserModel;
-import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
-import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
-import com.yizhuan.xchat_android_library.utils.ResUtil;
+class VerifyPhoneActivity : BaseViewBindingActivity(),
+ View.OnClickListener, TextWatcher {
+ private var resetPwd = false
+ private var isForgetPwd = false
+ private var cdt: CountDownTimer? = null
+ private var type = CodeType.UNBIND_PHONE
-import io.reactivex.Single;
-import io.reactivex.SingleObserver;
-import io.reactivex.SingleSource;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.functions.Action;
-import io.reactivex.functions.Consumer;
-import io.reactivex.functions.Function;
+ private var isVerify = false
+ companion object {
+ const val REQUEST_CHECK_VALID_PHONE = 1001
-@ActLayoutRes(R.layout.activity_verify_phone)
-public class VerifyPhoneActivity extends BaseBindingActivity implements View.OnClickListener,
- BindSuccessDialog.BindSuccessDialogListener {
-
- public static final int REQUEST_CHECK_VALID_PHONE = 1001;
-
- private boolean isVerify;
- private boolean resetPwd;
- private boolean isForgetPwd;
- private CodeDownTimer timer;
- private int type = CodeType.UNBIND_PHONE;
-
- public static void start(Context context, boolean resetPwd) {
- Intent intent = new Intent(context, VerifyPhoneActivity.class);
- intent.putExtra("resetPwd", resetPwd);
- context.startActivity(intent);
- }
-
- public static void startForResult(Activity context, boolean isForgetPwd) {
- Intent intent = new Intent(context, VerifyPhoneActivity.class);
- intent.putExtra("isForgetPwd", isForgetPwd);
- context.startActivityForResult(intent, REQUEST_CHECK_VALID_PHONE);
- }
-
- @Override
- protected void init() {
- initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_01));
- isForgetPwd = getIntent().getBooleanExtra("isForgetPwd", false);
- resetPwd = getIntent().getBooleanExtra("resetPwd", false);
- if (UserModel.get().getCacheLoginUserInfo() != null
- && !TextUtils.isEmpty(UserModel.get().getCacheLoginUserInfo().getPhone())) {
- mBinding.etPhone.setText(UserModel.get().getCacheLoginUserInfo().getPhone());
- mBinding.etPhone.setEnabled(false);
+ @JvmStatic
+ fun start(context: Context, resetPwd: Boolean) {
+ val intent = Intent(context, VerifyPhoneActivity::class.java)
+ intent.putExtra("resetPwd", resetPwd)
+ context.startActivity(intent)
}
- mBinding.btnGetCode.setOnClickListener(this);
- mBinding.btnRegist.setOnClickListener(this);
- mBinding.ivCodeDelete.setOnClickListener(this);
+ @JvmStatic
+ fun startForResult(context: Activity, isForgetPwd: Boolean) {
+ val intent = Intent(context, VerifyPhoneActivity::class.java)
+ intent.putExtra("isForgetPwd", isForgetPwd)
+ context.startActivityForResult(intent, REQUEST_CHECK_VALID_PHONE)
+ }
+ }
+
+ override fun init() {
+ initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_01))
+ isForgetPwd = intent.getBooleanExtra("isForgetPwd", false)
+ resetPwd = intent.getBooleanExtra("resetPwd", false)
+
+ initListener()
+ }
+
+ private fun initListener() {
+ binding.tvAreaCode.setOnClickListener(this)
+ binding.tvGetCode.setOnClickListener(this)
+ binding.btnNext.setOnClickListener(this)
+ binding.etAccount.addTextChangedListener(this)
+ binding.etCode.addTextChangedListener(this)
+ }
+
+ override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+ }
+
+ override fun afterTextChanged(p0: Editable?) {
+ binding.btnNext.isEnabled = !TextUtils.isEmpty(binding.etAccount.text.toString()) &&
+ !TextUtils.isEmpty(binding.etCode.text.toString())
}
@SuppressLint("CheckResult")
- private void getCode() {
- if (isForgetPwd) {
- type = CodeType.RESET_PAY_PSW;
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.tv_area_code -> {
+ AreaCodeActivity.startForResult(this, BindPhoneActivity.REQUEST_AREA_CODE)
+ }
+ R.id.tv_get_code -> {
+ if (isForgetPwd) {
+ type = CodeType.RESET_PAY_PSW
+ }
+ AuthModel.get()
+ .getSmsCode(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ type
+ )
+ .compose(bindToLifecycle())
+ .doOnError { throwable -> toast(throwable.message) }
+ .doOnSubscribe {
+ dialogManager.showProgressDialog(
+ this@VerifyPhoneActivity,
+ ResUtil.getString(R.string.ui_setting_verifyphoneactivity_02)
+ )
+ }
+ .doAfterTerminate { dialogManager.dismissDialog() }
+ .subscribe { s: String?, throwable: Throwable? ->
+ if (throwable != null) {
+ return@subscribe
+ }
+ toast(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_03))
+ startCounter()
+ }
+ }
+ R.id.btn_next -> {
+ clickNextButton()
+ }
}
- AuthModel.get()
- .sendLoginCode(mBinding.etPhone.getText().toString(), type)
- .compose(bindToLifecycle())
- .doOnError(new Consumer() {
- @Override
- public void accept(Throwable throwable) throws Exception {
- toast(throwable.getMessage());
- }
- })
- .doOnSubscribe(new Consumer() {
- @Override
- public void accept(Disposable disposable) throws Exception {
- getDialogManager().showProgressDialog(VerifyPhoneActivity.this, ResUtil.getString(R.string.ui_setting_verifyphoneactivity_02));
- }
- })
- .doAfterTerminate(new Action() {
- @Override
- public void run() throws Exception {
- getDialogManager().dismissDialog();
- }
- })
- .subscribe((s, throwable) -> {
- if (throwable != null) {
- return;
- }
- toast(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_03));
- startCountDownTimer();
- });
-
}
- private void clickRegistButton() {
- if (TextUtils.isEmpty(mBinding.etPhone.getText().toString())) {
- toast(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_04));
- return;
- }
- if (TextUtils.isEmpty(mBinding.etCode.getText().toString())) {
- toast(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_05));
- return;
- }
+ private fun clickNextButton() {
if (isVerify) {
- getDialogManager().showProgressDialog(this, ResUtil.getString(R.string.ui_setting_verifyphoneactivity_06));
- PayModel.get().bindPhone(
- AuthModel.get().getCurrentUid() + "",
- mBinding.etPhone.getText().toString(),
- mBinding.etCode.getText().toString(),
- AuthModel.get().getTicket()
+ dialogManager.showProgressDialog(
+ this,
+ ResUtil.getString(R.string.ui_login_bindcodeactivity_02)
)
- .compose(bindToLifecycle())
- .flatMap(new Function, SingleSource>() {
- @Override
- public SingleSource apply(ServiceResult stringServiceResult) throws Exception {
- if (stringServiceResult.isSuccess()) {
- return Single.just(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_07));
- } else {
- return Single.error(new Throwable(stringServiceResult.getMessage()));
- }
- }
- })
- .subscribe(new SingleObserver() {
- @Override
- public void onSubscribe(Disposable d) {
-
- }
-
- @Override
- public void onSuccess(String s) {
- getDialogManager().dismissDialog();
- bindSuccessDialog();
- }
-
- @Override
- public void onError(Throwable e) {
- getDialogManager().dismissDialog();
- toast(e.getMessage());
- }
- });
+ AuthModel.get().bindPhone(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ binding.etCode.text.toString()
+ )
+ .compose(bindUntilEvent(ActivityEvent.DESTROY))
+ .doOnSuccess { s: String? ->
+ toast(ResUtil.getString(R.string.ui_login_bindcodeactivity_03))
+ setResult(RESULT_OK)
+ }
+ .doOnError { throwable: Throwable ->
+ toast(
+ throwable.message
+ )
+ }
+ .flatMap { s: String? ->
+ UserModel.get().updateCurrentUserInfo()
+ }
+ .doOnSuccess { s: UserInfo? ->
+ setResult(RESULT_OK)
+ finish()
+ }
+ .doFinally { dialogManager.dismissDialog() }
+ .subscribe()
} else {
- getDialogManager().showProgressDialog(this, ResUtil.getString(R.string.ui_setting_verifyphoneactivity_08));
- PayModel.get().verifyCode(
- mBinding.etPhone.getText().toString(),
- mBinding.etCode.getText().toString()
+ dialogManager.showProgressDialog(
+ this,
+ ResUtil.getString(R.string.ui_setting_verifyphoneactivity_08)
)
- .compose(bindToLifecycle())
- .subscribe(new BeanObserver() {
- @Override
- public void onErrorMsg(String error) {
- getDialogManager().dismissDialog();
- toast(error);
+ PayModel.get().verifyCode(
+ binding.tvAreaCode.text.toString().substring(1),
+ binding.tvAreaCode.text.toString()
+ .substring(1) + binding.etAccount.text.toString(),
+ binding.etCode.text.toString(),
+ )
+ .compose(bindToLifecycle())
+ .subscribe(object : BeanObserver() {
+ override fun onErrorMsg(error: String) {
+ dialogManager.dismissDialog()
+ toast(error)
+ }
+
+ override fun onSuccess(s: String) {
+ dialogManager.dismissDialog()
+ type = CodeType.BIND_PHONE
+ if (resetPwd) {
+ ModifyPwdActivity.start(
+ this@VerifyPhoneActivity,
+ ModifyPwdActivity.RESET_PAY_PWD
+ )
+ finish()
+ } else if (isForgetPwd) {
+ setResult(RESULT_OK)
+ finish()
+ } else {
+ showModifyView()
}
-
- @Override
- public void onSuccess(String s) {
- getDialogManager().dismissDialog();
- type = CodeType.BIND_PHONE;
- if (resetPwd) {
- ModifyPwdActivity.start(VerifyPhoneActivity.this, ModifyPwdActivity.RESET_PAY_PWD);
- finish();
- } else if (isForgetPwd) {
- setResult(RESULT_OK);
- finish();
- } else {
- showModifyView();
- }
- }
- });
- }
-
- }
-
- private void showModifyView() {
- isVerify = true;
- initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_09));
-
- if (timer != null) {
- timer.cancel();
- }
-
- mBinding.text.setVisibility(View.GONE);
-
- mBinding.btnGetCode.setText(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_010));
- mBinding.btnGetCode.setClickable(true);//重新获得点击
-
- mBinding.btnRegist.setText(ResUtil.getString(R.string.ui_setting_verifyphoneactivity_011));
- mBinding.etPhone.setText("");
- mBinding.etPhone.setEnabled(true);
- mBinding.etPhone.requestFocus();
- mBinding.etCode.setText("");
-
- mBinding.vsPhoneCountry.getViewStub().inflate();
- mBinding.vDividerOne.setVisibility(View.VISIBLE);
-
- }
-
- private void bindSuccessDialog() {
- BindSuccessDialog dialog = new BindSuccessDialog();
- dialog.setmListener(this);
- dialog.show(getSupportFragmentManager(), "bindSuccess");
- }
-
- @Override
- public void onClick(View v) {
- super.onClick(v);
-
- switch (v.getId()) {
- case R.id.iv_code_delete:
- mBinding.etCode.setText("");
- break;
-
- case R.id.btn_regist:
- clickRegistButton();
- break;
-
- case R.id.btn_get_code:
- getCode();
- break;
+ }
+ })
}
}
- @Override
- protected void onDestroy() {
- super.onDestroy();
- stopCountDownTimer();
+ private fun showModifyView() {
+ isVerify = true
+ initWhiteTitleBar(ResUtil.getString(R.string.text_bind_phone))
+ binding.etAccount.setText("")
+ binding.etCode.setText("")
+ resetBtn()
+ binding.btnNext.text = ResUtil.getString(R.string.ui_setting_verifyphoneactivity_011)
}
- @Override
- public void close() {
- finish();
- }
-
- private void startCountDownTimer() {
- stopCountDownTimer();
- timer = new CodeDownTimer(mBinding.btnGetCode, 60000, 1000);
- timer.start();
- }
-
- private void stopCountDownTimer() {
- if (timer != null) {
- timer.cancel();
- timer = null;
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == BindPhoneActivity.REQUEST_AREA_CODE && resultCode == RESULT_OK) {
+ val areaCode = data?.getStringExtra(AreaCodeActivity.COUNTRY_NUMBER)
+ if (areaCode != null) {
+ binding.tvAreaCode.text = areaCode
+ }
}
}
- @Override
- protected boolean needSteepStateBar() {
- return true;
+ private fun startCounter() {
+ stopCounter()
+ //开始倒计时 60s 间隔1s
+ binding.tvGetCode.isEnabled = false
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.color_9168FA))
+ cdt = object : CountDownTimer(60 * 1000, 100) {
+ override fun onTick(text: Long) {
+ showTextDown(text)
+ }
+
+ override fun onFinish() {
+ resetBtn()
+ }
+ }
+ cdt?.start()
}
- @Override
- protected void setStatusBar() {
- super.setStatusBar();
- StatusBarUtil.transparencyBar(this);
- StatusBarUtil.StatusBarLightMode(this);
+ private fun showTextDown(text: Long) {
+ val time = (text / 1000).toString() + "s"
+ binding.tvGetCode.text = time
}
-}
+
+ private fun stopCounter() {
+ cdt?.cancel()
+ cdt = null
+ }
+
+ private fun resetBtn() {
+ stopCounter()
+ binding.tvGetCode.setTextColor(ContextCompat.getColor(this, R.color.text_title_color))
+ binding.tvGetCode.isEnabled = true
+ binding.tvGetCode.text = getString(R.string.text_request_code)
+ }
+
+ override fun needSteepStateBar(): Boolean {
+ return true
+ }
+
+ override fun setStatusBar() {
+ super.setStatusBar()
+ StatusBarUtil.transparencyBar(this)
+ StatusBarUtil.StatusBarLightMode(this)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ dialogManager.dismissDialog()
+ stopCounter()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xhdpi/icon_show_bind_phone.webp b/app/src/main/res/drawable-xhdpi/icon_show_bind_phone.webp
index 5d0b59427..e91dd0a88 100644
Binary files a/app/src/main/res/drawable-xhdpi/icon_show_bind_phone.webp and b/app/src/main/res/drawable-xhdpi/icon_show_bind_phone.webp differ
diff --git a/app/src/main/res/layout/activity_area_code.xml b/app/src/main/res/layout/activity_area_code.xml
new file mode 100644
index 000000000..484479309
--- /dev/null
+++ b/app/src/main/res/layout/activity_area_code.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_authorization_code.xml b/app/src/main/res/layout/activity_authorization_code.xml
new file mode 100644
index 000000000..0ad7f270f
--- /dev/null
+++ b/app/src/main/res/layout/activity_authorization_code.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_bind_phone.xml b/app/src/main/res/layout/activity_bind_phone.xml
index 36c45495d..64f56a4af 100644
--- a/app/src/main/res/layout/activity_bind_phone.xml
+++ b/app/src/main/res/layout/activity_bind_phone.xml
@@ -4,81 +4,117 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/bg_normal_1c1b22">
+ android:background="@color/color_white">
-
-
-
+ app:layout_constraintTop_toBottomOf="@+id/ll_account">
+
+
+
+
+
+
+
+
+ android:textSize="@dimen/sp_16"
+ app:drawableEndCompat="@drawable/ic_down_arrow" />
-
+
+ app:layout_constraintTop_toBottomOf="@+id/ll_code" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login_code.xml b/app/src/main/res/layout/activity_login_code.xml
index a450f8b36..d68116dbb 100644
--- a/app/src/main/res/layout/activity_login_code.xml
+++ b/app/src/main/res/layout/activity_login_code.xml
@@ -2,98 +2,93 @@
+ android:layout_height="match_parent">
-
-
-
-
-
+ app:layout_constraintStart_toStartOf="parent">
-
+
-
+
- />
+
+
+
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/activity_login_password.xml b/app/src/main/res/layout/activity_login_password.xml
index 0f87ab0a1..35a40384b 100644
--- a/app/src/main/res/layout/activity_login_password.xml
+++ b/app/src/main/res/layout/activity_login_password.xml
@@ -25,7 +25,8 @@
android:fontFamily="sans-serif-medium"
android:text="@string/layout_activity_login_password_01"
android:textColor="@color/text_title_color"
- android:textSize="30sp"
+ android:textSize="40sp"
+ android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -57,9 +58,7 @@
android:layout_marginTop="30dp"
android:layout_marginEnd="33dp"
android:background="@drawable/shape_login_btn_bg"
- android:baselineAligned="true"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent">
+ android:baselineAligned="true">
+ android:baselineAligned="true">
+ android:textColor="@color/white" />
diff --git a/app/src/main/res/layout/activity_login_phone.xml b/app/src/main/res/layout/activity_login_phone.xml
new file mode 100644
index 000000000..2319f2c5f
--- /dev/null
+++ b/app/src/main/res/layout/activity_login_phone.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_reset_login_pwd.xml b/app/src/main/res/layout/activity_reset_login_pwd.xml
index c99eddaea..5ff3bdcd2 100644
--- a/app/src/main/res/layout/activity_reset_login_pwd.xml
+++ b/app/src/main/res/layout/activity_reset_login_pwd.xml
@@ -1,119 +1,113 @@
-
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/color_white"
+ android:orientation="vertical">
-
-
-
-
+
+ android:layout_height="48dp"
+ android:layout_marginStart="@dimen/dp_15"
+ android:layout_marginTop="30dp"
+ android:layout_marginEnd="@dimen/dp_15"
+ android:background="@drawable/bg_f0f5f6_r25">
-
+
+
+ android:layout_height="match_parent"
+ android:background="@null"
+ android:digits="0123456789"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:inputType="number"
+ android:paddingStart="0dp"
+ android:paddingEnd="@dimen/dp_20"
+ android:singleLine="true"
+ android:textColor="@color/text_title_color"
+ android:textSize="@dimen/dp_15"
+ tools:ignore="SpUsage"
+ tools:text="123456" />
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
index bbee5dcae..c3607768f 100644
--- a/app/src/main/res/layout/activity_setting.xml
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -30,6 +30,43 @@
android:layout_height="wrap_content"
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
@@ -40,8 +41,9 @@
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/app_248cfe"
- android:textSize="@dimen/sp_18"
+ android:textColor="@color/color_9168FA"
+ android:textSize="@dimen/sp_16"
+ android:textStyle="bold"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/phone_tips"
@@ -50,15 +52,15 @@
diff --git a/app/src/main/res/layout/activity_verify_phone.xml b/app/src/main/res/layout/activity_verify_phone.xml
index 06f42180c..78da3a022 100644
--- a/app/src/main/res/layout/activity_verify_phone.xml
+++ b/app/src/main/res/layout/activity_verify_phone.xml
@@ -1,162 +1,120 @@
-
+
-
-
-
-
+
+ android:layout_height="48dp"
+ android:layout_marginStart="@dimen/dp_15"
+ android:layout_marginTop="30dp"
+ android:layout_marginEnd="@dimen/dp_15"
+ android:background="@drawable/bg_f0f5f6_r25"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/title_bar">
-
+
+
+ android:layout_height="match_parent"
+ android:background="@null"
+ android:digits="0123456789"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:inputType="number"
+ android:paddingStart="0dp"
+ android:paddingEnd="@dimen/dp_20"
+ android:singleLine="true"
+ android:textColor="@color/text_title_color"
+ android:textSize="@dimen/dp_15"
+ tools:ignore="SpUsage"
+ tools:text="123456" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_country.xml b/app/src/main/res/layout/item_country.xml
new file mode 100644
index 000000000..e83b18cd9
--- /dev/null
+++ b/app/src/main/res/layout/item_country.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 2a2489652..52ba7df80 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -68,4 +68,249 @@
- 永恒爱情城堡CP位\n+永恒CP头饰\n+永恒CP铭牌
+
+ - Taiwan(TW)*+886
+ - Hongkong(HK)*+852
+ - Macao(MO)*+853
+ - 中国大陆(CN)*+86
+ - Malaysia(MY)*+60
+ - Singapore(SG) *+65
+ - India(IN)*+91
+ - Indonesia(ID)*+62
+ - ไทย(TH)*+66
+ - Việt,Nam(VN) *+84
+ - 日本(JP)*+81
+ - United,States(US)*+1
+ - New,Zealand(NZ)*+64
+ - American,Samoa(AS)*+1
+ - Andorra(AD)*+376
+ - Angola(AO)*+244
+ - Anguilla(AI)*+1
+ - Antigua,and,Barbuda(AG)*+1
+ - Argentina(AR)*+54
+ - Aruba(AW)*+297
+ - Ascension,Island(AC)*+247
+ - Australia(AU)*+61
+ - Azərbaycan(AZ)*+994
+ - Åland(AX)*+358
+ - Bahamas(BS)*+1
+ - Barbados(BB)*+1
+ - België(BE)*+32
+ - Belize(BZ)*+501
+ - Bermuda(BM)*+1
+ - Bénin(BJ)*+229
+ - Bolivia(BO)*+591
+ - Bosna,i,Hercegovina(BA)*+387
+ - Botswana(BW)*+267
+ - Brasil(BR)*+55
+ - British,Indian,Ocean,Territory(IO)*+246
+ - British,Virgin,Islands(VG)*+1
+ - Brunei(BN)*+673
+ - Burkina,Faso(BF)*+226
+ - Burundi(BI)*+257
+ - Cameroon(CM)*+237
+ - Canada(CA)*+1
+ - Caribisch,Nederland(BQ)*+599
+ - Cayman,Islands(KY)*+1
+ - Chile(CL)*+56
+ - Christmas,Island(CX)*+61
+ - Città,del,Vaticano(VA)*+379
+ - Colombia(CO)*+57
+ - Congo-Brazzaville(CG)*+242
+ - Congo-Kinshasa(CD)*+243
+ - Cook,Islands(CK)*+682
+ - Costa,Rica(CR)*+506
+ - Côte,d’Ivoire(CI)*+225
+ - Cuba(CU)*+53
+ - Curaçao(CW)*+599
+ - Česká,republika(CZ)*+420
+ - Danmark(DK)*+45
+ - Deutschland(DE)*+49
+ - Djibouti(DJ)*+253
+ - Dominica(DM)*+1
+ - Ecuador(EC)*+593
+ - Eesti(EE)*+372
+ - El,Salvador(SV)*+503
+ - Eretria(ER)*+291
+ - España(ES)*+34
+ - Falkland,Islands(FK)*+500
+ - Fiji(FJ)*+679
+ - France(FR)*+33
+ - Føroyar(FO)*+298
+ - Gabon(GA)*+241
+ - Gambia(GM)*+220
+ - Ghana(GH)*+233
+ - Gibraltar(GI)*+350
+ - Grenada(GD)*+1
+ - Guadeloupe(GP)*+590
+ - Guam(GU)*+1
+ - Guatemala(GT)*+502
+ - Guernsey(GG)*+44
+ - Guinea,Ecuatorial(GQ)*+240
+ - Guiné,Bissau(GW)*+245
+ - Guinée(GN)*+224
+ - Guyana(GY)*+592
+ - Guyane,française(GF)*+594
+ - Haïti(HT)*+509
+ - Honduras(HN)*+504
+ - Hrvatska(HR)*+385
+ - India(IN)*+91
+ - Ireland(IE)*+353
+ - Isle,of,Man(IM)*+44
+ - Italia(IT)*+39
+ - Ísland(IS)*+354
+ - Jamaica(JM)*+1
+ - Jersey(JE)*+44
+ - Kalaallit,Nunaat(GL)*+299
+ - Kenya(KE)*+254
+ - Kepulauan,Cocos,(Keeling)(CC)*+61
+ - Kiribati(KI)*+686
+ - La,Réunion(RE)*+262
+ - Latvija(LV)*+371
+ - Lesotho(LS)*+266
+ - Liberia(LR)*+231
+ - Liechtenstein(LI)*+423
+ - Lietuva(LT)*+370
+ - Luxemburg(LU)*+352
+ - Madagascar(MG)*+261
+ - Magyarország(HU)*+36
+ - Malawi(MW)*+265
+ - Maldives(MV)*+960
+ - Mali(ML)*+223
+ - Malta(MT)*+356
+ - Marshall,Islands(MH)*+692
+ - Martinique(MQ)*+596
+ - Mauritius(MU)*+230
+ - Mayotte(YT)*+262
+ - México(MX)*+52
+ - Micronesia(FM)*+691
+ - Moçambique(MZ)*+258
+ - Monaco(MC)*+377
+ - Montserrat(MS)*+1
+ - Namibia(NA)*+264
+ - Nauru(NR)*+674
+ - Nederland(NL)*+31
+ - Nicaragua(NI)*+505
+ - Niger(NE)*+227
+ - Nigeria(NG)*+234
+ - Niue(NU)*+683
+ - Norfolk,Island(NF)*+672
+ - Norge(NO)*+47
+ - Northern,Mariana,Islands(MP)*+1
+ - Nouvelle-Calédonie(NC)*+687
+ - Oʻzbekiston(UZ)*+998
+ - Österreich(AT)*+43
+ - Palau(PW)*+680
+ - Panamá(PA)*+507
+ - Papua,New,Guinea(PG)*+675
+ - Paraguay(PY)*+595
+ - Perú(PE)*+51
+ - Philippines(PH)*+63
+ - Polska(PL)*+48
+ - Polynésie,française(PF)*+689
+ - Portugal(PT)*+351
+ - Puerto,Rico(PR)*+1
+ - Republica,Moldova(MD)*+373
+ - República,Dominicana(DO)*+1
+ - République,centrafricaine(CF)*+236
+ - România(RO)*+40
+ - Rwanda(RW)*+250
+ - Saint,Helena(SH)*+290
+ - Saint,Kitts,and,Nevis(KN)*+1
+ - Saint,Lucia(LC)*+1
+ - Saint-Barthélemy(BL)*+590
+ - Saint-Martin,(partie,française)(MF) *+590
+ - Saint-Pierre-et-Miquelon(PM)*+508
+ - Samoa(WS)*+685
+ - San,Marino(SM)*+378
+ - São,Tomé,e,Príncipe(ST)*+239
+ - Schweiz(CH) *+41
+ - Seychelles(SC) *+248
+ - Sénégal(SN) *+221
+ - Shqipëri(AL) *+355
+ - Sierra,Leone(SL) *+232
+ - Sint-Maarten(SX) *+1
+ - Slovenija(SI) *+386
+ - Slovensko(SK) *+421
+ - Solomon,Islands(SB) *+477
+ - Soomaaliya(SO) *+252
+ - South,Sudan(SS) *+211
+ - St.,Vincent,Grenadines(VC) *+1
+ - Suomi(FI) *+358
+ - Suriname(SR) *+597
+ - Sverige(SE)*+46
+ - Swaziland(SZ) *+568
+ - Tanzania(TZ) *+255
+ - Tchad(TD) *+235
+ - Timor-Leste(TL) *+670
+ - Togo(TG) *+228
+ - Tokelau(TK) *+690
+ - Tonga(TO) *+676
+ - Trinidad,and,Tobago(TT) *+1
+ - Turks,and,Caicos,Islands(TC) *+1
+ - Tuvalu(TV) *+688
+ - Türkiye(TR) *+90
+ - U.S.,Virgin,Islands(VI) *+1
+ - Uganda(UG) *+256
+ - United,Kingdom(GB)*+44
+ - Uruguay(UY) *+598
+ - Vanuatu(VU) *+678
+ - Venezuela(VE) *+58
+ - Wallis-et-Futuna(WF) *+681
+ - Zambia(ZM) *+260
+ - Zimbabwe(ZW) *+263
+ - i-South,Africa(ZA)*+27
+ - Ελλάδα(GR)*+30
+ - Κύπρος(CY) *+357
+ - Беларусь(BY) *+375
+ - България(BG) *+359
+ - Кыргызстан(KG) *+996
+ - Македонија(MK) *+389
+ - Монгол(MN) *+976
+ - Россия(RU) *+7
+ - Србија(RS) *+381
+ - Тоҷикистон(TJ) *+992
+ - Туркменистан(TM) *+993
+ - Україна(UA) *+380
+ - Црна,Гора(ME) *+382
+ - Шпицберген,и,Ян-Майен(SJ)*+47
+ - Қазақстан(KZ)*+7
+ - Հայաստան(AM) *+374
+ - ישראל(IL) *+972
+ - افغانستان(AF) *+93
+ - الأراضي,الفلسطينية(PS) *+970
+ - الأردن(JO) *+962
+ - الإمارات,العربية,المتحدة(AE) *+971
+ - البحرين(BH) *+973
+ - الجزائر(DZ) *+213
+ - السودان(SD) *+249
+ - العراق(IQ) *+964
+ - الكويت(KW) *+965
+ - المغرب(MA) *+212
+ - المملكة,العربية,السعودية(SA) *+966
+ - اليمن(YE) *+967
+ - ایران(IR) *+98
+ - تونس(TN) *+216
+ - جزر,القمر(KM) *+269
+ - سوريا(SY) *+963
+ - عُمان(OM) *+968
+ - قطر(QA) *+974
+ - لبنان(LB) *+961
+ - ليبيا(LY) *+218
+ - مصر(EG) *+20
+ - موريتانيا(MR) *+222
+ - پاکستان(PK) *+92
+ - नेपाल(NP) *+977
+ - বাংলাদেশ(BD) *+880
+ - ශ්රී,ලංකාව(LK) *+94
+ - ລາວ(LA)*+856
+ - འབྲུག(BT)*+975
+ - Myanmar(MM)*+95
+ - საქართველო(GE)*+995
+ - 대한민국(KR)*+82
+ - 조선,민주주의,인민,공화국(KP)*+850
+ - Ethiopia(ET)*+251
+ - កម្ពុជា(KH)*+855
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 78fc46ac3..05cecbbfd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -571,6 +571,9 @@
我是兔兔老用戶
我是Peko新用戶
登錄
+ 驗證碼
+ 授權碼
+ 重新獲取
請輸入您耳伴綁定 QQ 的 ID
請輸入您的密碼
未設置密碼的用戶記得前往耳伴設置密碼後登錄哦
@@ -3037,7 +3040,7 @@
(不含貴族鉆石)
未綁定
您當前綁定的手機號為
- 更改手機號碼
+ 更換手機號
活動規則
分享好友
獲得蘿蔔x30
@@ -4995,5 +4998,7 @@
全部
次
暫無數據
+ 選擇區号
+ 輸入驗證碼
\ No newline at end of file
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ClanHallMemberIncomeTotalInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ClanHallMemberIncomeTotalInfo.kt
index 53ece75cc..90925f0f5 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ClanHallMemberIncomeTotalInfo.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ClanHallMemberIncomeTotalInfo.kt
@@ -1,7 +1,9 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.math.BigDecimal
+@Data
data class ClanHallMemberIncomeTotalInfo(
val total: BigDecimal,
val hallVoList: List,
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ConfigWithdrawInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ConfigWithdrawInfo.kt
index 4b13dada7..1f035a74b 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ConfigWithdrawInfo.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/ConfigWithdrawInfo.kt
@@ -1,8 +1,10 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.io.Serializable
import java.math.BigDecimal
+@Data
data class ConfigWithdrawInfo(
val account: WithdrawAccount? = null,
val golds: BigDecimal,//钱包当前金币数
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/EarnRecordInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/EarnRecordInfo.kt
index def7f0c14..64c211fa6 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/EarnRecordInfo.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/EarnRecordInfo.kt
@@ -1,7 +1,9 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.math.BigDecimal
+@Data
data class EarnRecordInfo(
val uid: Long,
val diamonds: BigDecimal,
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt
index f4b313a41..700005a46 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/GoldToDiamondInfo.kt
@@ -1,8 +1,10 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.io.Serializable
import java.math.BigDecimal
+@Data
data class GoldToDiamondInfo(
val diamonds: BigDecimal,
val golds: BigDecimal,
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/HallVo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/HallVo.kt
index 623b9eb64..d7e35b2fd 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/HallVo.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/HallVo.kt
@@ -1,5 +1,8 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
+
+@Data
data class HallVo(
val hallId: Long,
val hallName: String,
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/MemberSettlement.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/MemberSettlement.kt
index 65bb9a97d..3eac0be93 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/MemberSettlement.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/MemberSettlement.kt
@@ -1,7 +1,9 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.math.BigDecimal
+@Data
data class MemberSettlement(
val uid: Long,
val nick: String,//昵称
diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/WithdrawAccount.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/WithdrawAccount.kt
index ad7360762..fec14c024 100644
--- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/WithdrawAccount.kt
+++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/earn/bean/WithdrawAccount.kt
@@ -1,7 +1,9 @@
package com.yizhuan.xchat_android_core.earn.bean
+import lombok.Data
import java.io.Serializable
+@Data
data class WithdrawAccount(
val uid: Long,
val swift: String,
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java
index 1547c20b7..ce63749f5 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java
@@ -18,8 +18,8 @@ import com.netease.nimlib.sdk.auth.LoginInfo;
import com.netease.nimlib.sdk.mixpush.MixPushService;
import com.netease.nimlib.sdk.msg.MsgService;
import com.orhanobut.logger.Logger;
-import com.yizhuan.xchat_android_core.R;
import com.yizhuan.xchat_android_core.DemoCache;
+import com.yizhuan.xchat_android_core.R;
import com.yizhuan.xchat_android_core.auth.entity.AccountInfo;
import com.yizhuan.xchat_android_core.auth.entity.ThirdUserInfo;
import com.yizhuan.xchat_android_core.auth.entity.TicketInfo;
@@ -202,9 +202,10 @@ public class AuthModel extends BaseModel implements IAuthModel {
/**
* 判断是否已登录
+ *
* @return
*/
- @Override
+ @Override
public boolean isLogin() {
return currentAccountInfo != null && !TextUtils.isEmpty(currentAccountInfo.getAccess_token());
}
@@ -369,7 +370,7 @@ public class AuthModel extends BaseModel implements IAuthModel {
@Override
public void onError(Platform platform, int i, Throwable throwable) {
- e.onError(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_04)+ i));
+ e.onError(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_04) + i));
throwable.printStackTrace();
}
@@ -546,6 +547,7 @@ public class AuthModel extends BaseModel implements IAuthModel {
.compose(RxHelper.handleException())
.doOnSuccess(s -> EventBus.getDefault().post(new LoginEvent()));
}
+
/**
* 第三方信息登录
*
@@ -718,15 +720,14 @@ public class AuthModel extends BaseModel implements IAuthModel {
* @return
*/
@Override
- public Single bindPhone(String phone, String code) {
+ public Single bindPhone(String phoneAreaCode, String phone, String code) {
if (currentAccountInfo == null || currentAccountInfo.getUid() == 0) {
return Single.error(new Throwable(ResUtil.getString(R.string.xchat_android_core_auth_authmodel_016)));
}
return api.bindPhone(
- String.valueOf(currentAccountInfo.getUid()),
+ phoneAreaCode,
DESUtils.DESAndBase64(phone),
- code,
- getTicket()
+ code
)
.flatMap(serviceResult -> {
if (!serviceResult.isSuccess()) {
@@ -1015,6 +1016,25 @@ public class AuthModel extends BaseModel implements IAuthModel {
// NIMClient.updateStatusBarNotificationConfig(statusBarNotificationConfig);
}
+ /**
+ * 发送验证码
+ *
+ * @param areaCode 地区码
+ * @param phone 手机
+ * @param type
+ * @return
+ */
+ public Single getSmsCode(String areaCode, String phone, int type) {
+ return api.getCode(areaCode, DESUtils.DESAndBase64(phone), String.valueOf(type))
+ .subscribeOn(Schedulers.io())
+ .map(objectServiceResult -> {
+ if (!objectServiceResult.isSuccess()) {
+ throw new RuntimeException(objectServiceResult.getMessage());
+ }
+ return objectServiceResult.getMessage();
+ }).observeOn(AndroidSchedulers.mainThread());
+ }
+
/**
* 在账号被禁止的情况下发送验证码
*
@@ -1039,8 +1059,8 @@ public class AuthModel extends BaseModel implements IAuthModel {
* @param code
* @return
*/
- public Single checkLoginCode(String account, String code) {
- return api.check(account, code)
+ public Single checkLoginCode(String phoneAreaCode, String account, String code) {
+ return api.check(phoneAreaCode, account, code)
.map(new Function, String>() {
@Override
@@ -1196,30 +1216,17 @@ public class AuthModel extends BaseModel implements IAuthModel {
/**
* 绑定手机
*
- * @param uid
* @param phone
* @param code
- * @param ticket
+ * @param phoneAreaCode
* @return
*/
@FormUrlEncoded
- @POST("/withDraw/phone")
- Single bindPhone(@Field("uid") String uid,
+ @POST("/user/boundPhone")
+ Single bindPhone(@Field("phoneAreaCode") String phoneAreaCode,
@Field("phone") String phone,
- @Field("code") String code,
- @Field("ticket") String ticket);
+ @Field("code") String code);
- /**
- * 获取绑定手机验证码
- *
- * @param params
- * @param sign
- * @return
- */
- @FormUrlEncoded
- @POST("/withDraw/phoneCode")
- Single getSMSCode(@Field("params") String params,
- @Field("sign") String sign);
/**
* 注册接口
@@ -1286,6 +1293,17 @@ public class AuthModel extends BaseModel implements IAuthModel {
@Field("ticket") String ticket);
+ /**
+ * 发送验证码
+ *
+ * @param phone
+ * @param type
+ * @return
+ */
+ @FormUrlEncoded
+ @POST("sms/getCode")
+ Single> getCode(@Field("phoneAreaCode") String phoneAreaCode, @Field("mobile") String phone, @Field("type") String type);
+
/**
* 发送验证码
*
@@ -1306,7 +1324,7 @@ public class AuthModel extends BaseModel implements IAuthModel {
*/
@FormUrlEncoded
@POST("sms/login/verify")
- Single> check(@Field("phone") String phone, @Field("code") String code);
+ Single> check(@Field("phoneAreaCode") String phoneAreaCode, @Field("phone") String phone, @Field("code") String code);
/**
* @param token 易盾一键登录token
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java
index b0c2b9f1c..dbc52c256 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/IAuthModel.java
@@ -5,7 +5,7 @@ import com.yizhuan.xchat_android_core.base.IModel;
import io.reactivex.Single;
-public interface IAuthModel extends IModel{
+public interface IAuthModel extends IModel {
ThirdUserInfo getThirdUserInfo();
@@ -14,12 +14,14 @@ public interface IAuthModel extends IModel{
/**
* 获取当前登录的uid,登录成功后就有值了
+ *
* @return
*/
long getCurrentUid();
/**
* 获取ticket,登录成功后就有真实值
+ *
* @return
*/
String getTicket();
@@ -31,12 +33,14 @@ public interface IAuthModel extends IModel{
/**
* 自动登录
+ *
* @return
*/
Single autoLogin();
/**
* 账号密码登录
+ *
* @param account
* @param password
* @return
@@ -45,9 +49,10 @@ public interface IAuthModel extends IModel{
/**
* 带验证码的账号密码登录
+ *
* @param account
* @param password
- * @param code 验证码
+ * @param code 验证码
* @return
*/
Single login(String account, String password, String code, String yiDunToken, String shuMeiDeviceId);
@@ -65,6 +70,7 @@ public interface IAuthModel extends IModel{
/**
* 重置密码
+ *
* @param phone
* @param sms_code
* @param newPsw
@@ -74,24 +80,27 @@ public interface IAuthModel extends IModel{
/**
* 当前用户是否绑定手机
+ *
* @return
*/
Single isBindPhone();
/**
* 绑定手机
+ *
* @param phone
* @param code
* @return
*/
- Single bindPhone(String phone, String code);
+ Single bindPhone(String phoneAreaCode, String phone, String code);
/**
* 注册
+ *
* @param phone
* @param sms_code
* @param password
- * @param yiDunToken 易盾的 token
+ * @param yiDunToken 易盾的 token
* @param shuMeiDeviceId 数美天网的 deviceId
* @return
*/
@@ -102,6 +111,7 @@ public interface IAuthModel extends IModel{
/**
* 修改登录密码
+ *
* @param phone
* @param oldPwd
* @param newPwd
@@ -113,6 +123,7 @@ public interface IAuthModel extends IModel{
/**
* 设置登录密码,在第三方登录的情况下是没有登录密码的,这里接口可以设置登录密码,账号为耳伴号
+ *
* @param phone
* @param newPwd
* @return
@@ -122,6 +133,7 @@ public interface IAuthModel extends IModel{
/**
* 判断IM 登录状态
+ *
* @return
*/
boolean isImLogin();
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java
index e8b9da5a7..0bcfa2539 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/pay/IPayModel.java
@@ -16,7 +16,8 @@ import java.util.List;
import io.reactivex.Single;
-/**访问网络 的方法
+/**
+ * 访问网络 的方法
* Created by zhouxiangfeng on 2017/6/19.
*/
@@ -28,9 +29,12 @@ public interface IPayModel extends IModel {
void setCurrentWalletInfo(WalletInfo walletInfo);
void requestChargeOrOrderInfo();
-// 查询钱包的方法,需要加权限ticket
+
+ // 查询钱包的方法,需要加权限ticket
Single getWalletInfo(long uid, String cache);
+
Single getWalletInfo(long uid);
+
Single getWalletInfo();
/*
获取充值产品列表
@@ -39,7 +43,7 @@ public interface IPayModel extends IModel {
3,苹果充值
*/
- Single getChargeList(int channelType,long uid);
+ Single getChargeList(int channelType, long uid);
//发起充值u
Single requestCharge(Context context, String chargeProdId, String payChannel);
@@ -50,6 +54,7 @@ public interface IPayModel extends IModel {
/**
* 修改支付密码时候,绑定手机时候获取手机验证码
+ *
* @param mobile
* @param checkExists
* @param uid
@@ -65,14 +70,16 @@ public interface IPayModel extends IModel {
/**
* 修改支付密码时候,发送到后台验证手机号与手机验证码是否匹配
+ *
* @param mobile
* @param code
* @return
*/
- Single verifyCode(String mobile, String code);
+ Single verifyCode(String phoneAreaCode, String mobile, String code);
/**
* 修改支付密码时候,绑定手机
+ *
* @param uid
* @param phone
* @param code
@@ -97,7 +104,7 @@ public interface IPayModel extends IModel {
void setFirstChargeSuccess(boolean firstChargeSuccess);
- Single giveGold(long toUid, String goldNum,String password);
+ Single giveGold(long toUid, String goldNum, String password);
Single> getFirstChargeList();
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java
index 9d7a42f12..3456428ac 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/pay/PayModel.java
@@ -149,10 +149,10 @@ public class PayModel extends BaseModel implements IPayModel {
@Override
public Single getWalletInfo(long uid, String cache) {
return api.getMyWallet(
- uid,
- AuthModel.get().getTicket(),
- cache
- )
+ uid,
+ AuthModel.get().getTicket(),
+ cache
+ )
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers())
.doOnSuccess(info -> {
@@ -181,10 +181,10 @@ public class PayModel extends BaseModel implements IPayModel {
}
@Override
- public Single getChargeList(int channelType,long uid) {
+ public Single getChargeList(int channelType, long uid) {
return api.getChargeList(
- String.valueOf(channelType),uid
- )
+ String.valueOf(channelType), uid
+ )
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
}
@@ -193,12 +193,12 @@ public class PayModel extends BaseModel implements IPayModel {
@Override
public Single requestCharge(Context context, String chargeProdId, String payChannel) {
return api.requestCharge(
- String.valueOf(AuthModel.get().getCurrentUid()),
- chargeProdId,
- String.valueOf(payChannel),
- NetworkUtils.getIPAddress(context),
- AuthModel.get().getTicket()
- )
+ String.valueOf(AuthModel.get().getCurrentUid()),
+ chargeProdId,
+ String.valueOf(payChannel),
+ NetworkUtils.getIPAddress(context),
+ AuthModel.get().getTicket()
+ )
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
@@ -208,10 +208,10 @@ public class PayModel extends BaseModel implements IPayModel {
public Single requestCDKeyCharge(String code) {
return api.requestCDKeyCharge(
- String.valueOf(AuthModel.get().getCurrentUid()),
- code,
- AuthModel.get().getTicket()
- )
+ String.valueOf(AuthModel.get().getCurrentUid()),
+ code,
+ AuthModel.get().getTicket()
+ )
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers())
.flatMap(info -> {
@@ -231,12 +231,12 @@ public class PayModel extends BaseModel implements IPayModel {
@Override
public Single exchangeGold(int diamondNum, int hammerNum, String pwd) {
return api.changeGold(
- String.valueOf(AuthModel.get().getCurrentUid()),
- String.valueOf(diamondNum),
- String.valueOf(hammerNum),
- pwd,
- AuthModel.get().getTicket()
- )
+ String.valueOf(AuthModel.get().getCurrentUid()),
+ String.valueOf(diamondNum),
+ String.valueOf(hammerNum),
+ pwd,
+ AuthModel.get().getTicket()
+ )
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers())
.doOnSuccess(info -> {
@@ -276,9 +276,9 @@ public class PayModel extends BaseModel implements IPayModel {
* @return
*/
@Override
- public Single verifyCode(String mobile,
+ public Single verifyCode(String phoneAreaCode, String mobile,
String code) {
- return api.verifyCode(DESUtils.DESAndBase64(mobile), code)
+ return api.verifyCode(phoneAreaCode, DESUtils.DESAndBase64(mobile), code)
.flatMap(new Function, SingleSource>() {
@Override
public SingleSource apply(ServiceResult stringServiceResult) throws Exception {
@@ -422,8 +422,8 @@ public class PayModel extends BaseModel implements IPayModel {
}
@Override
- public Single giveGold(long toUid, String goldNum,String password) {
- return api.giveGold(toUid, goldNum,password)
+ public Single giveGold(long toUid, String goldNum, String password) {
+ return api.giveGold(toUid, goldNum, password)
.compose(RxHelper.handleStringData())
.compose(RxHelper.handleSchedulers());
}
@@ -434,7 +434,7 @@ public class PayModel extends BaseModel implements IPayModel {
* @return
*/
@Override
- public Single> getFirstChargeList(){
+ public Single> getFirstChargeList() {
return api.getFirstChargeList()
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchAndExce());
@@ -446,7 +446,7 @@ public class PayModel extends BaseModel implements IPayModel {
* @return
*/
@Override
- public Single getNewUserChargeInfo(){
+ public Single getNewUserChargeInfo() {
return api.getNewUserChargeInfo()
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchAndExce());
@@ -497,6 +497,7 @@ public class PayModel extends BaseModel implements IPayModel {
/**
* 获取钱包
+ *
* @return
*/
@GET("/purse/query")
@@ -509,7 +510,7 @@ public class PayModel extends BaseModel implements IPayModel {
* @return
*/
@GET("/chargeprod/listV2")
- Single> getChargeList(@Query("channelType") String channelType ,
+ Single> getChargeList(@Query("channelType") String channelType,
@Query("pub_uid") long pub_uid);
@@ -580,7 +581,8 @@ public class PayModel extends BaseModel implements IPayModel {
* @return
*/
@GET("sms/verify")
- Single> verifyCode(@Query("mobile") String mobile,
+ Single> verifyCode(@Query("phoneAreaCode") String phoneAreaCode,
+ @Query("mobile") String mobile,
@Query("code") String code);
/**
diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
index 01285f3d1..f86a27ea9 100644
--- a/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
+++ b/core/src/main/java/com/yizhuan/xchat_android_core/user/bean/UserInfo.java
@@ -154,9 +154,13 @@ public class UserInfo implements Serializable {
* 头饰信息
*/
private HeadWearInfo userHeadwear;
+ @Getter
+ @Setter
+ //区号
+ private String phoneAreaCode;
//手机号
private String phone;
- //手机号
+ //是否绑定手机号
private boolean isBindPhone;
//是否设置密码
private boolean isBindPasswd;