import java.sql.SQLException;
import com.huawei.pom.alarm.database.dao.factory.DAOFactory;
import com.huawei.pom.alarm.model.User;
import com.huawei.pom.alarm.util.SPUtil;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity
{
private EditText usernameET;
private EditText passwordET;
private Button loginBut;
private CheckBox remembCB;
private CheckBox autologinCB;
private static final int MSG_SUCCESS = 0;
private static final int MSG_FAILURE = 1;
private static final int MSG_QUERY_MISSTAKE=2;
private String username;
private String password;
private SPUtil util;
private ProgressDialog loginDialog;
private boolean isValidate;
private Handler mHandler = new Handler() {
public void handleMessage (Message msg) {
switch(msg.what) {
case MSG_SUCCESS:
if(remembCB.isChecked()){
util.setValue("isRememberPW", true);
util.setValue("username", username);
util.setValue("password", password);
}
if(autologinCB.isChecked()){
util.setValue("isAutoLogin", true);
}
jumpHomePage();
break;
case MSG_FAILURE:
Toast.makeText(LoginActivity.this, "登录失败,请检查用户名和密码是否正确", Toast.LENGTH_SHORT).show();
loginDialog.dismiss();
break;
case MSG_QUERY_MISSTAKE:
Toast.makeText(LoginActivity.this, "查询数据异常", Toast.LENGTH_SHORT).show();
loginDialog.dismiss();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
util=new SPUtil(LoginActivity.this,"loginData");
if(util.getValue("isAutoLogin", false)==true&&util.getValue("isRememberPW", false)==true){
jumpHomePage();
}else{
setContentView(R.layout.login);
initView();
setListener();
}
}
private void initView(){
usernameET=(EditText)this.findViewById(R.id.login_username_edit);
passwordET=(EditText)this.findViewById(R.id.login_password_edit);
loginBut=(Button)this.findViewById(R.id.login_butt);
remembCB=(CheckBox)this.findViewById(R.id.remember_pw_checkbox);
autologinCB=(CheckBox)this.findViewById(R.id.autologin_checkbox);
if(util.getValue("isRememberPW", false)==true){
usernameET.setText(util.getValue("username", ""));
passwordET.setText(util.getValue("password", ""));
}
}
private void setListener(){
loginBut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
username=usernameET.getText().toString();
password=passwordET.getText().toString();
if("".equals(username)||"".equals(password)){
Toast.makeText(LoginActivity.this, "用户名和密码不能为空", Toast.LENGTH_SHORT).show();
return;
}else{
//显示正在登录提示框
showLoginDialog();
new Thread(runnable).start();
}
}});
}
private void jumpHomePage(){
Intent intent=new Intent(LoginActivity.this,HomepageActivity.class);
startActivity(intent);
}
private void showLoginDialog(){
loginDialog= new ProgressDialog(LoginActivity.this);
loginDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
loginDialog.setTitle("请稍后");
loginDialog.setMessage("正在登录");
loginDialog.setIndeterminate(false);
loginDialog.setCancelable(true);
loginDialog.show();
}
Runnable runnable = new Runnable() {
@Override
public void run()
{
// TODO Auto-generated method stub
User user=new User();
user.setUserName(username);
user.setUserPassword(password);
try
{
isValidate=DAOFactory.getDAOFactory(LoginActivity.this).getUserDao().ifCanLogin(user);
if(isValidate){
mHandler.obtainMessage(MSG_SUCCESS).sendToTarget();
}else{
mHandler.obtainMessage(MSG_FAILURE).sendToTarget();
}
}
catch (SQLException e)
{
// TODO Auto-generated catch block
mHandler.obtainMessage(MSG_QUERY_MISSTAKE).sendToTarget();
}
}
};
}