package Password.Principal;
import usuario.Alerts;
import usuario.ManejadorBD;
import usuario.Usuario;
import usuario.Validacion;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Sesion extends Activity {
public ManejadorBD cnx = null;
private Alerts alerta = new Alerts();
private int id=0;
public Toast msj;
public ProgressDialog inSesion;
private int numIntento=0;
private boolean entrada;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sesion);
try {
final EditText usr = (EditText) findViewById(R.id.user);
final EditText psw = (EditText) findViewById(R.id.psw);
usr.setOnClickListener(new OnClickListener() {
@Override
public void onClick
(View v
) { // TODO Auto-generated method stub
usr.setText("");
}
});
psw.setOnClickListener(new OnClickListener() {
@Override
public void onClick
(View v
) { // TODO Auto-generated method stub
psw.setText("");
}
});
iniciar.setOnClickListener(new OnClickListener() {
@Override
public void onClick
(View v
) { // TODO Auto-generated method stub
inSesion=ProgressDialog.show(Sesion.this, "","Iniciando Sesion...", true);
@Override
public void run() {
// TODO Auto-generated method stub
if(this.verificarUsuarioSistema(usr.getText().toString(), psw.getText().toString())){
entrada=true;
}else{
entrada=false;
}
inSesion.dismiss();
}
private boolean verificarUsuarioSistema
(String nomusr,
String usrpsw
){ cnx = new ManejadorBD(Sesion.this, "passwordsBD", 1, 'r');
Usuario user = new Usuario();
user.setUsuario(nomusr);
user.setPassword(usrpsw);
Validacion validar = new Validacion();
if (validar.validarUsuario(nomusr)&& validar.validarPassword(usrpsw)) {
if (cnx.verificarUsuario()) {
msjErrror=this.getMsjErrorSesion(1);
cnx.CerrarBD();
numIntento++;
return (false);
} else {
String[] args
= { nomusr,usrpsw
}; Cursor c
= cnx.
consultar("SELECT * FROM usuarios WHERE nombreUsuario=? and contrasenia=?",args
); if (c.getCount() == 0) {
msjErrror=this.getMsjErrorSesion(2);
cnx.CerrarBD();
numIntento++;
return (false);
} else {
if (c.moveToFirst()) {
do {
id = c.getInt(0);
usuarioBD = c.getString(4);
passwordBD = c.getString(5);
} while (c.moveToNext());
if (validar.validarUsuarioBD(usuarioBD,nomusr) && validar.validarPasswordBD(passwordBD,usrpsw)) {
msjErrror=this.getMsjErrorSesion(3);
cnx.CerrarBD();
return (true);
} else {
msjErrror=this.getMsjErrorSesion(4);
cnx.CerrarBD();
numIntento++;
return (false);
}
} else {
msjErrror=this.getMsjErrorSesion(5);
cnx.CerrarBD();
return (false);
}
}
}
} else {
msjErrror=this.getMsjErrorSesion(6);
cnx.CerrarBD();
numIntento++;
return (false);
}
}
private String getMsjErrorSesion
(int idError
){ switch(idError){
case 1:
msj="El usuario es inválido o incorrecto";
break;
case 2:
msj="El usuario no existe en el sistema, verifique la información";
break;
case 3:
msj="Accediendo a la aplicación";
break;
case 4:
msj="El usuario o contraseña son inválidos, verifique la información";
break;
case 5:
msj="El usuario no existe en el sistema, verifique la información";
break;
case 6:
msj="El usuario o contraseña son inválidos, verifique la información";
break;
default:
msj="Ha ocurrido un problema al iniciar la sesion";
break;
}
return(msj);
}
});
is.start();
if(is.isAlive()){
if(entrada==true){
Intent envio = new Intent(Sesion.this,
Bundle idUser = new Bundle();
idUser.putInt("idUsuario", id);
envio.putExtras(idUser);
setResult(RESULT_OK, envio);
startActivity(envio);
finish();
}else{
if(entrada==false){
alerta.showWarning("Acceso Denegado",
msjErrror, Sesion.this);
this.verificarIntentos();
}
}
}else{
is.start();
}
}
private void verificarIntentos(){
if(numIntento==3){
msj=Toast.makeText(Sesion.this,
"Intenta mas tarde",
Toast.LENGTH_SHORT);
msj.show();
}else{
int intentos=3-numIntento;
msj=Toast.makeText(Sesion.this,
"Intentos restantes:"+intentos,
Toast.LENGTH_SHORT);
msj.show();
}
}
});
alerta.showWarning("Error en la Aplicación",
"Se ha producido un error", this);
finish();
}
}
}