package com.sl.house_property; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import com.cutil.RegexUtils; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.lxj.xpopup.XPopup; import com.sl.house_property.databinding.ActivityRegisterBinding; import java.util.HashMap; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import entity.RegisterUser; import http.ApiConfig; import my_loader.Loader; import my_loader.Resultcode; import rx.Subscription; import rx.functions.Action1; import utils.Md5; public class RegisterActivity extends BaseActivity implements View.OnClickListener { int recLen = 60;//获取验证,倒计时 private ProgressDialog progressDialog; private Loader mGankLoader; @Override protected int getLayoutResId() { return R.layout.activity_register; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); progressDialog = new ProgressDialog(RegisterActivity.this); setAbr(getString(R.string.register), new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }, 0, null, 0, null, 0, null, ""); mDataBinding.getcode.setOnClickListener(this); mDataBinding.register.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.getcode: if (mDataBinding.registerphone.getText().toString().length() < 1) { setToast(getString(R.string.me_input_phone_tip)); return; } if (!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())) { setToast(getString(R.string.me_input_phone_error_tip)); return; } getMesgCode(R.id.getcode); break; case R.id.register: if (mDataBinding.registerphone.getText().toString().length() == 0) { setToast(getString(R.string.me_input_phone_tip)); return; } if (!RegexUtils.isMobileExact(mDataBinding.registerphone.getText().toString())) { setToast(getString(R.string.me_input_phone_error_tip)); return; } if (mDataBinding.logincode.getText().toString().length() < 1) { setToast(getString(R.string.me_input_verification_tip)); return; } String password = mDataBinding.editpaw.getText().toString(); if (password.length() < 1) { setToast(getString(R.string.me_input_password_tip)); return; } // if(password.length()<6){ // showToast(getString(R.string.me_input_password_short_tip)); // // return; // } if (!tools.RegexUtils.checkPassword(password)) { setToast(getString(R.string.me_input_password_fail_tip)); return; } String againPassword = mDataBinding.editagainpaw.getText().toString().trim(); if (againPassword.length() < 1) { setToast(getString(R.string.me_input_again_password_tip)); return; } if (!mDataBinding.editpaw.getText().toString().trim().equals(mDataBinding.editagainpaw.getText().toString().trim())) { setToast(getString(R.string.me_password_Inconsistent_tip)); return; } if (!mDataBinding.agreewhitemeg.isChecked()) { setToast("请先同意注册协议"); return; } if (!mDataBinding.agreewhitemegy.isChecked()) { setToast("请先同意隐私政策"); return; } register(view.getId()); break; } } private void register(int id) { Map map = new HashMap<>(); map.put("phone", mDataBinding.registerphone.getText().toString().trim()); map.put("password", mDataBinding.editpaw.getText().toString().trim()); map.put("code", mDataBinding.logincode.getText().toString().trim()); map.put("sign", Md5.md5("Cas" + "UserReg" + Md5.secret)); map.put("app", "Cas"); map.put("class", "UserReg"); getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.registering), id); } private void getMesgCode(int id) {//获取验证码 // TODO Auto-generated method stub recLen = 60; /* getRegisterCode.setTextColor(getResources().getColor(R.color.regitergrey));*/ mDataBinding.getcode.setClickable(false); Map map = new HashMap<>(); map.put("sendto", mDataBinding.registerphone.getText().toString().trim()); map.put("action", "register"); map.put("sign", Md5.md5("Cas" + "SendCode" + Md5.secret)); map.put("app", "Cas"); map.put("class", "SendCode"); getGankList(ApiConfig.BASE_URL, map, getResources().getString(R.string.getthecodenow), id); // map = new HashMap(); // map.put("telephone", editPhoneNo.getText().toString().trim()); // getAsyTask(1, map, HttpUrl.registerUser(), "正在获取验证码", HttpNet.PROGRESSVISIBLE, HttpNet.POSTTYPE);//联网 } private void getGankList(final String myurl, Map map, String string, final int getcode1) { progressDialog.setMessage(string); //map.put("") progressDialog.setCancelable(false); progressDialog.show(); mDataBinding.getRoot().postDelayed(new Runnable() { @Override public void run() { progressDialog.dismiss(); //setToast(1, getString(R.string.timeout)); } }, 13000); mGankLoader = new Loader(); /* Map map=new HashMap(); map.put("phone");*/ Subscription subscription = mGankLoader.getMovie(myurl, map).subscribe(new Action1() { @Override public void call(Resultcode resultcode) { progressDialog.dismiss(); //setToast(0,resultcode.status); if ((!(resultcode.status == 0))) { setToast(resultcode.msg); mDataBinding.getcode.setClickable(true); return; } switch (getcode1) { case R.id.getcode: setToast(getString(R.string.megissucess)); startTimer(); break; case R.id.register: setToast(getString(R.string.registersucess)); Gson gs = new Gson(); LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; String s = gs.toJson(adta); RegisterUser user = gs.fromJson(s, RegisterUser.class);//把JSON字符串转为对象 BindHouseDialog bindHouseDialog = new BindHouseDialog(RegisterActivity.this); bindHouseDialog.setUserId(user.getUserid()); bindHouseDialog.setOnBindHouseListener(new BindHouseDialog.OnBindHouseListener() { @Override public void onSubmit() { setToast("提交成功"); finish(); } }); new XPopup.Builder(RegisterActivity.this).asCustom(bindHouseDialog).show(); break; } } }, new Action1() { @Override public void call(Throwable throwable) { progressDialog.dismiss(); mDataBinding.getcode.setClickable(true); setToast(getString(R.string.getdatafailure)); throwable.printStackTrace(); } }); addSubscription(subscription); } private void startTimer() { final Timer timer = new Timer(); final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); mDataBinding.getcode.setText(recLen + ""); if (recLen < 0) { timer.cancel(); mDataBinding.getcode.setText("重新获取"); mDataBinding.getcode.setClickable(true); } } }; TimerTask task = new TimerTask() { @Override public void run() { recLen--; Message message = new Message(); message.what = 1; handler.sendMessage(message); } }; timer.schedule(task, 1000, 1000); } /** * 用户协议 * * @param v v */ public void agreementEvent(View v) { // Intent intent = new Intent(this, RegisterAgreementActivity.class); // startActivity(intent); WebActivitytwo.runActivity(this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=1"); } /** * 隐私政策 * * @param v v */ public void yinagreementEvent(View v) { WebActivitytwo.runActivity(this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=19"); } }