|
@@ -0,0 +1,200 @@
|
|
|
+package com.edufound.android.xyyf.phonelogin;
|
|
|
+
|
|
|
+import android.animation.ValueAnimator;
|
|
|
+import android.os.Handler;
|
|
|
+import android.os.Message;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.View;
|
|
|
+import android.view.ViewGroup;
|
|
|
+
|
|
|
+import com.edufound.android.xyyf.activity.MainActivity;
|
|
|
+import com.edufound.android.xyyf.application.EApplication;
|
|
|
+import com.edufound.android.xyyf.base.BasePersenter;
|
|
|
+import com.edufound.android.xyyf.util.ContextUtil;
|
|
|
+import com.edufound.android.xyyf.util.DeviceUuidFactory;
|
|
|
+import com.edufound.android.xyyf.util.Logger;
|
|
|
+import com.edufound.android.xyyf.util.OKHttpUtil;
|
|
|
+import com.edufound.android.xyyf.util.SPutil;
|
|
|
+import com.edufound.android.xyyf.util.ToastUtil;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
+
|
|
|
+import org.json.JSONException;
|
|
|
+import org.json.JSONObject;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import okhttp3.Call;
|
|
|
+import okhttp3.Callback;
|
|
|
+import okhttp3.Request;
|
|
|
+import okhttp3.Response;
|
|
|
+
|
|
|
+public class PhoneLoginPersenter implements PhoneLoginIPersenter {
|
|
|
+
|
|
|
+ PhoneLoginModel mModel;
|
|
|
+ PhoneLoginView mView;
|
|
|
+ String phoneNum = "";
|
|
|
+
|
|
|
+ public PhoneLoginPersenter(PhoneLoginView view) {
|
|
|
+ mModel = new PhoneLoginModel();
|
|
|
+ mView = view;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void loadData() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDisConnNetWork() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onConnNetWork() {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void WidthAnim(final View view, int end, int time) {
|
|
|
+ ValueAnimator anim = ValueAnimator.ofInt(view.getMeasuredWidth(), end);
|
|
|
+ anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
|
|
|
+ @Override
|
|
|
+ public void onAnimationUpdate(ValueAnimator valueAnimator) {
|
|
|
+ int val = (Integer) valueAnimator.getAnimatedValue();
|
|
|
+ ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
|
|
|
+ layoutParams.width = val;
|
|
|
+ view.setLayoutParams(layoutParams);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ anim.setDuration(time);
|
|
|
+ anim.start();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public boolean isMobileNO(String mobileNums) {
|
|
|
+/**
|
|
|
+ * 判断字符串是否符合手机号码格式
|
|
|
+ * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
|
|
|
+ * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
|
|
|
+ * 电信号段: 133,149,153,170,173,177,180,181,189
|
|
|
+ * @param str
|
|
|
+ * @return 待检测的字符串
|
|
|
+ */
|
|
|
+ String telRegex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
|
|
|
+ if (TextUtils.isEmpty(mobileNums)) {
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ return mobileNums.matches(telRegex);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void getVCode(String phoneNum) throws IOException {
|
|
|
+ this.phoneNum = phoneNum;
|
|
|
+ if (!isMobileNO(phoneNum)) {
|
|
|
+ ToastUtil.showToast("请输入正确的手机号");
|
|
|
+ mView.changeVText(1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mView.changeVText(0);
|
|
|
+ OKHttpUtil.getInstance().doGetSync(mModel.getVerificationCodeUrl() + phoneNum, new Callback() {
|
|
|
+ @Override
|
|
|
+ public void onFailure(Call call, IOException e) {
|
|
|
+ Logger.e("onFailure:" + e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(Call call, Response response) throws IOException {
|
|
|
+ try {
|
|
|
+ String json = response.body().string();
|
|
|
+ JSONObject jsonObject = new JSONObject(json);
|
|
|
+ Logger.e("json:" + json);
|
|
|
+ if (jsonObject.getBoolean("success")) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ final String error = jsonObject.getString("message");
|
|
|
+ handler.post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ ToastUtil.showToast(error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mView.changeVText(1);
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void LoginByVCode(String phone, String vcode) throws JSONException {
|
|
|
+ String preuuid = SPutil.getPrefString(ContextUtil.getContext(), DeviceUuidFactory.UUID_SPKEY, "");
|
|
|
+ if (preuuid.equals("")) {
|
|
|
+ preuuid = DeviceUuidFactory.getUuid().toString();
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("deviceCode", preuuid);
|
|
|
+ jsonObject.put("channel", EApplication.getAppCode());
|
|
|
+ jsonObject.put("code", vcode);
|
|
|
+ if (this.phoneNum.equals("")) {
|
|
|
+ this.phoneNum = phone;
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(this.phoneNum.trim())) {
|
|
|
+ ToastUtil.showToast("请输入手机号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (TextUtils.isEmpty(vcode.trim())) {
|
|
|
+ ToastUtil.showToast("请输入验证码");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ jsonObject.put("mobileNo", this.phoneNum);
|
|
|
+ OKHttpUtil.getInstance().postPhoneLogin(mModel.getVCodeLoginUrl(), jsonObject.toString(), new OKHttpUtil.ResultCallback() {
|
|
|
+ @Override
|
|
|
+ public void onError(Request request, Exception e) {
|
|
|
+ Logger.e("登录:onError");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(Object response) {
|
|
|
+ String json = response.toString();
|
|
|
+ try {
|
|
|
+ JSONObject jsonObject1 = new JSONObject(json);
|
|
|
+ Logger.e("登录:" + json);
|
|
|
+ if (jsonObject1.getBoolean("success")) {
|
|
|
+ MainActivity.getInstance().loadJSMehtodPost("phoneSuccess(" + json + ")");
|
|
|
+ MainActivity.getInstance().quitPhoneLoginPage();
|
|
|
+ mView.getActivity().finish();
|
|
|
+ } else {
|
|
|
+ final String error = jsonObject1.getString("message");
|
|
|
+ handler.post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ ToastUtil.showToast(error);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (JSONException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ Handler handler = new Handler(new Handler.Callback() {
|
|
|
+ @Override
|
|
|
+ public boolean handleMessage(Message msg) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+interface PhoneLoginIPersenter extends BasePersenter {
|
|
|
+}
|