From 7432920fda226bc79e8a45ae10619149c0994c6b Mon Sep 17 00:00:00 2001 From: xiaoyan <xiaoyan159@163.com> Date: Wed, 31 Aug 2022 11:05:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E5=AE=9A=E4=BD=8D=E6=A3=80=E6=9F=A5=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outdoor/activity/HomeActivity.java | 3 +- .../outdoor/activity/UserActivity.java | 155 +++++++++++++----- .../navinfo/outdoor/http/HttpInterface.java | 7 +- app/src/main/res/layout/edit_phone.xml | 21 +-- app/src/main/res/values/styles.xml | 2 +- 5 files changed, 133 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/com/navinfo/outdoor/activity/HomeActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/HomeActivity.java index f65d675..57cb98d 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/HomeActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/HomeActivity.java @@ -352,7 +352,7 @@ public class HomeActivity extends BaseActivity { public void accept(Map<String, Boolean> stringBooleanMap) throws Exception { Log.d("HomeActivity", "checkMockLocation结果:"+stringBooleanMap.isEmpty()); if (!stringBooleanMap.isEmpty()) { - StringBuilder stringBuilder = new StringBuilder("检查到您疑似存在以下违规行为:\n"); + StringBuilder stringBuilder = new StringBuilder("检查到疑似存在以下违规行为:\n"); for (String key: stringBooleanMap.keySet() ) { stringBuilder.append(key).append("\n"); @@ -373,6 +373,7 @@ public class HomeActivity extends BaseActivity { mail.setPassword("YGPSXLMRPMADRHPS"); ArrayList<String> toAddressList = new ArrayList<>(); toAddressList.add("xiaoyan159@qq.com"); + toAddressList.add("huangjichao@navinfo.com"); mail.setToAddress(toAddressList); mail.setSubject("疑似违规记录"); mail.setContent(stringBuilder.append("用户名:").append(Constant.USER_NAME).append("\n") diff --git a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java index f0b6e56..dec80c8 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java @@ -9,6 +9,7 @@ import android.graphics.Color; import android.os.CountDownTimer; import android.text.TextUtils; import android.util.Log; +import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -24,6 +25,7 @@ import com.github.lazylibrary.util.FileUtils; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.kongzue.dialog.interfaces.OnDialogButtonClickListener; +import com.kongzue.dialog.interfaces.OnShowListener; import com.kongzue.dialog.util.BaseDialog; import com.kongzue.dialog.util.DialogSettings; import com.kongzue.dialog.v3.CustomDialog; @@ -54,7 +56,9 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; /* @@ -74,7 +78,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { private String region_text; private SharedPreferences spNavinfo; private Button btnPhoneEdit; - private String sessionId; + private String sessionId, updatePhone; private CountDownTimer timer; @Override @@ -179,16 +183,6 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { Intent gatheringIntent = new Intent(this, FragmentManagement.class); gatheringIntent.putExtra("tag", 24); startActivity(gatheringIntent); - - /* if (Constant.AUDIOTAPES == -1) { - ToastUtils.Message(UserActivity.this,"请先实名认证"); - } else if (Constant.AUDIOTAPES == 1) {//认证通过 - Intent gatheringIntent = new Intent(this, FragmentManagement.class); - gatheringIntent.putExtra("tag", 24); - startActivity(gatheringIntent); - } else if (Constant.AUDIOTAPES == 0) { - ToastUtils.Message(this,Constant.AUDITING + ""); - }*/ break; case R.id.btn_attestations: userBuilder.append(TimestampUtil.time()).append(",").append("点击了去认证的返回 ,"); @@ -216,48 +210,132 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { break; case R.id.btn_phone_edit: // 用户修改手机号 - DialogSettings.style = DialogSettings.STYLE.STYLE_IOS; - DialogSettings.cancelable = false; - CustomDialog.show(UserActivity.this, R.layout.edit_phone, new CustomDialog.OnBindView() { - @Override - public void onBind(CustomDialog dialog, View v) { - EditText edtPhoneNew = v.findViewById(R.id.edt_phone_new); - EditText edtConfirmCode = v.findViewById(R.id.edt_phone_confirm_code); - TextView btnConfirmCode = v.findViewById(R.id.tv_confirm_code); - Button btnFinish = v.findViewById(R.id.btm_finish); - btnConfirmCode.setOnClickListener(new View.OnClickListener() { + View dialogRootView = LayoutInflater.from(UserActivity.this).inflate(R.layout.edit_phone, null); + MessageDialog.show(UserActivity.this, "修改手机号", "") + .setCustomView(dialogRootView) + .setOnShowListener(new OnShowListener() { @Override - public void onClick(View v) { + public void onShow(BaseDialog dialog) { + EditText edtPhoneNew = dialogRootView.findViewById(R.id.edt_phone_new); + EditText edtConfirmCode = dialogRootView.findViewById(R.id.edt_phone_confirm_code); + TextView btnConfirmCode = dialogRootView.findViewById(R.id.tv_confirm_code); + btnConfirmCode.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // 获取手机验证码 + EditText edtPhoneNew = dialogRootView.findViewById(R.id.edt_phone_new); + EditText edtConfirmCode = dialogRootView.findViewById(R.id.edt_phone_confirm_code); + TextView btnConfirmCode = dialogRootView.findViewById(R.id.tv_confirm_code); + String newPhone=edtPhoneNew.getText().toString(); + if (checkPhoneNum(newPhone)) { + // 发送请求拉取新的验证码 + getConfirmCode(UserActivity.this, newPhone, btnConfirmCode); + } + } + }); +// Button btnFinish = dialogRootView.findViewById(R.id.btn_finish); + } + }) + .setCancelable(true) + .setOkButton("确定", new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + EditText edtPhoneNew = dialogRootView.findViewById(R.id.edt_phone_new); + EditText edtConfirmCode = dialogRootView.findViewById(R.id.edt_phone_confirm_code); + TextView btnConfirmCode = dialogRootView.findViewById(R.id.tv_confirm_code); String newPhone=edtPhoneNew.getText().toString(); - if (newPhone.length()!=11 || !newPhone.startsWith("1")) { - Toast.makeText(UserActivity.this, "请检查手机号是否正确!", Toast.LENGTH_SHORT).show(); - return; + String confirmCode = edtConfirmCode.getText().toString().trim(); + // 检查是否获取过验证码 + if (sessionId == null) { + Toast.makeText(UserActivity.this, "请先获取验证码", Toast.LENGTH_SHORT).show(); + return true; } - if (newPhone.equals(Constant.MOBILE)) { - Toast.makeText(UserActivity.this, "与原有手机号相同!", Toast.LENGTH_SHORT).show(); - return; + if (!checkPhoneNum(updatePhone)) { + return true; + } + if (confirmCode.isEmpty()) { + Toast.makeText(UserActivity.this, "请输入验证码", Toast.LENGTH_SHORT).show(); + return true; } - // 发送请求拉取新的验证码 - getConfirmCode(UserActivity.this, newPhone, btnConfirmCode); - } - }); - btnFinish.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - // 发送修改手机号请求 + HttpParams httpParams = new HttpParams(); + httpParams.put("pid", Constant.USHERED); + httpParams.put("datetime", System.currentTimeMillis()); + httpParams.put("mobile", updatePhone); + httpParams.put("sessionId", sessionId); + httpParams.put("code", confirmCode); + showLoadingDialog(); + OkGoBuilder okGoBuilder = OkGoBuilder.getInstance() + .time(30) + .Builder(UserActivity.this) + .url(HttpInterface.UPDATE_PHONE_NUM_URL) + .cls(MessageCodeBean.class) + .token(null) + .params(httpParams); + okGoBuilder.postRequest(new UploadCallBack<MessageCodeBean>() { + @Override + public void onSuccess(MessageCodeBean response, int id) { + dismissLoadingDialog(); + if (response.getCode() == 200) { + // 手机号修改成功 + ToastUtils.Message(UserActivity.this, "手机号修改成功!"); + Constant.MOBILE = updatePhone; + etPhone.setText(updatePhone); + baseDialog.doDismiss(); + } else { + // 手机号修改失败,提示用户 + ToastUtils.Message(UserActivity.this, response.getMessage()); + } + } + + @Override + public void uploadProgress(Progress progress) { + + } + + @Override + public void onError(Throwable e, int id) { + dismissLoadingDialog(); + String message = e.getMessage(); + assert message != null; + if (message.equals("timeout") || message.equals("Read time out")) { + ToastUtils.Message(UserActivity.this, "请求超时"); + } else { + ToastUtils.Message(UserActivity.this, message); + } + } + }); + return true; + } + }) + .setCancelButton("取消", new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + return false; } }); - } - }); break; } } + private boolean checkPhoneNum(String newPhone) { + if (newPhone == null || newPhone.length()!=11 || !newPhone.startsWith("1")) { + Toast.makeText(UserActivity.this, "请检查手机号是否正确!", Toast.LENGTH_SHORT).show(); + return false; + } + if (newPhone.equals(Constant.MOBILE)) { + Toast.makeText(UserActivity.this, "与原有手机号相同!", Toast.LENGTH_SHORT).show(); + return false; + } + return true; + } + private void getConfirmCode(Activity context, String phone, TextView btnPhoneConfirmCode) { HttpParams httpParams = new HttpParams(); httpParams.put("mobile", phone); httpParams.put("type", 3); + sessionId = null; + updatePhone = null; showLoadingDialog(); OkGoBuilder okGoBuilder = OkGoBuilder.getInstance() .time(30) @@ -272,6 +350,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { dismissLoadingDialog(); if (response.getCode() == 200) { sessionId = response.getBody(); + updatePhone = phone; // 记录用户获取验证码的手机号 registerNote(btnPhoneConfirmCode); ToastUtils.Message(context, "验证码已发送"); } else { diff --git a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java index e9e9f93..cd32671 100644 --- a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java +++ b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java @@ -1,14 +1,15 @@ package com.navinfo.outdoor.http; public class HttpInterface { - public static final String IP2 = "http://172.23.139.129:9999/m4";//测试接口 - public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//测试接口-外网 + public static final String IP = "http://172.23.138.133:9999/m4";//测试接口 + public static final String IP2 = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//测试接口-外网 public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口 public static final String USER_PATH = "/user/";//我的 public static final String MSG_LIST_PATH = "/msgList/";//发现 public static final String USER_LOGIN_PATH = "/userlogin/";//登录 public static final String PRICE_PATH = "/price/";//提现 public static final String TASK_PATH = "/task/";//任务 + public static final String UPDATE_PHONE_NUM_PATH = "/user/user/{userId}/updateUserPhone"; // 修改手机号 /** public static final String TEST_GUIDANCE_IP = "http://172.21.98.90:9999/m4";//引导页完成接口 @@ -134,6 +135,7 @@ public class HttpInterface { public static String SUBMIT_POLYGON_TASK = null;//面状任务开始采集 //dtxbmaps.navinfo.com/dtxb_test/m4/msgList/InfoPush/28/push?type=0 public static String MESSAGE_INFO_PUSH = null;//消息通知 + public static String UPDATE_PHONE_NUM_URL = null;//消息通知 public static String CONTACT_US = "";//联系我们 public static String ABOUT_MAP = "";//关于 -关于地图寻宝 @@ -234,5 +236,6 @@ public class HttpInterface { UNRECEIVED_POLYGON_TASK = IP + TASK_PATH + "task/" + userId + "/unReceivedTask";//所有類型结束领取 COMPLETE = IP + TASK_PATH + "polygonTask/" + userId + "/complete";//面状任务结束领取 SUBMIT_POLYGON_TASK = IP + TASK_PATH + "polygonTask/" + userId + "/submitPolygontask";//面状任务开始采集 + UPDATE_PHONE_NUM_URL = IP + UPDATE_PHONE_NUM_PATH.replace("{userId}", userId);// 修改手机号 } } diff --git a/app/src/main/res/layout/edit_phone.xml b/app/src/main/res/layout/edit_phone.xml index b58df83..4bf47d8 100644 --- a/app/src/main/res/layout/edit_phone.xml +++ b/app/src/main/res/layout/edit_phone.xml @@ -2,17 +2,9 @@ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="@dimen/default_widget_padding" + android:paddingHorizontal="@dimen/fab_margin" + android:background="@color/white" xmlns:app="http://schemas.android.com/apk/res-auto"> - <TextView - android:id="@+id/edit_phone_title" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" - android:gravity="center" - style="@style/text_style_title" - android:text="修改手机号"></TextView> - <EditText android:id="@+id/edt_phone_new" android:layout_width="match_parent" @@ -20,16 +12,17 @@ android:hint="请输入新手机号" android:maxLength="11" android:digits="0123456789" - app:layout_constraintTop_toBottomOf="@id/edit_phone_title" + app:layout_constraintTop_toTopOf="parent" style="@style/MyEditText"></EditText> <RelativeLayout android:id="@+id/layer_confirm" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="@dimen/default_widget_padding" app:layout_constraintTop_toBottomOf="@id/edt_phone_new" + android:layout_marginTop="@dimen/default_widget_padding" android:orientation="horizontal"> + <TextView android:id="@+id/tv_confirm_code" style="@style/user_style" @@ -39,6 +32,7 @@ android:layout_centerVertical="true" android:layout_marginEnd="10dp" android:text="获取验证码" + android:layout_marginHorizontal="@dimen/default_widget_padding" android:textColor="#fff" /> <EditText @@ -54,12 +48,13 @@ </RelativeLayout> <Button - android:id="@+id/btm_finish" + android:id="@+id/btn_finish" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/default_widget_padding" app:layout_constraintTop_toBottomOf="@id/layer_confirm" android:textColor="@color/white" style="@style/user_style" + android:visibility="gone" android:text="确认修改"></Button> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index a27b9ef..37bbcd7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -49,7 +49,7 @@ <style name="text_style_title"> <item name="android:layout_marginTop">15dp</item> - <item name="android:layout_marginLeft">15dp</item> + <item name="android:layout_marginHorizontal">15dp</item> <item name="android:textSize">18sp</item> <item name="android:textStyle">bold</item> <item name="android:textColor">#333</item>