/**
*
*/
package coolbuy360.searchhealth;
import coolbuy360.logic.User;
import coolbuy360.service.CommandResult;
import coolbuy360.service.CommonMethod;
import coolbuy360.service.MD5;
import coolbuy360.service.PasswordDigitsKey;
import coolbuy360.service.searchApp;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;
/**
* ��֤����
* @author yangxc
*
*/
public class MemberCheckPwd extends Activity {
EditText member_checkpwd_edit_pwd = null;
boolean pwdValidate = false;
String backprogram = "";
public ProgressDialog pBarcheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.member_checkpwd);
// Ϊ�˳�����
searchApp.getInstance().addActivity(this);
ImageButton actionbar_pre_btn = (ImageButton) this
.findViewById(R.id.actionbar_pre_btn);
actionbar_pre_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
MemberCheckPwd.this.finish();
}
});
member_checkpwd_edit_pwd = (EditText) this
.findViewById(R.id.member_checkpwd_edit_pwd);
// �����������ַ�����
member_checkpwd_edit_pwd.setKeyListener(new PasswordDigitsKey());
// ��֤�������ĸ�ʽ�ļ����¼�
VaridateEdittxt();
Bundle rootBundle = getIntent().getExtras();
if (rootBundle != null) {
backprogram = rootBundle.getString("backprogram");
}
Button member_checkpwd_btn_check = (Button) this
.findViewById(R.id.member_checkpwd_btn_check);
member_checkpwd_btn_check.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
CommonMethod.clearFocuse(MemberCheckPwd.this);
if (pwdValidate) {
new AsyncResetPwd().execute();
} else {
if (!pwdValidate)
checkPwd(member_checkpwd_edit_pwd);
Toast.makeText(MemberCheckPwd.this, "���������",
Toast.LENGTH_LONG).show();
}
}
});
}
// ������֤
private void checkPwd(EditText et) {
String input = et.getText().toString();
int pwdlen = input.length();
if (pwdlen < 6 || pwdlen > 12) {
pwdValidate = false;
et.setError(changeErrorColor("���볤��Ϊ6-12���ַ�"));
} else {
pwdValidate = true;
}
}
/**
* ��֤��Ҫ���ݵ������Լ���
*/
private void VaridateEdittxt() {
// ���������֤
member_checkpwd_edit_pwd
.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
EditText et = (EditText) v;
if (!hasFocus) {
checkPwd(et);
}
}
});
}
private SpannableStringBuilder changeErrorColor(String errorMsg) {
// int ecolor =R.color.green ; // whatever color you want
String estring = errorMsg;
ForegroundColorSpan fgcspan = new ForegroundColorSpan(Color.RED);
SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
ssbuilder.setSpan(fgcspan, 0, estring.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ssbuilder;
}
class AsyncResetPwd extends AsyncTask<String, Void, CommandResult> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pBarcheck = new ProgressDialog(MemberCheckPwd.this);
pBarcheck.setMessage("������֤����");
pBarcheck.setIndeterminate(true);
pBarcheck.setCancelable(true);
pBarcheck.show();
}
@Override
protected CommandResult doInBackground(String... params) {
// TODO Auto-generated method stub
User user = new User(getBaseContext());
CommandResult result = new CommandResult(false, "δ֪������֤ʧ�ܡ�");
try {
String opwd = User.getValue(MemberCheckPwd.this, "Member_Password");
String pwd = member_checkpwd_edit_pwd.getText().toString();
if (MD5.getMD5(pwd).toLowerCase().equals(opwd.toLowerCase())) {
result.setResult(true);
result.setMessage("��֤�ɹ���");
} else {
result.setMessage("������������ԡ�");
}
return result;
} catch (Exception e) {
// TODO Auto-generated catch block
return result;
}
}
@Override
protected void onPostExecute(CommandResult result) {
// TODO Auto-generated method stub
Dialog dialog;
if (result.getResult())// �����¼�ɹ�
{
pBarcheck.cancel();
member_checkpwd_edit_pwd.setText("");
Intent memberIntent = new Intent().setClass(MemberCheckPwd.this,
Member.class);
memberIntent.putExtra("backprogram", backprogram);
MemberCheckPwd.this.setResult(RESULT_OK,memberIntent);
MemberCheckPwd.this.finish();
} else {
pBarcheck.cancel();
dialog = new AlertDialog.Builder(MemberCheckPwd.this)
.setTitle("����").setMessage(result.getMessage())
.setCancelable(true).setNegativeButton("ȷ��", null)
.show();
}
}
}
}