/** * Copyright (C) 2013-2014 EaseMob Technologies. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.ccxt.whl.activity; import java.util.Map; import org.apache.http.Header; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.text.InputType; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; import com.ccxt.whl.Constant; import com.ccxt.whl.DemoApplication; import com.ccxt.whl.R; import com.ccxt.whl.utils.CommonUtils; import com.ccxt.whl.utils.DeviceUuidFactory; import com.ccxt.whl.utils.HttpRestClient; import com.ccxt.whl.utils.JsonToMapList; import com.ccxt.whl.utils.MD5; import com.ccxt.whl.utils.PreferenceUtils; import com.easemob.chat.EMChatConfig; import com.easemob.chat.EMChatManager; import com.easemob.exceptions.EMNetworkUnconnectedException; import com.easemob.exceptions.EaseMobException; import com.loopj.android.http.BaseJsonHttpResponseHandler; import com.loopj.android.http.RequestParams; /** * 注册页 * */ public class RegisterActivity extends BaseActivity { private EditText emailEditText; private EditText userNameEditText; private EditText passwordEditText; private EditText confirmPwdEditText; private String sex = null; private String uid = null; RadioGroup rg; RadioButton b1; RadioButton b2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); DeviceUuidFactory uuid = new DeviceUuidFactory(this); uid = uuid.getDeviceUuid().toString(); emailEditText = (EditText)findViewById(R.id.email); emailEditText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//设置限制邮箱格式 userNameEditText = (EditText) findViewById(R.id.username); passwordEditText = (EditText) findViewById(R.id.password); confirmPwdEditText = (EditText) findViewById(R.id.confirm_password); rg=(RadioGroup)findViewById(R.id.sex); b1=(RadioButton)findViewById(R.id.male); b2=(RadioButton)findViewById(R.id.female); rg.setOnCheckedChangeListener(new OnCheckedChangeListener(){ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(checkedId==b1.getId()){ sex = "1"; Toast.makeText(RegisterActivity.this,"男", Toast.LENGTH_LONG).show(); } if(checkedId==b2.getId()){ sex = "2"; Toast.makeText(RegisterActivity.this,"女", Toast.LENGTH_LONG).show(); } } }); } /** * 注册 * * @param view */ public void register(View view) { final String email = emailEditText.getText().toString().trim(); final String username = userNameEditText.getText().toString().trim(); final String pwd = passwordEditText.getText().toString().trim(); String confirm_pwd = confirmPwdEditText.getText().toString().trim(); if (TextUtils.isEmpty(email)) { Toast.makeText(this, "邮箱不能为空!", Toast.LENGTH_SHORT).show(); emailEditText.requestFocus(); return; } else if (TextUtils.isEmpty(username)) { Toast.makeText(this, "用户名不能为空!", Toast.LENGTH_SHORT).show(); userNameEditText.requestFocus(); return; } else if (TextUtils.isEmpty(pwd)) { Toast.makeText(this, "密码不能为空!", Toast.LENGTH_SHORT).show(); passwordEditText.requestFocus(); return; } else if (TextUtils.isEmpty(confirm_pwd)) { Toast.makeText(this, "确认密码不能为空!", Toast.LENGTH_SHORT).show(); confirmPwdEditText.requestFocus(); return; } else if (!pwd.equals(confirm_pwd)) { Toast.makeText(this, "两次输入的密码不一致,请重新输入!", Toast.LENGTH_SHORT).show(); return; }else if (sex==null) { Toast.makeText(this, "请选择您的性别!", Toast.LENGTH_SHORT).show(); return; } if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(pwd)) { final ProgressDialog pd = new ProgressDialog(this); pd.setMessage("正在注册..."); pd.show(); RequestParams params = new RequestParams(); params.add("tel_email", email); params.add("nickname", username); params.add("pwd", MD5.MD5Hash(pwd)); params.add("sex", sex); params.add("uid", uid); HttpRestClient.get(Constant.REGISTER_URL, params, new BaseJsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, String rawJsonResponse, Object response) { Log.d("login_res_json"+rawJsonResponse); if(CommonUtils.isNullOrEmpty(rawJsonResponse)){ Toast.makeText(getApplicationContext(), "您的网络不稳定,请检查网络!", 0).show(); return; } Map<String, Object> lm = JsonToMapList.getMap(rawJsonResponse); if(lm.get("status").toString() != null && lm.get("status").toString().equals("yes")){ Map<String, Object> result = JsonToMapList.getMap(lm.get("result").toString()); String resultStr = "status:" + lm.get("status") + "\n" + "message:" + lm.get("message") + "\n" + "result:" + lm.get("result") + "\n" + "user:" + result.get("user") + "\n" + "pwd:" + result.get("pwd") + "\n"; Log.d("login_res_obj"+ resultStr); pd.dismiss(); //Map<String, Object> result = JsonToMapList.getMap(lm.get("result").toString()); //reg(result.get("user").toString(),result.get("pwd").toString()); Toast.makeText(getApplicationContext(), lm.get("message").toString(), 0).show(); }else{ Toast.makeText(getApplicationContext(), lm.get("message").toString(), 0).show(); pd.dismiss(); } } @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, String rawJsonData, Object errorResponse) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "您的网络不稳定,请检查网络!", 0).show(); } @Override protected Object parseResponse(String rawJsonData, boolean isFailure) throws Throwable { // TODO Auto-generated method stub return null; } }); } } public void back(View view) { finish(); } public void reg(final String username,final String pwd){ if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(pwd)) { final ProgressDialog pd = new ProgressDialog(this); pd.setMessage("正在注册..."); pd.show(); new Thread(new Runnable() { public void run() { try { // 调用sdk注册方法 EMChatManager.getInstance().createAccountOnServer(username, pwd); runOnUiThread(new Runnable() { public void run() { if (!RegisterActivity.this.isFinishing()) pd.dismiss(); RequestParams params = new RequestParams(); params.add("user", username); if (DemoApplication.getInstance().getlastloc() != null) { double Latitude = DemoApplication.getInstance().getlastloc().getLatitude() ; double Longitude = DemoApplication.getInstance().getlastloc().getLongitude() ; String adr = DemoApplication.getInstance().getlastloc().getAddrStr(); params.add("jiedao", adr); } HttpRestClient.get(Constant.REGISTER_URL_HUIZHI, params, new BaseJsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, String rawJsonResponse, Object response) { // TODO Auto-generated method stub Log.d("login_res_json"+ rawJsonResponse); if(CommonUtils.isNullOrEmpty(rawJsonResponse)){ Toast.makeText(getApplicationContext(), "您的网络不稳定,请检查网络!", 0).show(); return; } Map<String, Object> lm = JsonToMapList.getMap(rawJsonResponse); if(lm.get("status").toString() != null && lm.get("status").toString().equals("yes")){ Map<String, Object> result = JsonToMapList.getMap(lm.get("result").toString()); String resultStr = "status:" + lm.get("status") + "\n" + "message:" + lm.get("message") + "\n" + "result:" + lm.get("result") + "\n"; Log.d("login_res_obj"+ resultStr); pd.dismiss(); // 保存用户名 // DemoApplication.getInstance().setUserName(username); DemoApplication.getInstance().setUser(username); Toast.makeText(getApplicationContext(), "注册成功", 0).show(); finish(); }else{ Toast.makeText(getApplicationContext(), lm.get("message").toString(), 0).show(); pd.dismiss(); } } @Override public void onFailure(int statusCode, Header[] headers, Throwable throwable, String rawJsonData, Object errorResponse) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "请检查网络是否开启", 0).show(); } @Override protected Object parseResponse( String rawJsonData, boolean isFailure) throws Throwable { // TODO Auto-generated method stub return null; } }); } }); } catch (final Exception e) { runOnUiThread(new Runnable() { public void run() { if (!RegisterActivity.this.isFinishing()) pd.dismiss(); if (e != null && e.getMessage() != null) { String errorMsg = e.getMessage(); if (errorMsg.indexOf("EMNetworkUnconnectedException") != -1) { Toast.makeText(getApplicationContext(), "网络异常,请检查网络!", 0).show(); } else if (errorMsg.indexOf("conflict") != -1) { //用户名重复 Toast.makeText(getApplicationContext(), "未知错误,请重试!", 0).show(); } else if (errorMsg.indexOf("not support the capital letters") != -1) { Toast.makeText(getApplicationContext(), "用户名不支持大写字母!", 0).show(); } else { Toast.makeText(getApplicationContext(), "注册失败: " + e.getMessage(), 1).show(); } } else { Toast.makeText(getApplicationContext(), "注册失败: 未知异常", 1).show(); } } }); } } }).start(); } } }