package com.siso.app.ui; import java.io.Serializable; import java.util.HashMap; import com.easemob.EMCallBack; import com.easemob.chat.EMChatManager; import com.google.gson.Gson; import com.siso.app.common.Constants; import com.siso.app.common.URLs; import com.siso.app.entity.DataJson; import com.siso.app.entity.UserEntity; import com.siso.app.ui.common.BaseActionBarActivity; import com.siso.app.ui.login.RegisterActivity_; import com.siso.app.utils.AccountInfoUtils; import com.siso.app.utils.PBEUtil; import cn.smssdk.EventHandler; import cn.smssdk.SMSSDK; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.text.InputType; import android.util.Log; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; /** * * description : * * @version 1.0 * @author Owater * @createtime : 2015-4-11 下午2:04:58 * * 修改历史: * 修改人 修改时间 修改内容 * --------------- ------------------- ----------------------------------- * Owater 2015-4-11 下午2:04:58 * */ public class LoginActivity extends BaseActionBarActivity { private static final String TAG = "LoginActivity"; public final static int LOGIN_SUCCESS = 111; public final static int LOGIN_FAIL = 112; public final static int REGISTER_SUCCESS = 114; private EditText unameEditText; private EditText pwdEditText; private Button registerBtn; private Button loginBtn; private Toolbar toolbar; private UserEntity userEntity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); } private void initView() { unameEditText = (EditText)findViewById(R.id.login_username); pwdEditText = (EditText)findViewById(R.id.login_password); registerBtn = (Button)findViewById(R.id.register_button_tips); loginBtn = (Button)findViewById(R.id.login); initToolbar(); registerBtn.setOnClickListener(this); loginBtn.setOnClickListener(this); } private void initToolbar(){ toolbar = (Toolbar)findViewById(R.id.toolbar); toolbar.setTitle("登录"); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.back_btn); } @Override protected int getLayoutId() { return R.layout.activity_login; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onRequestSuccess(String response) { Gson gson = new Gson(); DataJson dataJson = gson.fromJson(response, DataJson.class); if (dataJson.isSuccess()) { userEntity = gson.fromJson(gson.toJson(dataJson.getData()), UserEntity.class); loginHx(); }else { showButtomToast(getStringByRId(R.string.account_fail)); } } String currentUsername; String currentPassword; private void loginHx(){ currentUsername = userEntity.getHxId(); currentPassword = pwdEditText.getText().toString(); // 调用sdk登陆方法登陆聊天服务器 EMChatManager.getInstance().login(currentUsername, currentPassword, new EMCallBack() { @Override public void onSuccess() { loginSuccess(); // if (!progressShow) { // return; // } // 登陆成功,保存用户名密码 // MyApplication.getInstance().setUserName(currentUsername); // MyApplication.getInstance().setPassword(currentPassword); //更新当前用户的nickname 此方法的作用是在ios离线推送时能够显示用户nick // boolean updatenick = EMChatManager.getInstance().updateCurrentUserNick(MyApplication.currentUserNick.trim()); // if (!updatenick) { // Log.e("LoginActivity", "update current user nick fail"); // } // if (!LoginActivity.this.isFinishing()) // pd.dismiss(); } @Override public void onProgress(int progress, String status) { loadingProgressDialog.setMessage(getStringByRId(R.string.logining)); } @Override public void onError(final int code, final String message) { loadingProgressDialog.dismiss(); runOnUiThread(new Runnable() { @Override public void run() { showButtomToast(getStringByRId(R.string.login_fail)); } }); } }); } private void loginSuccess(){ runOnUiThread(new Runnable() { @Override public void run() { showButtomToast("成功登录"); } }); Intent intent = new Intent(); intent.putExtra("entity", (Serializable)userEntity); AccountInfoUtils.saveSharedPreferences(this, userEntity); MyApplication.userInfo = AccountInfoUtils.getUserInfo(this); Constants.ISLOGIN = true; setResult(LoginActivity.LOGIN_SUCCESS, intent); loadingProgressDialog.dismiss(); finish(); } String userPhone; @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.register_button_tips: //初始化短信sdk // SMSSDK.initSDK(this, Constants.APPKEY, Constants.APPSECRET); startActivity(new Intent(this, RegisterActivity_.class)); // 打开注册页面 // RegisterPage registerPage = new RegisterPage(); // //验证短信的回调函数 // registerPage.setRegisterCallback(new EventHandler() { // public void afterEvent(int event, int result, Object data) { // // 解析注册结果 // if (result == SMSSDK.RESULT_COMPLETE) { // HashMap<String, Object> phoneMap = (HashMap<String, Object>) data; // String country = (String) phoneMap.get("country"); // userPhone = (String) phoneMap.get("phone"); // Intent intent = new Intent(LoginActivity.this,RegirsterActivity.class); // Bundle bundle = new Bundle(); // bundle.putString("userPhone", userPhone); // intent.putExtras(bundle); // startActivityForResult(intent,1); // } // } // }); // registerPage.show(this); break; case R.id.login: UserEntity userEntity = new UserEntity(); userEntity.setUserPhone(unameEditText.getText().toString()); userEntity.setLoginPassword(PBEUtil.encrypt(pwdEditText.getText().toString(), PBEUtil.passwordkey, PBEUtil.getStaticSalt())); loadingProgressDialog.show(); networkHelper.postData(URLs.LOGIN, userEntity); break; default: break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==Activity.RESULT_OK){ if(resultCode==REGISTER_SUCCESS){ if(userPhone!=null){ unameEditText.setText(userPhone); } } } } }