package com.nsmss.scuol.personal;
import com.nsmss.scuol.R;
import com.nsmss.scuol.bean.GlobalInfo;
import com.nsmss.scuol.bean.UserData;
import com.nsmss.scuol.common.NetHelper;
import com.nsmss.scuol.dao.GlobalInfoDao;
import com.nsmss.scuol.dao.UserDataDao;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class ChangePasswordActivity extends Activity
{
/**
* 静态成员变量
*/
private static Context context;
/**
* UI相关成员变量
*/
private ProgressDialog loadDialog;
/**
* View相关成员变量
*/
View backView;
View refreshView;
private EditText oldPasswdEditT;
private EditText newPasswdEditT1;
private EditText newPasswdEditT2;
private Button submitButton;
/**
* Dao成员变量
*/
GlobalInfoDao gDao;
private UserDataDao uDao;
/**
* 数据模型变量
*/
GlobalInfo gInfo;
private UserData uData;
/**
* 数据存储变量
*/
private String oldPasswdStr;
private String newPasswdStr1;
private String newPasswdStr2;
/**
* 状态变量
*/
/**
* 临时变量
*/
int uid;
private String errCodeStr;
/**
* Activity回调函数
*/
@Override
protected void onCreate(Bundle savedInstanceState)
{
// 继承父类方法,绑定View
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_password);
// 初始化context
context = getApplicationContext();
// 初始化View成员变量
// 初始化Dao成员变量
gDao = new GlobalInfoDao(context);
uDao = new UserDataDao(context);
// 初始化数据模型变量
gInfo = gDao.query();
uid = gInfo.getActiveUserUid();
uData = uDao.query(uid);
// 初始化状态变量
// 初始化临时变量
// 自定义函数
initView();
initListener();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
jumpToPersonal();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void initView()
{
backView = findViewById(R.id.Btn_Change_Password_Back);
refreshView = findViewById(R.id.Btn_Change_Password_Refresh);
oldPasswdEditT = (EditText) findViewById(R.id.edittext_change_password_oldpasswd);
oldPasswdEditT.addTextChangedListener(watcher);
newPasswdEditT1 = (EditText) findViewById(R.id.edittext_change_password_newpasswd1);
newPasswdEditT1.addTextChangedListener(watcher);
newPasswdEditT2 = (EditText)findViewById(R.id.edittext_change_password_newpasswd2);
newPasswdEditT2.addTextChangedListener(watcher);
submitButton = (Button) findViewById(R.id.button_change_password_submit);
}
private void initListener()
{
backView.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
jumpToPersonal();
}
});
refreshView.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
refreshRoll();
}
});
submitButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
oldPasswdStr = oldPasswdEditT.getText().toString();
newPasswdStr1 = newPasswdEditT1.getText().toString();
newPasswdStr2 = newPasswdEditT2.getText().toString();
if (oldPasswdStr.length()<1) {
Toast.makeText(getApplicationContext(), "请输入原始密码!", Toast.LENGTH_SHORT).show();
submitButton.setEnabled(false); //使登录按钮不可用
newPasswdEditT1.clearFocus();
newPasswdEditT2.clearFocus();
oldPasswdEditT.requestFocus();
}
else if (newPasswdStr1.length()<1||newPasswdStr2.length()<1) {
Toast.makeText(getApplicationContext(), "请输入新设密码!", Toast.LENGTH_SHORT).show();
submitButton.setEnabled(false); //使登录按钮不可用
if (newPasswdStr1.length()<1)
{
oldPasswdEditT.clearFocus();
newPasswdEditT2.clearFocus();
newPasswdEditT1.requestFocus();
}
else {
oldPasswdEditT.clearFocus();
newPasswdEditT1.clearFocus();
newPasswdEditT2.requestFocus();
}
}
else if (!newPasswdStr1.equals(newPasswdStr2)) {
Toast.makeText(getApplicationContext(), "新设密码输入不一致,新重新输入!", Toast.LENGTH_SHORT).show();
submitButton.setEnabled(false); //使登录按钮不可用
newPasswdEditT1.setText("");
newPasswdEditT2.setText("");
oldPasswdEditT.clearFocus();
newPasswdEditT2.clearFocus();
newPasswdEditT1.requestFocus();
}
else {
submitConn();
}
}
});
}
/**
* 定义文本编辑框监视器:watcher
*/
private TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0)
{
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
// TODO Auto-generated method stub
submitButton.setEnabled(true); //编辑后登录按钮可用
}
};
private void jumpToPersonal() {
Intent intent=new Intent();
intent.setClass(ChangePasswordActivity.this, PersonalActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);
finish();
}
private void submitConn()
{
loadDialog = new ProgressDialog(this);
loadDialog.setIndeterminate(true);
loadDialog.setMessage("提交中...");
loadDialog.setCancelable(true);
loadDialog.show();
new Thread(submitRunnable).start();
}
private void refreshRoll() {
// TODO Auto-generated method stub
}
/**
* 线程对象
*/
private Runnable submitRunnable = new Runnable() {
@Override
public void run() {
NetHelper netHelper = new NetHelper();
errCodeStr = netHelper.changePassword(uData,oldPasswdStr, newPasswdStr1,newPasswdStr2);
if (loadDialog.isShowing()) {
loadDialog.dismiss();
if (errCodeStr == null || errCodeStr.equals("100") ||
errCodeStr.equals("103") || errCodeStr.equals("104")) {
runOnUiThread(connErrRunnable);
}
else if (errCodeStr.equals("101")) {
//runOnUiThread(numErrRunnable);
}
else if (errCodeStr.equals("102")) {
//runOnUiThread(passwdErrRunnable);
}
else {
int returnCode = correctUser(errCodeStr);
if (returnCode == 0) {
runOnUiThread(successRunnable);
jumpToPersonal();
}
else {
errCodeStr = returnCode+"";
runOnUiThread(dbErrRunnable);
}
}
}
}
};
/**
* 输出返回的提示信息
*/
private Runnable successRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "密码修改成功!", Toast.LENGTH_SHORT).show();
}
};
private Runnable inputErrRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "请输入相关信息!", Toast.LENGTH_SHORT).show();
}
};
private Runnable oldpasswdErrRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "你输入的原始密码错误,请重新输入", Toast.LENGTH_SHORT).show();
}
};
private Runnable passwdErrRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "您输入的密码不一致,请重新输入", Toast.LENGTH_SHORT).show();
}
};
private Runnable connErrRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "网络连接错误,错误代码"+errCodeStr, Toast.LENGTH_SHORT).show();
}
};
private Runnable dbErrRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(ChangePasswordActivity.this, "信息存储错误,错误代码"+errCodeStr, Toast.LENGTH_SHORT).show();
}
};
/**
* 修正UserData对象,存入数据库,并更新global_info
* @param session 从NetHelper返回的JSESSIONID的值
* @return 成功返回0,否则返回错误代码
*/
private int correctUser(String session)
{
//uData.setPasswd(newPasswdStr1);
uData.setSession(session);
if (uDao.update(uData)) {
return 0;
//gInfo.setActiveUserUid(uid);
//if(gInfoDao.insert(gInfo)) {
//return 0;
//}
//else {
//return 202;
//}
}
else {
return 202;
}
}
/**
* 自定义成员对象
*/
/**
* 自定义方法
*/
}