package br.com.easyworkv2.fragment; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.ArrayList; import java.util.List; import br.com.easyworkv2.R; import br.com.easyworkv2.controller.Sessao; import br.com.easyworkv2.controller.ControlerDadosAparelho; import br.com.easyworkv2.dao.SQLHelper; import br.com.easyworkv2.modelo.Bairros; import br.com.easyworkv2.modelo.Endereco; public class PerfilFragment extends Fragment implements View.OnClickListener, CompoundButton.OnCheckedChangeListener { private TextView txtDadosCadastrais, txtDadosEndereco; private EditText edtNome, edtCPF, edtLogin, edtSenha, edtEstado, edtBairro, edtCidade; private CheckBox cbUsaLocalizacao; private FloatingActionButton fab; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_cadastro, container, false); inicializaComponente(root); ObterPerfil(); for (int i = 0; i < ObterPerfil().size(); i++) { String nome = ObterPerfil().get(i).usuarios.getUsuario_nome(); String cpf = ObterPerfil().get(i).usuarios.getUsuario_cpf(); String login = ObterPerfil().get(i).usuarios.getUsuario_login(); String senha = ObterPerfil().get(i).usuarios.getUsuario_senha(); String estado = ObterPerfil().get(i).estados.getDescricao(); String bairro = ObterPerfil().get(i).getBairro(); String cidade = ObterPerfil().get(i).getCidade(); edtNome.setText(nome); edtNome.setEnabled(false); edtCPF.setText(cpf); edtCPF.setEnabled(false); edtLogin.setText(login); edtSenha.setText(senha); edtEstado.setText(estado); edtBairro.setText(bairro); edtCidade.setText(cidade); } cbUsaLocalizacao.setText("Atualizar Localização ?"); fab.setOnClickListener(this); cbUsaLocalizacao.setOnCheckedChangeListener(this); return root; } private void inicializaComponente(View view) { txtDadosCadastrais = view.findViewById(R.id.txtDadosCadastrais); txtDadosEndereco = view.findViewById(R.id.txtDadosEnderecos); edtNome = view.findViewById(R.id.edtCadNome); edtCPF = view.findViewById(R.id.edtCadCPF); edtLogin = view.findViewById(R.id.edtCadLogin); edtSenha = view.findViewById(R.id.edtCadSenha); edtEstado = view.findViewById(R.id.edtCadEstado); edtBairro = view.findViewById(R.id.edtCadBairro); edtCidade = view.findViewById(R.id.edtCadCidade); fab = view.findViewById(R.id.fab); cbUsaLocalizacao = view.findViewById(R.id.cbUsaLocalizacao); } private List ObterPerfil() { txtDadosCadastrais.setText("Meus Dados"); txtDadosEndereco.setText("Meu Endereço"); SQLHelper sqlHelper = new SQLHelper(getActivity()); List enderecoList = sqlHelper.listaEnderecoByUsuario(Sessao.USUARIO_LOGADO.getIdUsuarios()); List list = new ArrayList<>(); try { if (enderecoList != null) { for (int i = 0; i < enderecoList.size(); i++) { list.add( i, new Endereco( enderecoList.get(i).usuarios.getUsuario_nome(), enderecoList.get(i).usuarios.getUsuario_cpf(), enderecoList.get(i).usuarios.getUsuario_login(), enderecoList.get(i).usuarios.getUsuario_senha(), enderecoList.get(i).estados.getDescricao(), enderecoList.get(i).bairros.getBairro_nome(), enderecoList.get(i).cidades.getCidade_nome())); } } } catch (IndexOutOfBoundsException e) { e.printStackTrace(); } return list; } private boolean atualizaRegistro() { SQLHelper sqlHelper = new SQLHelper(getActivity()); String novoLogin = edtLogin.getText().toString(); String novaSenha = edtSenha.getText().toString(); if (sqlHelper.atualizaPerfil(novoLogin, novaSenha)) { String estadoDigitado = edtEstado.getText().toString(); String bairroDigitado = edtBairro.getText().toString(); String cidadeDigitado = edtCidade.getText().toString(); int indexEstado = 0; int indexCidade = 0; int indexBairro = 0; if (estadoDigitado.equals("") || estadoDigitado.isEmpty()) { edtEstado.setError("Verifique o campo !"); return false; } else if (bairroDigitado.equals("") || bairroDigitado.isEmpty()) { edtBairro.setError("Verifique o campo !"); return false; } else if (cidadeDigitado.equals("") || cidadeDigitado.isEmpty()) { edtCidade.setError("Verifique o campo !"); return false; } List bairrosList1 = sqlHelper.listaLocalidade(estadoDigitado, cidadeDigitado, bairroDigitado); if (bairrosList1 != null){ for (Bairros bairros : bairrosList1){ indexEstado = bairros.estados.getIdEstados(); indexCidade = bairros.cidades.getIdCidade(); indexBairro = bairros.getIdBairro(); } } /*List estadosList = sqlHelper.listaEstadosByID(estadoDigitado); for (Estados estados : estadosList) { indexEstado = estados.getIdEstados(); } List cidadesList = sqlHelper.listaCidadesByID(cidadeDigitado, estadoDigitado); for (Cidades cidades : cidadesList) { indexCidade = cidades.getIdCidade(); } List bairrosList = sqlHelper.listaBairrosByID(bairroDigitado, cidadeDigitado); for (Bairros bairros : bairrosList) { indexBairro = bairros.getIdBairro(); }*/ if (sqlHelper.atualizaEndereco(indexBairro, indexCidade, indexEstado, Sessao.USUARIO_LOGADO.getIdUsuarios())) { return true; } } return false; } @Override public void onClick(View v) { if (v.getId() == R.id.fab) { if (atualizaRegistro()) { AlertDialog alertDialog; AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Dados Atualizados ! !"); builder.setMessage("Seus dados foram atualizados com sucesso !"); builder.setPositiveButton("Voltar", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ObterPerfil(); } }); alertDialog = builder.create(); alertDialog.show(); } else { Toast.makeText(getActivity(), "Ocorreu um erro ao atualizar os registros", Toast.LENGTH_LONG).show(); } } } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (cbUsaLocalizacao.isChecked()) { ControlerDadosAparelho dadosControler = new ControlerDadosAparelho(getView()); dadosControler.retornaDadosLocalizacao(getActivity()); } } }