package com.hjx.personalcenter.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.hjx.personalcenter.R; import com.hjx.personalcenter.activity.ForgotPasswordActivity; import com.hjx.personalcenter.activity.MainActivity; import com.hjx.personalcenter.activity.RegisterInfoActivity; import com.hjx.personalcenter.customdialog.ElectronicCardDialog; import com.hjx.personalcenter.db.Content; import com.hjx.personalcenter.db.SaveParam; import com.hjx.personalcenter.http.HttpCode; import com.hjx.personalcenter.http.HttpManager; import com.hjx.personalcenter.util.AlertUtils; import com.hjx.personalcenter.util.GetDevicesUtil; import com.hjx.personalcenter.util.PhoneNumCheckUtils; import org.json.JSONException; import org.json.JSONObject; /** * 登录 * Created by h on 2017/8/8. */ public class LoginFragment extends Fragment implements View.OnClickListener { private View mView; private int type; private TextView tv_forget_pwd; private Button btn_login; private EditText phonenumber, login_pwwd; public static String TABLAYOUT_FRAGMENT = "tab_fragment"; Intent intent = new Intent(); public static LoginFragment newInstance(int type) { LoginFragment fragment = new LoginFragment(); Bundle bundle = new Bundle(); bundle.putSerializable(TABLAYOUT_FRAGMENT, type); fragment.setArguments(bundle); return fragment; } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case HttpCode.LOGIN_SUCESS: JSONObject jsonObject; String status; try { jsonObject = new JSONObject((String) msg.obj); status = jsonObject.getString("status"); if (status.equals("100")) { String access_token = jsonObject.getString("access_token"); String userId = jsonObject.getString("userId"); final String name = phonenumber.getText().toString().trim(); final String pwd = login_pwwd.getText().toString().trim(); // try { long auserID = Long.parseLong(userId); //检测注册信息是否完整 HttpManager.getInstance().registerinfocheck(getActivity(), auserID, handler); //登录成功,保存登录数据并且获取个人信息 HttpManager.getInstance().saveLoginInfo(getActivity(), name, pwd, access_token, userId); } catch (NumberFormatException e) { e.printStackTrace(); } } else if (status.equals("200")) { Toast.makeText(getActivity(), "用户名不存在!", Toast.LENGTH_LONG).show(); return; } else if (status.equals("204")) { Toast.makeText(getActivity(), "密码错误!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(getActivity(), "登录失败!请检查网络", Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } break; case HttpCode.REGISTER_SUCESS: try { jsonObject = new JSONObject((String) msg.obj); status = jsonObject.optString("status"); JSONObject isregisterinfo = (JSONObject) jsonObject.opt("data"); boolean isRegisterInfoComplete = isregisterinfo.optBoolean("isRegisterInfoComplete"); if (status.equals("1")) { if (!isRegisterInfoComplete) { Content.accountflag = 1; Intent intent = new Intent(); intent.setClass(getActivity(), RegisterInfoActivity.class); getActivity().startActivity(intent); getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); } else { String deviceNumber = GetDevicesUtil.getDevicesInfo(getActivity()).getDeviceNumber(); //是否填写保卡 HttpManager.getInstance().cardinfocheck(getActivity(), deviceNumber, handler); } } else { Toast.makeText(getActivity(), "请检查网络", Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } break; case HttpCode.CHECKCARD: try { jsonObject = new JSONObject((String) msg.obj); status = jsonObject.optString("status"); if (status.equals("1")) { SaveParam.getInstance().saveLoginParam(getActivity(), "login", "true"); Intent intent = new Intent(); intent.setClass(getActivity(), MainActivity.class); getActivity().startActivity(intent); getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); getActivity().finish(); } else if (status.equals("2002")) { SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.YANGJI, "1"); SaveParam.getInstance().saveLoginParam(getActivity(), "login", "true"); Intent intent = new Intent(); intent.setClass(getActivity(), MainActivity.class); getActivity().startActivity(intent); getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); } else if (status.equals("2001")) { ElectronicCardDialog.getInstance().show(getChildFragmentManager(), "ElectronicCardDialog"); } else { Toast.makeText(getActivity(), "请检查网络", Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } break; } } }; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (mView == null) { mView = inflater.inflate(R.layout.fragment_loginandregister_login, container, false); initView(mView); initData(); setLister(); } return mView; } //初始化 private void initView(View mView) { tv_forget_pwd = (TextView) mView.findViewById(R.id.tv_forget_pwd); phonenumber = (EditText) mView.findViewById(R.id.et_phonenumber); login_pwwd = (EditText) mView.findViewById(R.id.et_password); btn_login = (Button) mView.findViewById(R.id.btn_login); } private void initData() { } private void setLister() { tv_forget_pwd.setOnClickListener(this); btn_login.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_forget_pwd: intent.setClass(getActivity(), ForgotPasswordActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.rightin, R.anim.rightout); break; case R.id.btn_login: login(); break; } } private void login() { final String name = phonenumber.getText().toString().trim(); final String pwd = login_pwwd.getText().toString().trim(); if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pwd)) { AlertUtils.showToast(getActivity(), "请输入手机号和密码"); return; } else if (!PhoneNumCheckUtils.isPhone(name)) { AlertUtils.showToast(getActivity(), "请输入正确的手机号"); } else { //登录接口 HttpManager.getInstance().login(name, pwd, getActivity(), handler); } } }