package net.cgt.weixin.activity; import net.cgt.weixin.Constants; import net.cgt.weixin.GlobalParams; import net.cgt.weixin.R; import net.cgt.weixin.utils.AppToast; import net.cgt.weixin.utils.HandlerTypeUtils; import net.cgt.weixin.utils.L; import net.cgt.weixin.utils.LogUtil; import net.cgt.weixin.utils.SpUtil; import net.cgt.weixin.view.manager.XmppManager; import android.app.ActionBar; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Vibrator; import android.support.v4.app.NavUtils; import android.support.v4.app.TaskStackBuilder; import android.text.TextUtils; import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.EditText; /** * 注册 * * @author lijian * @date 2014-11-22 */ public class RegistActivity extends BaseActivity { protected static final String LOGTAG = LogUtil.makeLogTag(RegistActivity.class); /** * 用户名输入框 */ private EditText mEt_userName; /** * 昵称输入框 */ private EditText mEt_nickName; /** * 密码输入框 */ private EditText mEt_pwd; /** * 重复密码输入框 */ private EditText mEt_rpwd; /** * 注册按钮 */ private Button mBtn_regist; private SpUtil sp; private String userName = ""; private String nickName = ""; private String userPwd = ""; private String userRpwd = ""; private Vibrator vibrator; private Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case HandlerTypeUtils.WX_HANDLER_HTTP_EXCEPTION: AppToast.getToast().show("网络异常"); break; case HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_SUCCESS: L.i(LOGTAG, "regist success"); sp.saveString(Constants.XMPP_USERNAME, userName); sp.saveString(Constants.XMPP_PASSWORD, userPwd); AppToast.getToast().show("注册成功"); GlobalParams.ISLOGIN = true; Intent intent = new Intent(RegistActivity.this, MainActivity.class); startActivity(intent); finish(); break; case HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_SAME: mEt_userName.requestFocus(); AppToast.getToast().show("该用户名已被注册"); Animation shake = AnimationUtils.loadAnimation(RegistActivity.this, R.anim.shake); mEt_userName.startAnimation(shake); vibrator.vibrate(300); break; case HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_FAIL: AppToast.getToast().show("注册失败"); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.cgt_activity_regist); //显示软体键盘 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); init(); } private void init() { initView(); initData(); } private void initView() { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(true); actionBar.setTitle(R.string.text_menu_regist_title); mEt_userName = (EditText) findViewById(R.id.cgt_et_regist_userName); mEt_nickName = (EditText) findViewById(R.id.cgt_et_regist_nickName); mEt_pwd = (EditText) findViewById(R.id.cgt_et_regist_pwd); mEt_rpwd = (EditText) findViewById(R.id.cgt_et_regist_rpwd); mBtn_regist = (Button) findViewById(R.id.cgt_btn_regist); mBtn_regist.setOnClickListener(this); } private void initData() { sp = new SpUtil(this); mEt_userName.requestFocus(); vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.cgt_btn_regist: if (checkValidity()) { submitRegist(); } break; default: break; } } private void getUserInfo() { userName = mEt_userName.getText().toString().trim(); nickName = mEt_nickName.getText().toString().trim(); userPwd = mEt_pwd.getText().toString().trim(); userRpwd = mEt_rpwd.getText().toString().trim(); } private boolean checkValidity() { getUserInfo(); if (TextUtils.isEmpty(userName)) { mEt_userName.requestFocus(); AppToast.getToast().show("用户名不能为空"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_userName.startAnimation(shake); vibrator.vibrate(300); return false; } if (TextUtils.isEmpty(nickName)) { mEt_nickName.requestFocus(); AppToast.getToast().show("昵称不能为空"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_nickName.startAnimation(shake); vibrator.vibrate(300); return false; } if (TextUtils.isEmpty(userPwd)) { mEt_pwd.requestFocus(); AppToast.getToast().show("密码不能为空"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_pwd.startAnimation(shake); vibrator.vibrate(300); return false; } if (userPwd.length() < 6) { mEt_pwd.requestFocus(); AppToast.getToast().show("密码格式不正确"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_pwd.startAnimation(shake); vibrator.vibrate(300); return false; } if (TextUtils.isEmpty(userRpwd)) { mEt_rpwd.requestFocus(); AppToast.getToast().show("重复密码不能为空"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_rpwd.startAnimation(shake); vibrator.vibrate(300); return false; } if (userRpwd.length() < 6) { mEt_rpwd.requestFocus(); AppToast.getToast().show("重复密码格式不正确"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_rpwd.startAnimation(shake); vibrator.vibrate(300); return false; } if (!userPwd.equals(userRpwd)) { mEt_rpwd.requestFocus(); AppToast.getToast().show("重复密码和密码不相同"); Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); mEt_rpwd.startAnimation(shake); vibrator.vibrate(300); return false; } return true; } private void submitRegist() { new Thread(new Runnable() { @Override public void run() { String result = XmppManager.getInstance().regist(userName, userPwd); if (result.equals("0")) {// 0、 服务器没有返回结果 handler.sendEmptyMessage(HandlerTypeUtils.WX_HANDLER_HTTP_EXCEPTION); } else if (result.equals("1")) {// 1、注册成功 handler.sendEmptyMessage(HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_SUCCESS); } else if (result.equals("2")) {// 2、这个帐号已经存在 handler.sendEmptyMessage(HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_SAME); } else if (result.equals("3")) {// 3、注册失败 handler.sendEmptyMessage(HandlerTypeUtils.WX_HANDLER_TYPE_LOAD_DATA_FAIL); } } }).start(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home://返回上一菜单页 AppToast.getToast().show("返回上一页"); Intent upIntent = NavUtils.getParentActivityIntent(this); if (NavUtils.shouldUpRecreateTask(this, upIntent)) { TaskStackBuilder.create(this).addNextIntentWithParentStack(upIntent).startActivities(); } else { upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); NavUtils.navigateUpTo(this, upIntent); } break; default: break; } return super.onOptionsItemSelected(item); } }