PhoneLoginPersenter.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package com.edufound.android.xyyf.phonelogin;
  2. import android.animation.ValueAnimator;
  3. import android.os.Handler;
  4. import android.os.Message;
  5. import android.text.TextUtils;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import com.edufound.android.xyyf.activity.MainActivity;
  9. import com.edufound.android.xyyf.application.EApplication;
  10. import com.edufound.android.xyyf.base.BasePersenter;
  11. import com.edufound.android.xyyf.util.ContextUtil;
  12. import com.edufound.android.xyyf.util.DeviceUuidFactory;
  13. import com.edufound.android.xyyf.util.Logger;
  14. import com.edufound.android.xyyf.util.OKHttpUtil;
  15. import com.edufound.android.xyyf.util.SPutil;
  16. import com.edufound.android.xyyf.util.ToastUtil;
  17. import com.google.gson.JsonObject;
  18. import org.json.JSONException;
  19. import org.json.JSONObject;
  20. import java.io.IOException;
  21. import java.util.HashMap;
  22. import java.util.Map;
  23. import okhttp3.Call;
  24. import okhttp3.Callback;
  25. import okhttp3.Request;
  26. import okhttp3.Response;
  27. public class PhoneLoginPersenter implements PhoneLoginIPersenter {
  28. PhoneLoginModel mModel;
  29. PhoneLoginView mView;
  30. String phoneNum = "";
  31. public PhoneLoginPersenter(PhoneLoginView view) {
  32. mModel = new PhoneLoginModel();
  33. mView = view;
  34. }
  35. @Override
  36. public void loadData() {
  37. }
  38. @Override
  39. public void onDisConnNetWork() {
  40. }
  41. @Override
  42. public void onConnNetWork() {
  43. }
  44. public void WidthAnim(final View view, int end, int time) {
  45. ValueAnimator anim = ValueAnimator.ofInt(view.getMeasuredWidth(), end);
  46. anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
  47. @Override
  48. public void onAnimationUpdate(ValueAnimator valueAnimator) {
  49. int val = (Integer) valueAnimator.getAnimatedValue();
  50. ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
  51. layoutParams.width = val;
  52. view.setLayoutParams(layoutParams);
  53. }
  54. });
  55. anim.setDuration(time);
  56. anim.start();
  57. }
  58. public boolean isMobileNO(String mobileNums) {
  59. /**
  60.    * 判断字符串是否符合手机号码格式
  61.    * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
  62.    * 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
  63.    * 电信号段: 133,149,153,170,173,177,180,181,189
  64.    * @param str
  65.    * @return 待检测的字符串
  66.    */
  67. 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位。
  68. if (TextUtils.isEmpty(mobileNums)) {
  69. return false;
  70. } else {
  71. return mobileNums.matches(telRegex);
  72. }
  73. }
  74. public void getVCode(String phoneNum) throws IOException {
  75. this.phoneNum = phoneNum;
  76. if (!isMobileNO(phoneNum)) {
  77. ToastUtil.showToast("请输入正确的手机号");
  78. mView.changeVText(1);
  79. return;
  80. }
  81. mView.changeVText(0);
  82. OKHttpUtil.getInstance().doGetSync(mModel.getVerificationCodeUrl() + phoneNum, new Callback() {
  83. @Override
  84. public void onFailure(Call call, IOException e) {
  85. Logger.e("onFailure:" + e.getMessage());
  86. }
  87. @Override
  88. public void onResponse(Call call, Response response) throws IOException {
  89. try {
  90. String json = response.body().string();
  91. JSONObject jsonObject = new JSONObject(json);
  92. Logger.e("json:" + json);
  93. if (jsonObject.getBoolean("success")) {
  94. } else {
  95. final String error = jsonObject.getString("message");
  96. handler.post(new Runnable() {
  97. @Override
  98. public void run() {
  99. ToastUtil.showToast(error);
  100. }
  101. });
  102. mView.changeVText(1);
  103. }
  104. } catch (JSONException e) {
  105. e.printStackTrace();
  106. }
  107. }
  108. });
  109. }
  110. public void LoginByVCode(String phone, String vcode) throws JSONException {
  111. String preuuid = SPutil.getPrefString(ContextUtil.getContext(), DeviceUuidFactory.UUID_SPKEY, "");
  112. if (preuuid.equals("")) {
  113. preuuid = DeviceUuidFactory.getUuid().toString();
  114. }
  115. JSONObject jsonObject = new JSONObject();
  116. jsonObject.put("deviceCode", preuuid);
  117. jsonObject.put("channel", EApplication.getAppCode());
  118. jsonObject.put("code", vcode);
  119. if (this.phoneNum.equals("")) {
  120. this.phoneNum = phone;
  121. }
  122. if (TextUtils.isEmpty(this.phoneNum.trim())) {
  123. ToastUtil.showToast("请输入手机号");
  124. return;
  125. }
  126. if (TextUtils.isEmpty(vcode.trim())) {
  127. ToastUtil.showToast("请输入验证码");
  128. return;
  129. }
  130. jsonObject.put("mobileNo", this.phoneNum);
  131. OKHttpUtil.getInstance().postPhoneLogin(mModel.getVCodeLoginUrl(), jsonObject.toString(), new OKHttpUtil.ResultCallback() {
  132. @Override
  133. public void onError(Request request, Exception e) {
  134. Logger.e("登录:onError");
  135. }
  136. @Override
  137. public void onResponse(Object response) {
  138. String json = response.toString();
  139. try {
  140. JSONObject jsonObject1 = new JSONObject(json);
  141. Logger.e("登录:" + json);
  142. if (jsonObject1.getBoolean("success")) {
  143. MainActivity.getInstance().loadJSMehtodPost("phoneSuccess(" + json + ")");
  144. MainActivity.getInstance().quitPhoneLoginPage();
  145. mView.getActivity().finish();
  146. } else {
  147. final String error = jsonObject1.getString("message");
  148. handler.post(new Runnable() {
  149. @Override
  150. public void run() {
  151. ToastUtil.showToast(error);
  152. }
  153. });
  154. }
  155. } catch (JSONException e) {
  156. e.printStackTrace();
  157. }
  158. }
  159. });
  160. }
  161. Handler handler = new Handler(new Handler.Callback() {
  162. @Override
  163. public boolean handleMessage(Message msg) {
  164. return false;
  165. }
  166. });
  167. }
  168. interface PhoneLoginIPersenter extends BasePersenter {
  169. }