/**
* @Author Benson
* @Time 2013-11-22
*/
package zjut.soft.finalwork.ui;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import zjut.soft.finalwork.R;
import zjut.soft.finalwork.core.YCApplication;
import zjut.soft.finalwork.core.YCStudentManager;
import zjut.soft.finalwork.util.Constant;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class EditPassUI extends Activity {
private EditText usernameET,oldPassET,newPassET,confPassET;
private Button sureBtn,backBtn;
private YCApplication app;
private Handler handler;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what == 1) {
} else if(msg.what == 0) {
Toast.makeText(EditPassUI.this, "������ʧ��!", Toast.LENGTH_SHORT).show();
sureBtn.setEnabled(true);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.edit_pass_ui);
initWidgets();
}
private void initWidgets() {
handler = new Handler();
app = (YCApplication) getApplication();
usernameET = (EditText) findViewById(R.id.edit_pass_username);
oldPassET = (EditText) findViewById(R.id.edit_pass_old_pass);
newPassET = (EditText) findViewById(R.id.edit_pass_new_pass);
confPassET = (EditText) findViewById(R.id.edit_pass_confirm_pass);
sureBtn = (Button) findViewById(R.id.edit_pass_sure);
backBtn = (Button) findViewById(R.id.edit_pass_back);
usernameET.setText(app.get("username").toString());
sureBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tryToModifyPass();
}
});
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditPassUI.this.finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
});
}
private void tryToModifyPass() {
final String oldPass = oldPassET.getText().toString();
final String newPass = newPassET.getText().toString();
final String confPass = confPassET.getText().toString();
// ��֤
if(!newPass.equals(confPass)) {
Toast.makeText(this, "�����������벻һ��!", Toast.LENGTH_SHORT).show();
return;
}
if(!oldPass.equals(app.get("password"))) {
Toast.makeText(this, "���������벻��ȷ!", Toast.LENGTH_SHORT).show();
return;
}
// λ��������֤��1λ��Ҳ��
sureBtn.setCompoundDrawablesWithIntrinsicBounds(0,
R.drawable.login_progress_anim, 0, 0);
sureBtn.setText("����...");
AnimationDrawable mFrameAnimation = (AnimationDrawable) sureBtn.getCompoundDrawables()[1];
mFrameAnimation.start();
sureBtn.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
try {
// ����POST����
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("Edt_OldUser", app.get("username").toString()));
urlParameters.add(new BasicNameValuePair("Edt_OldPassWord", oldPass));
urlParameters.add(new BasicNameValuePair("Edt_NewPassWord", newPass));
urlParameters.add(new BasicNameValuePair("Edt_QRPassWord", confPass));
urlParameters.add(new BasicNameValuePair("ImageButton1.x", "0"));
urlParameters.add(new BasicNameValuePair("ImageButton1.y", "0"));
String loginUrl = ((YCApplication)getApplication()).get("selectedIp") + Constant.modifyPassContext;
Elements elements = Jsoup.connect(loginUrl).get().select("input");
for(Element element : elements ) {
if("__VIEWSTATE".equals(element.attr("name"))) {
urlParameters.add(new BasicNameValuePair("__VIEWSTATE", element.val()));
}
}
// ������Ϣ
for(NameValuePair pair : urlParameters) {
Log.i(YCStudentManager.class.getName(),pair.getName() + ":" + pair.getValue());
}
// POST�����������
HttpPost post = new HttpPost(loginUrl);
post.setEntity(new UrlEncodedFormEntity(urlParameters,Constant.ENCODING));
HttpResponse response = app.getClient().execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),Constant.ENCODING),8192);
String line = null;
while ((line = rd.readLine()) != null) {
if(line.contains("�����ijɹ�")) {
handler.post(new Runnable() {
@Override
public void run() {
// �Ļ�������ֵ
app.put("password", newPass); // ����ԭ���ľ�����
getSharedPreferences(Constant.PREFERENCES_NAME, Context.MODE_PRIVATE)
.edit().putString("password", newPass).commit(); // ���DZ��������
Toast.makeText(EditPassUI.this, "�����ijɹ�!", Toast.LENGTH_SHORT).show();
sureBtn.setText("�ijɹ�");
EditPassUI.this.finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
});
break;
} else {
// ò�Ʋ�����else�ˡ�
}
}
}catch(Exception e) {
e.printStackTrace();
mHandler.sendEmptyMessage(0);
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(EditPassUI.this, "������ʧ��!", Toast.LENGTH_SHORT).show();
sureBtn.setEnabled(true);
}
});
}
}
}).start();
}
}