LoginActivity.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. package com.modular.login;
  2. import android.Manifest;
  3. import android.app.ProgressDialog;
  4. import android.content.DialogInterface;
  5. import android.content.Intent;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.support.annotation.NonNull;
  9. import android.text.TextUtils;
  10. import android.view.View;
  11. import android.widget.EditText;
  12. import android.widget.TextView;
  13. import com.android.volley.Response.ErrorListener;
  14. import com.android.volley.VolleyError;
  15. import com.common.LogUtil;
  16. import com.common.data.StringUtil;
  17. import com.common.hmac.Md5Util;
  18. import com.common.preferences.PreferenceUtils;
  19. import com.common.system.PermissionUtil;
  20. import com.common.system.SystemUtil;
  21. import com.common.ui.ProgressDialogUtil;
  22. import com.core.app.MyApplication;
  23. import com.core.base.BaseActivity;
  24. import com.core.model.LoginRegisterResult;
  25. import com.core.net.http.ViewUtil;
  26. import com.core.net.volley.ObjectResult;
  27. import com.core.net.volley.Result;
  28. import com.core.net.volley.StringJsonObjectRequest;
  29. import com.core.utils.CommonUtil;
  30. import com.core.utils.IntentUtils;
  31. import com.core.utils.ToastUtil;
  32. import com.core.utils.helper.AvatarHelper;
  33. import com.core.utils.helper.LoginHelper;
  34. import org.apache.http.Header;
  35. import org.apache.http.client.HttpClient;
  36. import java.util.HashMap;
  37. import de.hdodenhof.circleimageview.CircleImageView;
  38. public class LoginActivity extends BaseActivity implements View.OnClickListener {
  39. private String PASS_WORDS = "PASS_WORDS";
  40. private CircleImageView mHeader;
  41. private EditText mPhoneNumberEdit;
  42. private EditText mPasswordEdit;
  43. private TextView tv_register;
  44. private TextView tv_findPwd;
  45. private String[] permissions = {Manifest.permission.READ_PHONE_STATE};
  46. @Override
  47. protected void onCreate(Bundle savedInstanceState) {
  48. super.onCreate(savedInstanceState);
  49. setContentView(R.layout.activity_login);
  50. getSupportActionBar().hide();
  51. initView();
  52. }
  53. @Override
  54. protected void onNewIntent(Intent intent) {
  55. super.onNewIntent(intent);
  56. if (!StringUtil.isEmpty(MyApplication.getInstance().mLoginUser.getUserId())) {
  57. AvatarHelper.getInstance().display(MyApplication.getInstance().mLoginUser.getUserId(), mHeader, true, true);
  58. }
  59. }
  60. @Override
  61. protected void onResume() {
  62. super.onResume();
  63. if (PermissionUtil.lacksPermissions(this, permissions)) {
  64. PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
  65. }
  66. if (!MyApplication.getInstance().getBdLocationHelper().isLocationUpdate()) {
  67. MyApplication.getInstance().getBdLocationHelper().requestLocation();
  68. }
  69. if (ViewUtil.mdProcessDialog!=null){
  70. ViewUtil.mdProcessDialog.cancel();
  71. }
  72. }
  73. @Override
  74. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  75. if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
  76. if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
  77. LogUtil.i("没有获取到权限");
  78. } else {
  79. LogUtil.i("已经用户赋予权限获取到权限");
  80. }
  81. }
  82. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  83. }
  84. private void initView() {
  85. mPhoneNumberEdit = (EditText) findViewById(R.id.phone_numer_edit);
  86. mPasswordEdit = (EditText) findViewById(R.id.password_edit);
  87. mHeader = (CircleImageView) findViewById(R.id.iv_head);
  88. tv_findPwd = (TextView) findViewById(R.id.tv_findPwd);
  89. tv_register = (TextView) findViewById(R.id.tv_register);
  90. if (CommonUtil.getSharedPreferences(this, "user_phone") != null && CommonUtil.getSharedPreferences(this, "user_phone").length() > 0) {
  91. mPhoneNumberEdit.setText(CommonUtil.getSharedPreferences(this, "user_phone"));
  92. }
  93. if (PreferenceUtils.getString(this, PASS_WORDS) != null && PreferenceUtils.getString(this, PASS_WORDS).length() > 0) {
  94. mPasswordEdit.setText(PreferenceUtils.getString(this, PASS_WORDS));
  95. }
  96. //登陆账号
  97. findViewById(R.id.login_btn).setOnClickListener(this);
  98. tv_findPwd.setOnClickListener(this);
  99. tv_register.setOnClickListener(this);
  100. if (!StringUtil.isEmpty(MyApplication.getInstance().mLoginUser.getUserId())) {
  101. AvatarHelper.getInstance().display(MyApplication.getInstance().mLoginUser.getUserId(), mHeader, true, true);
  102. }
  103. }
  104. @Override
  105. public void onClick(View v) {
  106. int i = v.getId();
  107. if (i == R.id.login_btn) {
  108. login();
  109. } else if (i == R.id.tv_register) {
  110. startActivity(new Intent(mContext, RegisterSelectActivity.class));
  111. } else if (i == R.id.tv_findPwd) {
  112. IntentUtils.webLinks(mContext,
  113. "https://account.ubtob.com/user/pwd?appId=home&returnURL=http%3A%2F%2Fwww.ubtob.com%2F",
  114. getString(R.string.login_getpwd));
  115. }
  116. }
  117. private void login() {
  118. final String phoneNumber = mPhoneNumberEdit.getText().toString().trim();
  119. final String password = mPasswordEdit.getText().toString().trim();
  120. PreferenceUtils.putString(this, PASS_WORDS, password);
  121. if (TextUtils.isEmpty(phoneNumber)) {
  122. ToastMessage(getString(R.string.login_account_empty));
  123. return;
  124. }
  125. if (TextUtils.isEmpty(password)) {
  126. ToastMessage(getString(R.string.login_pwd_empty));
  127. return;
  128. }
  129. // 加密之后的密码
  130. final String digestPwd = new String(Md5Util.toMD5(password));
  131. final String requestTag = "login";
  132. final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait), true);
  133. dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
  134. @Override
  135. public void onCancel(DialogInterface dialog) {
  136. cancelAll(requestTag);
  137. }
  138. });
  139. dialog.setProgressDrawable(mContext.getResources().getDrawable(R.drawable.progress_color));
  140. ProgressDialogUtil.show(dialog);
  141. HashMap<String, String> params = new HashMap<String, String>();
  142. params.put("telephone", Md5Util.toMD5(phoneNumber));// 账号登陆的时候需要MD5加密,服务器需求
  143. // params.put("loginNo", phoneNumber);// 账号登陆的时候需要MD5加密,服务器需求
  144. params.put("password", digestPwd);
  145. // 附加信息
  146. params.put("model", SystemUtil.getModel());
  147. params.put("osVersion", SystemUtil.getOsVersion());
  148. params.put("serial", SystemUtil.getDeviceId(MyApplication.getInstance()));
  149. // 地址信息
  150. double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
  151. double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
  152. if (latitude != 0)
  153. params.put("latitude", String.valueOf(latitude));
  154. if (longitude != 0)
  155. params.put("longitude", String.valueOf(longitude));
  156. final StringJsonObjectRequest<LoginRegisterResult> request = new StringJsonObjectRequest<LoginRegisterResult>(mConfig.USER_LOGIN,
  157. new ErrorListener() {
  158. @Override
  159. public void onErrorResponse(VolleyError arg0) {
  160. ProgressDialogUtil.dismiss(dialog);
  161. ToastUtil.showErrorNet(mContext);
  162. }
  163. }, new StringJsonObjectRequest.Listener<LoginRegisterResult>() {
  164. @Override
  165. public void onResponse(ObjectResult<LoginRegisterResult> result) {
  166. if (result == null) {
  167. ProgressDialogUtil.dismiss(dialog);
  168. ToastUtil.showErrorData(mContext);
  169. return;
  170. }
  171. boolean success = false;
  172. if (result.getResultCode() == Result.CODE_SUCCESS) {
  173. success = LoginHelper.setLoginUser(mContext, phoneNumber, digestPwd, result);// 设置登陆用户信息
  174. }
  175. if (success) {
  176. login_manage(phoneNumber, password);
  177. } else {
  178. String message = TextUtils.isEmpty(result.getResultMsg()) ? getString(R.string.login_failed) : result.getResultMsg();
  179. ToastUtil.showToast(mContext, message);
  180. }
  181. ProgressDialogUtil.dismiss(dialog);
  182. }
  183. }, LoginRegisterResult.class, params);
  184. request.setTag(requestTag);
  185. addDefaultRequest(request);
  186. }
  187. private void login_manage(String phone, String password) {
  188. if (TextUtils.isEmpty(phone)) {
  189. return;
  190. }
  191. if (TextUtils.isEmpty(password)) {
  192. return;
  193. }
  194. if (mContext == null) {
  195. mContext = this;
  196. return;
  197. }
  198. ViewUtil.LoginTask(phone, password, mContext);
  199. }
  200. }