Utilizar ProgressDialog ao fazer Login

0 respostas
programaçãoandroidjava
T

Estou tentando inserir uma ProgressDialog na tela de Login do meu APP Android.
Em partes está dando certo, apenas quando o login é efetuado com sucesso, mas quando algo esta errado como senha por exemplo, a ProgressDialog não fecha.

Código:

package com.parse.starter.activity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.parse.LogInCallback;
import com.parse.ParseException;
import com.parse.ParseUser;
import com.parse.starter.R;

public class LoginActivity extends AppCompatActivity {


    private EditText editLoginUsuario;
    private EditText editLoginSenha;
    private Button botaoLogar;
    private ProgressDialog progressDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);


        editLoginUsuario = (EditText) findViewById(R.id.edit_login_usuario);
        editLoginSenha = (EditText) findViewById(R.id.edit_login_senha);
        botaoLogar = (Button) findViewById(R.id.button_logar);

        //Verificar se o usuario esta logado
        verificarUsuarioLogado();

         //configuração PROGRESSDIALOG
        //Configura barra de progresso passando o contexto
        progressDialog = new ProgressDialog(LoginActivity.this );

        //Configura o título da progress dialog
        //progressDialog.setTitle("Titulo da barra");

        //configura a mensagem de que está sendo feito o carregamento
        progressDialog.setMessage("Efetuando o login!!!");

        //configura se a progressDialog pode ser cancelada pelo usuário
        progressDialog.setCancelable(false);

        //Adicionar evento de click no botao logar
        botaoLogar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //Exibe a barra no momento que é iniciado o processo
                progressDialog.show();


                String usuario = editLoginUsuario.getText().toString();
                String senha = editLoginSenha.getText().toString();

                verificarLogin( usuario, senha );
            }
        });


    }

    private void verificarLogin(String usuario, String senha){
        ParseUser.logInInBackground(usuario, senha, new LogInCallback() {
            @Override
            public void done(ParseUser user, ParseException e) {
                if ( e==null ){ //sucesso ao fazer login
                    Toast.makeText(LoginActivity.this, "Login realizado com sucesso! ", Toast.LENGTH_LONG).show();
                    abrirAreaPrincipal();
                } else { //erro ao logar
                    Toast.makeText(LoginActivity.this, "Login realizado com sucesso! " + e.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        });

    }


    public void abrirCadastroUsuario(View view){
        Intent intent = new Intent(LoginActivity.this, CadastroActivity.class);
        startActivity( intent );
    }

    private void verificarUsuarioLogado(){

        if ( ParseUser.getCurrentUser() != null ){ //se o usuario estiver logado
            //Enviar usuario para tela principal
            abrirAreaPrincipal();
        }
    }

    private void abrirAreaPrincipal(){
        Intent intent = new Intent(LoginActivity.this, MainActivity.class);
        startActivity( intent );
        finish();
    }



}

Como poderia utilizar essa ProgressDialog para que quando der algo errado na conexão ela feche automaticamente, pois o erro já esta sendo exibido pelo Parse.

Onde e como eu poderia inserir no meu código na forma que ele ja está estruturado (alterando o mínimo possível)?. Quanto aos erros ja estão sendo exibidos mas em “verificarLogin”, é ali que eu mostro.
O ProgressDialog não faz nada só mostra pro usuário enquanto esta fazendo o login.

Criado 31 de maio de 2017
Respostas 0
Participantes 1