注册/登录接口联调
This commit is contained in:
@@ -18,7 +18,7 @@ public class AppConfig {
|
|||||||
// public static boolean IS_TEST_REQUEST = true;
|
// public static boolean IS_TEST_REQUEST = true;
|
||||||
|
|
||||||
/**************************本地*******************************/
|
/**************************本地*******************************/
|
||||||
public static String BASE_URL = "http://192.168.1.67:8081/";//测试
|
public static String BASE_URL = "http://192.168.1.217:8081/";//测试
|
||||||
public static String BASE_URL_TWO = BASE_URL;//测试
|
public static String BASE_URL_TWO = BASE_URL;//测试
|
||||||
public static String BASE_URL_THREE = BASE_URL;//测试
|
public static String BASE_URL_THREE = BASE_URL;//测试
|
||||||
public static boolean IS_TEST_REQUEST = true;
|
public static boolean IS_TEST_REQUEST = true;
|
||||||
@@ -116,4 +116,8 @@ public class AppConfig {
|
|||||||
//用户分享链接
|
//用户分享链接
|
||||||
public static String USER_SHARE_URL = "https://sta.mingdengbazi.site/on/index.html?code=";
|
public static String USER_SHARE_URL = "https://sta.mingdengbazi.site/on/index.html?code=";
|
||||||
|
|
||||||
|
//clientID 固定 token
|
||||||
|
public static String APP_CLIENT_ID = "428a8310cd442757ae699df5d894f051";
|
||||||
|
public static String APP_USER_TYPE = "app_user";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,6 +122,11 @@ public class GuideActivity extends BaseActivity<GuideActivityLayoutBinding, Logi
|
|||||||
super.initWidget();
|
super.initWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCodeSuccess(BaseBean bean) {
|
public void getPhoneCodeSuccess(BaseBean bean) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ import android.os.Bundle;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.ckkj.water.AppConfig;
|
||||||
import com.ckkj.water.login.LoginActivity;
|
import com.ckkj.water.login.LoginActivity;
|
||||||
|
import com.ckkj.water.login.RegisterActivity;
|
||||||
|
import com.ckkj.water.login.RegisterSuccessActivity;
|
||||||
import com.gyf.immersionbar.ImmersionBar;
|
import com.gyf.immersionbar.ImmersionBar;
|
||||||
import com.ckkj.water.ConstantUtil;
|
import com.ckkj.water.ConstantUtil;
|
||||||
import com.ckkj.water.MyApplication;
|
import com.ckkj.water.MyApplication;
|
||||||
@@ -88,9 +91,15 @@ public class LaunchActivity extends BaseActivity<GuideLayoutBinding, MainPresent
|
|||||||
new Handler().postDelayed(new Runnable() {
|
new Handler().postDelayed(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
if(AppConfig.USER_LOGIN){
|
||||||
Intent intent = new Intent(mContext, MainActivity.class);
|
Intent intent = new Intent(mContext, MainActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
finish();
|
finish();
|
||||||
|
}else{
|
||||||
|
goTo(mContext, LoginActivity.class,null);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}, 2000);
|
}, 2000);
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ public class ForgetPasswordActivity extends BaseActivity<RegisterLayoutBinding,
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCodeSuccess(BaseBean bean) {
|
public void getPhoneCodeSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
|
|||||||
setClick(viewBinding.tvGoRegister);
|
setClick(viewBinding.tvGoRegister);
|
||||||
setClick(viewBinding.tvLanguage);
|
setClick(viewBinding.tvLanguage);
|
||||||
setClick(viewBinding.tvResetPsd);
|
setClick(viewBinding.tvResetPsd);
|
||||||
|
setClick(viewBinding.checkboxRead);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setClick(View view) {
|
private void setClick(View view) {
|
||||||
@@ -86,59 +87,74 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupAgreementText() {
|
private void setupAgreementText() {
|
||||||
String prefix = getString(R.string.login_agreement_prefix);
|
//勾选协议,增加点击区域
|
||||||
String privacy = getString(R.string.login_privacy_policy);
|
ClickUtil.addClickPart(viewBinding.checkboxRead,100);
|
||||||
String and = getString(R.string.login_and);
|
TextView tvAgreement = findViewById(R.id.tv_agreement_full);
|
||||||
String userAgreement = getString(R.string.login_user_agreement);
|
String content = "我已经阅读并同意智能浇灌《用户协议》、《隐私政策》";
|
||||||
String content = prefix + privacy + and + userAgreement;
|
|
||||||
|
|
||||||
SpannableString spannableString = new SpannableString(content);
|
SpannableString spannableString = new SpannableString(content);
|
||||||
|
|
||||||
int privacyStart = prefix.length();
|
// 设置“用户协议”可点击
|
||||||
int privacyEnd = privacyStart + privacy.length();
|
|
||||||
ClickableSpan privacyPolicySpan = new ClickableSpan() {
|
|
||||||
@Override
|
|
||||||
public void onClick(@NonNull View widget) {
|
|
||||||
Bundle bundle = new Bundle();
|
|
||||||
bundle.putInt("from_requse_code", WebviewUserAgreement.PRIVACY_CODE);
|
|
||||||
goToWihoutNoPresent(mContext, WebviewUserAgreement.class, bundle);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateDrawState(@NonNull TextPaint ds) {
|
|
||||||
super.updateDrawState(ds);
|
|
||||||
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu));
|
|
||||||
ds.setUnderlineText(false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
spannableString.setSpan(privacyPolicySpan, privacyStart, privacyEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
|
||||||
|
|
||||||
int userStart = privacyEnd + and.length();
|
|
||||||
int userEnd = userStart + userAgreement.length();
|
|
||||||
ClickableSpan userAgreementSpan = new ClickableSpan() {
|
ClickableSpan userAgreementSpan = new ClickableSpan() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(@NonNull View widget) {
|
public void onClick(@NonNull View widget) {
|
||||||
Bundle bundle = new Bundle();
|
// 跳转用户协议
|
||||||
bundle.putInt("from_requse_code", WebviewUserAgreement.AGREEMENT_CODE);
|
// Bundle bundle = new Bundle();
|
||||||
goToWihoutNoPresent(mContext, WebviewUserAgreement.class, bundle);
|
// bundle.putInt("from_requse_code", WebviewUserAgreement.AGREEMENT_CODE);
|
||||||
|
// goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundle);
|
||||||
|
ToastUtil.showShort(mContext,"用户协议");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateDrawState(@NonNull TextPaint ds) {
|
public void updateDrawState(@NonNull TextPaint ds) {
|
||||||
super.updateDrawState(ds);
|
super.updateDrawState(ds);
|
||||||
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu));
|
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu)); // 设置颜色
|
||||||
|
ds.setUnderlineText(false); // 去掉下划线
|
||||||
|
}
|
||||||
|
};
|
||||||
|
int start1 = content.indexOf("《用户协议》");
|
||||||
|
int end1 = start1 + "《用户协议》".length();
|
||||||
|
spannableString.setSpan(userAgreementSpan, start1, end1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
|
|
||||||
|
// 设置“隐私政策”可点击
|
||||||
|
ClickableSpan privacyPolicySpan = new ClickableSpan() {
|
||||||
|
@Override
|
||||||
|
public void onClick(@NonNull View widget) {
|
||||||
|
// 跳转隐私政策
|
||||||
|
// Bundle bundleYS = new Bundle();
|
||||||
|
// bundleYS.putInt("from_requse_code",WebviewUserAgreement.PRIVACY_CODE);
|
||||||
|
// goToWihoutNoPresent(mContext, WebviewUserAgreement.class,bundleYS);
|
||||||
|
ToastUtil.showShort(mContext,"跳转隐私政策");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDrawState(@NonNull TextPaint ds) {
|
||||||
|
super.updateDrawState(ds);
|
||||||
|
ds.setColor(ContextCompat.getColor(mContext, R.color.color_zhu)); // 设置颜色
|
||||||
ds.setUnderlineText(false);
|
ds.setUnderlineText(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
spannableString.setSpan(userAgreementSpan, userStart, userEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
int start2 = content.indexOf("《隐私政策》");
|
||||||
|
int end2 = start2 + "《隐私政策》".length();
|
||||||
|
spannableString.setSpan(privacyPolicySpan, start2, end2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
|
|
||||||
// viewBinding.tvAgreement.setText(spannableString);
|
tvAgreement.setText(spannableString);
|
||||||
// viewBinding.tvAgreement.setMovementMethod(LinkMovementMethod.getInstance());
|
tvAgreement.setMovementMethod(LinkMovementMethod.getInstance()); // 开启点击事件
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
switch (v.getId()) {
|
switch (v.getId()) {
|
||||||
|
|
||||||
|
case R.id.checkbox_read:
|
||||||
|
if(mYinsiConfirm){
|
||||||
|
mYinsiConfirm = false;
|
||||||
|
viewBinding.checkboxRead.setChecked(false);
|
||||||
|
}else{
|
||||||
|
mYinsiConfirm = true;
|
||||||
|
viewBinding.checkboxRead.setChecked(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case R.id.tv_go_register:
|
case R.id.tv_go_register:
|
||||||
goTo(mContext, RegisterActivity.class,null);
|
goTo(mContext, RegisterActivity.class,null);
|
||||||
break;
|
break;
|
||||||
@@ -215,33 +231,40 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
|
|||||||
// viewBinding.checkboxRead.setChecked(true);
|
// viewBinding.checkboxRead.setChecked(true);
|
||||||
// }
|
// }
|
||||||
// break;
|
// break;
|
||||||
// case R.id.tv_login_confirm:
|
case R.id.tv_login:
|
||||||
// if (TextUtils.isEmpty(viewBinding.edPhoneInput.getText().toString())) {
|
if (TextUtils.isEmpty(viewBinding.etAccount.getText().toString())) {
|
||||||
// ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
// if (!PhoneNumberUtils.checkPhoneNum(viewBinding.edPhoneInput.getText().toString().trim())) {
|
if (!PhoneNumberUtils.checkPhoneNum(viewBinding.etAccount.getText().toString().trim()) &&
|
||||||
// ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
|
!PhoneNumberUtils.checkEmail(viewBinding.etAccount.getText().toString().trim())) {
|
||||||
// return;
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
|
||||||
// }
|
return;
|
||||||
// if (TextUtils.isEmpty(viewBinding.edCodeInput.getText().toString())) {
|
}
|
||||||
// ToastUtil.showShort(mContext, getString(R.string.login_error_code_empty));
|
if (TextUtils.isEmpty(viewBinding.edCodeInput.getText().toString())) {
|
||||||
// return;
|
ToastUtil.showShort(mContext, getString(R.string.login_error_code_empty));
|
||||||
// }
|
return;
|
||||||
// if (viewBinding.edCodeInput.getText().toString().trim().length() < 6) {
|
}
|
||||||
// ToastUtil.showShort(mContext, getString(R.string.login_error_code_invalid));
|
if (viewBinding.edCodeInput.getText().toString().trim().length() < 6) {
|
||||||
// return;
|
ToastUtil.showShort(mContext, getString(R.string.login_error_code_invalid));
|
||||||
// }
|
return;
|
||||||
// if (!mYinsiConfirm) {
|
}
|
||||||
// ToastUtil.showShort(mContext, getString(R.string.login_error_agreement));
|
if (!mYinsiConfirm) {
|
||||||
// return;
|
ToastUtil.showShort(mContext, getString(R.string.login_error_agreement));
|
||||||
// }
|
return;
|
||||||
// showLoadingDialog();
|
}
|
||||||
// mPresenter.loginBySmsCode(
|
String loginType = "sms";
|
||||||
// viewBinding.edPhoneInput.getText().toString().trim(),
|
if(LOGIN_TYPE_STATUS_CODE == 100){
|
||||||
// viewBinding.edCodeInput.getText().toString().trim());
|
loginType = "sms";
|
||||||
|
}else{
|
||||||
|
loginType = "password";
|
||||||
|
}
|
||||||
|
showLoadingDialog();
|
||||||
|
mPresenter.loginBySmsCode(loginType,
|
||||||
|
viewBinding.etAccount.getText().toString().trim(),
|
||||||
|
viewBinding.edCodeInput.getText().toString().trim());
|
||||||
// new Handler().postDelayed(() -> hideDialogLoading(), 1000);
|
// new Handler().postDelayed(() -> hideDialogLoading(), 1000);
|
||||||
// break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -267,6 +290,11 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCodeSuccess(BaseBean bean) {
|
public void getPhoneCodeSuccess(BaseBean bean) {
|
||||||
hideDialogLoading();
|
hideDialogLoading();
|
||||||
@@ -278,18 +306,18 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
|
|||||||
public void loginBySmsCodeSuccess(LoginEntity entity) {
|
public void loginBySmsCodeSuccess(LoginEntity entity) {
|
||||||
hideDialogLoading();
|
hideDialogLoading();
|
||||||
ToastUtil.showShort(mContext, getString(R.string.login_success));
|
ToastUtil.showShort(mContext, getString(R.string.login_success));
|
||||||
SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_LOGIN, true);
|
// SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_LOGIN, true);
|
||||||
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_TOKEN, entity.getAccess_token());
|
// SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_TOKEN, entity.getAccess_token());
|
||||||
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_NICKNAME, entity.getUser_info().getNickname());
|
// SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_NICKNAME, entity.getUser_info().getNickname());
|
||||||
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_ID, String.valueOf(entity.getUser_info().getUserId()));
|
// SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_ID, String.valueOf(entity.getUser_info().getUserId()));
|
||||||
MingDengUserInfoManager.getInstance().setEntity(entity);
|
// MingDengUserInfoManager.getInstance().setEntity(entity);
|
||||||
MingDengUserInfoManager.getInstance().setUserInfo(entity.getUser_info());
|
// MingDengUserInfoManager.getInstance().setUserInfo(entity.getUser_info());
|
||||||
Gson gson = new Gson();
|
// Gson gson = new Gson();
|
||||||
String userInfoJson = gson.toJson(entity);
|
// String userInfoJson = gson.toJson(entity);
|
||||||
SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_INFO_JSON_CONTENT, userInfoJson);
|
// SharePreUtil.putString(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.USER_INFO_JSON_CONTENT, userInfoJson);
|
||||||
AppConfig.USER_LOGIN = true;
|
// AppConfig.USER_LOGIN = true;
|
||||||
AppConfig.USER_TOKEN = entity.getAccess_token();
|
// AppConfig.USER_TOKEN = entity.getAccess_token();
|
||||||
AppConfig.USER_ID = String.valueOf(entity.getUser_info().getUserId());
|
// AppConfig.USER_ID = String.valueOf(entity.getUser_info().getUserId());
|
||||||
new Handler().postDelayed(() -> {
|
new Handler().postDelayed(() -> {
|
||||||
goTo(mContext, MainActivity.class, null);
|
goTo(mContext, MainActivity.class, null);
|
||||||
finish();
|
finish();
|
||||||
|
|||||||
@@ -69,11 +69,49 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
|
|||||||
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
cdTimer.start();
|
//发送短信
|
||||||
|
mPresenter.getPhoneCode(viewBinding.etAccount.getText().toString(),"");
|
||||||
|
// cdTimer.start();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.tv_commit:
|
case R.id.tv_commit:
|
||||||
goTo(mContext, RegisterSuccessActivity.class,null);
|
if (TextUtils.isEmpty(viewBinding.etAccount.getText().toString())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!PhoneNumberUtils.checkPhoneNum(viewBinding.etAccount.getText().toString().trim()) &&
|
||||||
|
!PhoneNumberUtils.checkEmail(viewBinding.etAccount.getText().toString().trim())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_invalid));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (TextUtils.isEmpty(viewBinding.etVerfiCode.getText().toString())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (TextUtils.isEmpty(viewBinding.etVerfiCode.getText().toString())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_phone_empty));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(viewBinding.etInputPsd.getText().toString())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_psd_empty));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TextUtils.isEmpty(viewBinding.etInputPsdAgin.getText().toString())) {
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.login_error_psd_agin_empty));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(viewBinding.etInputPsd.getText().toString()).equals(
|
||||||
|
viewBinding.etInputPsdAgin.getText().toString())){
|
||||||
|
ToastUtil.showShort(mContext, getString(R.string.hint_input_psd_not_match));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
showLoadingDialog();
|
||||||
|
mPresenter.registerAccount(viewBinding.etAccount.getText().toString(),
|
||||||
|
viewBinding.etVerfiCode.getText().toString(),
|
||||||
|
viewBinding.etInputPsd.getText().toString());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -100,6 +138,13 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerSuccess(BaseBean bean) {
|
||||||
|
hideDialogLoading();
|
||||||
|
ToastUtil.showShort(mContext,"注册成功");
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCodeSuccess(BaseBean bean) {
|
public void getPhoneCodeSuccess(BaseBean bean) {
|
||||||
|
|
||||||
@@ -112,6 +157,7 @@ public class RegisterActivity extends BaseActivity<RegisterLayoutBinding, LoginP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showError(String message) {
|
public void showError(String message) {
|
||||||
|
hideDialogLoading();
|
||||||
ToastUtil.showShort(mContext,message);
|
ToastUtil.showShort(mContext,message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,11 @@ public class RegisterSuccessActivity extends BaseActivity<RegisterSuccessLayoutB
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCodeSuccess(BaseBean bean) {
|
public void getPhoneCodeSuccess(BaseBean bean) {
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import com.ckkj.water.network.BaseBean;
|
|||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author fengxiaoyang
|
* @author fengxiaoyang
|
||||||
* @date 2025/7/26
|
* @date 2025/7/26
|
||||||
@@ -18,13 +20,17 @@ public class LoginContract {
|
|||||||
void fail(String msg);
|
void fail(String msg);
|
||||||
}
|
}
|
||||||
public interface DataModel{
|
public interface DataModel{
|
||||||
|
//手机验证码登录
|
||||||
|
void register(JSONObject json, CallBack callBack);
|
||||||
|
|
||||||
//获取手机验证码
|
//获取手机验证码
|
||||||
void getPhoneCode(JSONObject json, CallBack callBack);
|
void getPhoneCode(Map<String,Object> map, CallBack callBack);
|
||||||
//手机验证码登录
|
//手机验证码登录
|
||||||
void loginBySmsCode(JSONObject json, CallBack callBack);
|
void loginBySmsCode(JSONObject json, CallBack callBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface LoginView extends IView{
|
public interface LoginView extends IView{
|
||||||
|
void registerSuccess(BaseBean bean);
|
||||||
//获取验证码
|
//获取验证码
|
||||||
void getPhoneCodeSuccess(BaseBean bean);
|
void getPhoneCodeSuccess(BaseBean bean);
|
||||||
//验证码登录成功
|
//验证码登录成功
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import com.ckkj.water.network.NetWorkManager;
|
|||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import io.reactivex.Observer;
|
import io.reactivex.Observer;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.annotations.NonNull;
|
import io.reactivex.annotations.NonNull;
|
||||||
@@ -21,15 +23,57 @@ import io.reactivex.schedulers.Schedulers;
|
|||||||
|
|
||||||
public class LoginImpl implements LoginContract.DataModel {
|
public class LoginImpl implements LoginContract.DataModel {
|
||||||
/**
|
/**
|
||||||
* 获取验证码
|
* 注册
|
||||||
*
|
|
||||||
* @param json
|
* @param json
|
||||||
* @param callBack
|
* @param callBack
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void getPhoneCode(JSONObject json, LoginContract.CallBack callBack) {
|
public void register(JSONObject json, LoginContract.CallBack callBack) {
|
||||||
try {
|
try {
|
||||||
NetWorkManager.getRequest().sendPhoneCode(NetWorkManager.getToken(), NetWorkManager.toRequestBody(json))
|
NetWorkManager.getRequest().register(NetWorkManager.toRequestBody(json))
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.unsubscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Observer<BaseBean>() {
|
||||||
|
@Override
|
||||||
|
public void onSubscribe(@NonNull Disposable d) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNext(@NonNull BaseBean bean) {
|
||||||
|
if (bean.getCode() == 200) {
|
||||||
|
callBack.success(bean.getData());
|
||||||
|
// 登录成功时调用
|
||||||
|
LoginStateManager.reset();
|
||||||
|
} else {
|
||||||
|
callBack.fail(bean.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(@NonNull Throwable e) {
|
||||||
|
callBack.fail(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onComplete() {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取验证码
|
||||||
|
*
|
||||||
|
* @param map
|
||||||
|
* @param callBack
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void getPhoneCode(Map<String,Object> map, LoginContract.CallBack callBack) {
|
||||||
|
try {
|
||||||
|
NetWorkManager.getRequest().sendPhoneCode(NetWorkManager.getToken(), map)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.unsubscribeOn(Schedulers.io())
|
.unsubscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
|||||||
@@ -33,12 +33,47 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
|
|||||||
this.mImpl = mImpl;
|
this.mImpl = mImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getPhoneCode(String phone, String codeType) {
|
/**
|
||||||
|
* 注册
|
||||||
|
* @param account
|
||||||
|
* @param code
|
||||||
|
* @param psd
|
||||||
|
*/
|
||||||
|
public void registerAccount(String account, String code, String psd) {
|
||||||
try {
|
try {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put("mobile",phone);
|
json.put("clientId",AppConfig.APP_CLIENT_ID);
|
||||||
json.put("type",codeType);
|
json.put("username",account);
|
||||||
mImpl.getPhoneCode(json, new LoginContract.CallBack<BaseBean>() {
|
json.put("code",code);
|
||||||
|
json.put("password",psd);
|
||||||
|
json.put("grantType",psd);
|
||||||
|
json.put("userType",AppConfig.APP_USER_TYPE);
|
||||||
|
mImpl.register(json, new LoginContract.CallBack<BaseBean>() {
|
||||||
|
@Override
|
||||||
|
public void success(BaseBean bean) {
|
||||||
|
if(LoginPresenter.this.getView() != null){
|
||||||
|
LoginPresenter.this.getView().registerSuccess(bean);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fail(String msg) {
|
||||||
|
if(LoginPresenter.this.getView() != null){
|
||||||
|
LoginPresenter.this.getView().showError(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
} catch (JSONException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void getPhoneCode(String phone, String codeType) {
|
||||||
|
Map<String,Object> map = new HashMap<>();
|
||||||
|
map.put("username",phone);
|
||||||
|
mImpl.getPhoneCode(map, new LoginContract.CallBack<BaseBean>() {
|
||||||
@Override
|
@Override
|
||||||
public void success(BaseBean bean) {
|
public void success(BaseBean bean) {
|
||||||
if(LoginPresenter.this.getView() != null){
|
if(LoginPresenter.this.getView() != null){
|
||||||
@@ -53,27 +88,33 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (JSONException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过手机验证码登录
|
* 通过手机验证码登录
|
||||||
* @param phone
|
* @param account
|
||||||
* @param code
|
* @param code
|
||||||
*/
|
*/
|
||||||
public void loginBySmsCode(String phone, String code) {
|
public void loginBySmsCode(String loginType,String account, String code) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
json.put("mobile",phone);
|
json.put("grantType",loginType);
|
||||||
json.put("code",code);
|
if(loginType.equals("sms")){
|
||||||
|
json.put("phonenumber",account);
|
||||||
|
json.put("sms",code);
|
||||||
|
}else{
|
||||||
|
json.put("username",account);
|
||||||
|
json.put("password",code);
|
||||||
|
}
|
||||||
|
json.put("clientId",AppConfig.APP_CLIENT_ID);
|
||||||
|
json.put("userType",AppConfig.APP_USER_TYPE);
|
||||||
mImpl.loginBySmsCode(json, new LoginContract.CallBack<LoginEntity>() {
|
mImpl.loginBySmsCode(json, new LoginContract.CallBack<LoginEntity>() {
|
||||||
@Override
|
@Override
|
||||||
public void success(LoginEntity bean) {
|
public void success(LoginEntity bean) {
|
||||||
if(LoginPresenter.this.getView() != null){
|
if(LoginPresenter.this.getView() != null){
|
||||||
LoginPresenter.this.getView().loginBySmsCodeSuccess(bean);
|
LoginPresenter.this.getView().loginBySmsCodeSuccess(bean);
|
||||||
EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_SUCCESS));
|
// EventBus.getDefault().post(new EventMessage(EventMessage.USER_LOGIN_SUCCESS));
|
||||||
//获取个人信息
|
//获取个人信息
|
||||||
// getUserInfo();
|
// getUserInfo();
|
||||||
}
|
}
|
||||||
@@ -113,4 +154,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.LoginView> {
|
|||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ import retrofit2.http.QueryMap;
|
|||||||
|
|
||||||
public interface Request {
|
public interface Request {
|
||||||
//注册
|
//注册
|
||||||
@POST("user/api/adduser")
|
@POST("auth/register")
|
||||||
Observable<BaseBean> register(@QueryMap Map<String, Object> map);
|
Observable<BaseBean> register(@Body RequestBody requestBody);
|
||||||
//获取验证码
|
//获取验证码
|
||||||
@POST("user/api/phone")
|
@POST("user/api/phone")
|
||||||
Observable<BaseBean> getSmsCode(@QueryMap Map<String, Object> map);
|
Observable<BaseBean> getSmsCode(@QueryMap Map<String, Object> map);
|
||||||
@@ -79,17 +79,15 @@ public interface Request {
|
|||||||
@POST("mobile/yourhoroscope/modify")
|
@POST("mobile/yourhoroscope/modify")
|
||||||
Observable<BaseBean<TodayFateEntity>> saveUserEditBirthInfo(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody);
|
Observable<BaseBean<TodayFateEntity>> saveUserEditBirthInfo(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody);
|
||||||
//发送验证码
|
//发送验证码
|
||||||
@POST("mobile/sendCode")
|
@GET("resource/code")
|
||||||
Observable<BaseBean> sendPhoneCode(@HeaderMap Map<String, String> headMap,@Body RequestBody requestBody);
|
Observable<BaseBean> sendPhoneCode(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
|
||||||
|
|
||||||
|
|
||||||
//登录
|
//登录
|
||||||
@POST("mobile/login")
|
@POST("auth/login")
|
||||||
Observable<BaseBean<LoginEntity>> loginBySmsCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
Observable<BaseBean<LoginEntity>> loginBySmsCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
||||||
//获取个人信息
|
//获取个人信息
|
||||||
@GET("mobile/userInfo")
|
|
||||||
Observable<BaseBean<MineUserInfoBean>> getMineUserInfo(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
|
||||||
//更新用户头像
|
//更新用户头像
|
||||||
@POST("mobile/modifyAvatar")
|
|
||||||
Observable<BaseBean> updateUseravatar(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
|
||||||
//获取今日运势
|
//获取今日运势
|
||||||
@POST("mobile/yourhoroscope/today")
|
@POST("mobile/yourhoroscope/today")
|
||||||
Observable<BaseBean<TodayFateEntity>> getUserTodayFateDatas(@HeaderMap Map<String, String> headMap);
|
Observable<BaseBean<TodayFateEntity>> getUserTodayFateDatas(@HeaderMap Map<String, String> headMap);
|
||||||
@@ -112,34 +110,9 @@ public interface Request {
|
|||||||
@POST("mobile/paiPan/record")
|
@POST("mobile/paiPan/record")
|
||||||
Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
||||||
//修改手机号
|
//修改手机号
|
||||||
@POST("mobile/modifyPhone")
|
|
||||||
Observable<BaseBean> modifyPhone(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
|
||||||
//注销账号
|
|
||||||
@POST("mobile/DeactivateAccount")
|
|
||||||
Observable<BaseBean> logoffAccount(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
|
||||||
//查询会员套餐
|
|
||||||
@GET("mobile/memberInFo")
|
|
||||||
Observable<BaseBean<List<MemberComboEntity>>> getMemberComboList(@HeaderMap Map<String, String> headMap);
|
|
||||||
//获取支付信息
|
|
||||||
@POST("mobile/alipay")
|
|
||||||
Observable<BaseBean> getPayOrderInfo(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
|
||||||
//问题反馈
|
|
||||||
@POST("mobile/appfeedback")
|
|
||||||
Observable<BaseBean> commitFeedback(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
|
|
||||||
//问题反馈
|
|
||||||
@POST("mobile/reporting")
|
@POST("mobile/reporting")
|
||||||
Observable<BaseBean> commitReporting(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
|
Observable<BaseBean> commitReporting(@HeaderMap Map<String, String> headMap,@QueryMap Map<String, Object> map);
|
||||||
//邀请数据
|
//邀请数据
|
||||||
@GET("mobile/invitationStatistics")
|
|
||||||
Observable<BaseBean<RecommendDataEntity>> getRecommendDatas(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
|
||||||
//邀请记录
|
|
||||||
@GET("mobile/myInvitees")
|
|
||||||
Observable<BaseBean<InviteeRecordEntity>> myInvitees(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
|
||||||
//注销账号
|
|
||||||
@POST("mobile/bind")
|
|
||||||
Observable<BaseBean> bindInvterCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
|
||||||
//奖励记录
|
//奖励记录
|
||||||
@GET("mobile/rewardHistoryDetail")
|
|
||||||
Observable<BaseBean<RewardRecordEntity>> getRewardRecords(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
|
||||||
/***************************钱包********************************/
|
/***************************钱包********************************/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_account"
|
android:id="@+id/et_account"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginLeft="5dp"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
@@ -113,8 +113,9 @@
|
|||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:src="@mipmap/icon_phone_code"/>
|
android:src="@mipmap/icon_phone_code"/>
|
||||||
<EditText
|
<EditText
|
||||||
|
android:id="@+id/ed_code_input"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="2"
|
android:layout_weight="2"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginLeft="5dp"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
@@ -203,5 +204,40 @@
|
|||||||
android:text="@string/reset_psd"
|
android:text="@string/reset_psd"
|
||||||
android:visibility="invisible"/>
|
android:visibility="invisible"/>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_100">
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/realtive_read_finish"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_15"
|
||||||
|
android:layout_marginBottom="@dimen/dp_30">
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/checkbox_read"
|
||||||
|
android:layout_width="@dimen/dp_14"
|
||||||
|
android:layout_height="@dimen/dp_14"
|
||||||
|
android:background="@drawable/select_radio"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:button="@null"
|
||||||
|
android:clickable="false"
|
||||||
|
android:visibility="visible" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_agreement_full"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="@dimen/dp_12"
|
||||||
|
android:layout_marginRight="@dimen/dp_12"
|
||||||
|
android:layout_toRightOf="@+id/checkbox_read"
|
||||||
|
android:autoLink="none"
|
||||||
|
android:lineSpacingExtra="4dp"
|
||||||
|
android:textColor="@color/color_gray_tab"
|
||||||
|
android:textSize="11sp" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_account"
|
android:id="@+id/et_account"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/dp_5"
|
android:layout_marginLeft="@dimen/dp_5"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_verfi_code"
|
android:id="@+id/et_verfi_code"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="2"
|
android:layout_weight="2"
|
||||||
android:layout_marginLeft="@dimen/dp_5"
|
android:layout_marginLeft="@dimen/dp_5"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_input_psd"
|
android:id="@+id/et_input_psd"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/dp_5"
|
android:layout_marginLeft="@dimen/dp_5"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/et_input_psd_agin"
|
android:id="@+id/et_input_psd_agin"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/dp_5"
|
android:layout_marginLeft="@dimen/dp_5"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
<string name="login_error_phone_empty">手机号不能为空</string>
|
<string name="login_error_phone_empty">手机号不能为空</string>
|
||||||
<string name="hint_input_psd_not_match">两次输入的密码不一致</string>
|
<string name="hint_input_psd_not_match">两次输入的密码不一致</string>
|
||||||
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
|
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
|
||||||
|
<string name="login_error_psd_empty">手机号或邮箱不能为空</string>
|
||||||
|
<string name="login_error_psd_agin_empty">请再次输入密码</string>
|
||||||
<string name="register_title">注册用户</string>
|
<string name="register_title">注册用户</string>
|
||||||
<string name="register_title_bar">注册</string>
|
<string name="register_title_bar">注册</string>
|
||||||
<string name="register_success_title">注册成功</string>
|
<string name="register_success_title">注册成功</string>
|
||||||
|
|||||||
@@ -16,7 +16,9 @@
|
|||||||
<string name="hint_input_new_psd">请输入新密码</string>
|
<string name="hint_input_new_psd">请输入新密码</string>
|
||||||
<string name="hint_input_new_psd_agin">请再次输入新密码</string>
|
<string name="hint_input_new_psd_agin">请再次输入新密码</string>
|
||||||
<string name="hint_input_psd_not_match">两次输入的密码不一致</string>
|
<string name="hint_input_psd_not_match">两次输入的密码不一致</string>
|
||||||
<string name="login_error_phone_empty">手机号不能为空</string>
|
<string name="login_error_phone_empty">手机号或邮箱不能为空</string>
|
||||||
|
<string name="login_error_psd_empty">密码不能为空</string>
|
||||||
|
<string name="login_error_psd_agin_empty">请再次输入密码</string>
|
||||||
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
|
<string name="login_error_phone_invalid">请输入正确的手机号或邮箱</string>
|
||||||
<string name="register_title">注册用户</string>
|
<string name="register_title">注册用户</string>
|
||||||
<string name="register_title_bar">注册</string>
|
<string name="register_title_bar">注册</string>
|
||||||
@@ -177,7 +179,7 @@
|
|||||||
</string>
|
</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="app_name">星语明灯</string>
|
<string name="app_name">智能浇水</string>
|
||||||
|
|
||||||
<!-- ==================== 登录页 ==================== -->
|
<!-- ==================== 登录页 ==================== -->
|
||||||
<string name="login_app_name">星语明灯</string>
|
<string name="login_app_name">星语明灯</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user