Advertisement
Guest User

FilaPareamento

a guest
May 8th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.39 KB | None | 0 0
  1. package com.example.dicerev2.activity;
  2.  
  3. import android.content.Intent;
  4. import android.support.annotation.NonNull;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.Chronometer;
  11. import android.widget.Toast;
  12.  
  13. import com.example.dicerev2.R;
  14. import com.example.dicerev2.config.ConfiguracaoFirebase;
  15. import com.example.dicerev2.helper.UsuarioFirebase;
  16. import com.example.dicerev2.model.ListaUsuariosParear;
  17. import com.example.dicerev2.model.Parear;
  18. import com.google.firebase.database.DataSnapshot;
  19. import com.google.firebase.database.DatabaseError;
  20. import com.google.firebase.database.DatabaseReference;
  21. import com.google.firebase.database.Query;
  22. import com.google.firebase.database.ValueEventListener;
  23.  
  24. public class FilaPareamentoActivity extends AppCompatActivity {
  25.     Chronometer cronometro;
  26.     Button btCancelar;
  27.     private String idUsuario, nickUsuario, idOutroUsuario, nickOutroUsuario;
  28.     private String idLista;
  29.     private String pareamentoEscolhidoFinal;
  30.     private int opcao;
  31.     String idPareamentoMeu, idPareamentoOutro, idPareamentoEscolhido;
  32.     String recuperaIdPareamentoOutraClasse;
  33.     DatabaseReference firebase, filaFirebaseMeAjuda, filaFirebaseTeAjudo, filaFirebaseAmbos, filaFirebaseGeral;
  34.  
  35.  
  36.     @Override
  37.     protected void onCreate(Bundle savedInstanceState) {
  38.         super.onCreate(savedInstanceState);
  39.         setContentView(R.layout.activity_fila_pareamento);
  40.         cronometro = findViewById(R.id.cronometro);
  41.         btCancelar = findViewById(R.id.buttonCancelarPareamento);
  42.         cronometro.start();
  43.  
  44.         idUsuario = UsuarioFirebase.getIdentificadorUsuario();
  45.         nickUsuario = UsuarioFirebase.getDadosUsuarioLogado().getApelido();
  46.  
  47.         //recuperar dados
  48.         Bundle bundle = getIntent().getExtras();
  49.         if(bundle != null) {
  50.             opcao = (int) bundle.getSerializable("opcao");
  51.             idLista = (String) bundle.getSerializable("idItemPostagem");
  52.             recuperaIdPareamentoOutraClasse = (String) bundle.getSerializable("id-pareamento");
  53.             String opcaoTexto = String.valueOf(opcao);
  54.         }
  55.  
  56.         idPareamentoMeu = recuperaIdPareamentoOutraClasse;
  57.  
  58.         firebase = ConfiguracaoFirebase.getFirebaseDatabase();
  59.         filaFirebaseMeAjuda = firebase.child("fila-me-ajuda");
  60.         filaFirebaseTeAjudo = firebase.child("fila-te-ajudo");
  61.         filaFirebaseAmbos = firebase.child("fila-ambos");
  62.         filaFirebaseGeral = firebase.child("fila-geral-ordem");
  63.  
  64.  
  65.             //Executa enquanto contador for = 0
  66.             if (opcao == 1){ //Quero ser ajudado
  67.                 meAjudaPesquisaTeAjudo();
  68.  
  69.             } else if (opcao == 2){ //Quero ajudar alguem da fila me ajuda
  70.                 teAjudoPesquisaMeAjuda();
  71.  
  72.             } else {
  73.                 pesquisaListaAmbos();
  74.             }
  75.  
  76.             btCancelar.setOnClickListener(new View.OnClickListener() {
  77.                 @Override
  78.                 public void onClick(View v) {
  79.                     cronometro.stop();
  80.                     deletarIdDaLista();
  81.                     Toast.makeText(getApplicationContext(),
  82.                             "Você saiu da fila", Toast.LENGTH_SHORT).show();
  83.                     finish();
  84.                 }
  85.             });
  86.  
  87.             bundle.clear();
  88.     }
  89.  
  90.     public String comparaStrings(String escolha, String p1, String p2){
  91.  
  92.         int retorno = p1.compareTo(p2);
  93.         if (retorno == 0){
  94.             escolha = p1;
  95.  
  96.         } else if (retorno >= 1){ //primeira maior que a segunda
  97.             escolha = p1;
  98.  
  99.         } else if (retorno <= 1){ //-1 primeira menor que a segunda
  100.             escolha = p2;
  101.         }
  102.         return escolha;
  103.  
  104.  
  105.     }
  106.  
  107.  
  108.     public void meAjudaPesquisaTeAjudo(){
  109.         /*A pessoa que pede ajuda define o ID do PAREAMENTO*/
  110.  
  111.         final Query buscarUsuario = filaFirebaseTeAjudo
  112.                 .orderByKey()
  113.                 .limitToFirst(1);
  114.  
  115.         buscarUsuario.addValueEventListener(new ValueEventListener() {
  116.             @Override
  117.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  118.                 try {
  119.                     Log.i("retorno", dataSnapshot.getValue().toString());
  120.                     //Estrutura: IdFila, IdUsuario, então são 2 for.
  121.  
  122.                     for (DataSnapshot ds : dataSnapshot.getChildren()) {
  123.                         for(DataSnapshot dados : ds.getChildren()){
  124.                             ListaUsuariosParear lista = dados.getValue(ListaUsuariosParear.class);
  125.                             idOutroUsuario = lista.getIdUsuario();
  126.                             nickOutroUsuario = lista.getNickUsuario();
  127.                             idPareamentoOutro = lista.getIdPareamento();
  128.                             //Log.i("Escolhido", "Id: " + idOutroUsuario);
  129.                             //Log.i("Escolhido", "Nick: " + nickOutroUsuario );
  130.                         }
  131.                     }
  132.  
  133.                     pareamentoEscolhidoFinal = comparaStrings(idPareamentoEscolhido, idPareamentoMeu, idPareamentoOutro);
  134.  
  135.                     if (!idOutroUsuario.equals(idUsuario)){
  136.                         Intent i = new Intent(FilaPareamentoActivity.this, ChatPrivadoActivity.class);
  137.                         i.putExtra("id-usuario-escolhido", idOutroUsuario);
  138.                         i.putExtra("nick-usuario-escolhido", nickOutroUsuario);
  139.                         i.putExtra("id-pareamento", pareamentoEscolhidoFinal);
  140.                         Log.i("pareamentoId", "ID: " + pareamentoEscolhidoFinal );
  141.                         cronometro.stop();
  142.                         deletarIdDaLista();
  143.                         startActivity(i);
  144.                         finish();
  145.                     }
  146.  
  147.                 } catch (Exception e){
  148.                     Log.i("erro - fila vazia", e.getMessage());
  149.                     idOutroUsuario = null;
  150.                     Log.i("Escolhido Erro", "Id: " + idOutroUsuario);
  151.                     nickOutroUsuario = null;
  152.                     Log.i("Escolhido Erro", "Nick: " + nickOutroUsuario );
  153.                 }
  154.             }
  155.  
  156.             @Override
  157.             public void onCancelled(@NonNull DatabaseError databaseError) {
  158.  
  159.             }
  160.         });
  161.  
  162.     }
  163.  
  164.     public void teAjudoPesquisaMeAjuda(){
  165.  
  166.         final Query buscarUsuario = filaFirebaseMeAjuda
  167.                 .orderByKey()
  168.                 .limitToFirst(1);
  169.  
  170.         buscarUsuario.addValueEventListener(new ValueEventListener() {
  171.             @Override
  172.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  173.                 try {
  174.                     idPareamentoMeu = recuperaIdPareamentoOutraClasse;
  175.                     Log.i("retorno", dataSnapshot.getValue().toString());
  176.                     //Estrutura: IdFila, IdUsuario, então são 2 for.
  177.  
  178.                     for (DataSnapshot ds : dataSnapshot.getChildren()) {
  179.                         for(DataSnapshot dados : ds.getChildren()){
  180.                             ListaUsuariosParear lista = dados.getValue(ListaUsuariosParear.class);
  181.                             idOutroUsuario = lista.getIdUsuario();
  182.                             nickOutroUsuario = lista.getNickUsuario();
  183.                             idPareamentoOutro = lista.getIdPareamento();
  184.                             Log.i("Escolhido", "Id: " + idOutroUsuario);
  185.                             Log.i("Escolhido", "Nick: " + nickOutroUsuario );
  186.                         }
  187.                     }
  188.  
  189.                     String pareamentoEscolhidoFinal;
  190.                     pareamentoEscolhidoFinal = comparaStrings(idPareamentoEscolhido, idPareamentoMeu, idPareamentoOutro);
  191.                     if (!idOutroUsuario.equals(idUsuario)){
  192.                         Intent i = new Intent(FilaPareamentoActivity.this, ChatPrivadoActivity.class);
  193.                         i.putExtra("id-usuario-escolhido", idOutroUsuario);
  194.                         i.putExtra("nick-usuario-escolhido", nickOutroUsuario);
  195.                         //id pareamento de me ajuda
  196.                         i.putExtra("id-pareamento", pareamentoEscolhidoFinal);
  197.                         Log.i("pareamentoId", "ID: " + pareamentoEscolhidoFinal );
  198.                         cronometro.stop();
  199.                         deletarIdDaLista();
  200.                         startActivity(i);
  201.                         finish();
  202.                     }
  203.  
  204.                 } catch (Exception e){
  205.                     Log.i("erro - fila vazia", e.getMessage());
  206.                     idOutroUsuario = null;
  207.                     Log.i("Escolhido Erro", "Id: " + idOutroUsuario);
  208.                     nickOutroUsuario = null;
  209.                     Log.i("Escolhido Erro", "Nick: " + nickOutroUsuario );
  210.                 }
  211.             }
  212.  
  213.             @Override
  214.             public void onCancelled(@NonNull DatabaseError databaseError) {
  215.  
  216.             }
  217.         });
  218.     }
  219.  
  220.     public void pesquisaListaAmbos(){
  221.         final Query buscarUsuario = filaFirebaseAmbos
  222.                 .orderByKey()
  223.                 .limitToFirst(1);
  224.         buscarUsuario.addValueEventListener(new ValueEventListener() {
  225.             @Override
  226.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  227.                 try {
  228.                     Log.i("retorno", dataSnapshot.getValue().toString());
  229.                     //Estrutura: IdFila, IdUsuario, então são 2 for.
  230.  
  231.                     for (DataSnapshot ds : dataSnapshot.getChildren()) {
  232.                         for(DataSnapshot dados : ds.getChildren()){
  233.                             ListaUsuariosParear lista = dados.getValue(ListaUsuariosParear.class);
  234.                             idOutroUsuario = lista.getIdUsuario();
  235.                             nickOutroUsuario = lista.getNickUsuario();
  236.                             idPareamentoMeu = lista.getIdPareamento();
  237.                             Log.i("Escolhido", "Id: " + idOutroUsuario);
  238.                             Log.i("Escolhido", "Nick: " + nickOutroUsuario );
  239.                         }
  240.                     }
  241.                     String pareamentoEscolhidoFinal;
  242.                     pareamentoEscolhidoFinal = comparaStrings(idPareamentoEscolhido, idPareamentoMeu, idPareamentoOutro);
  243.                     if (!idOutroUsuario.equals(idUsuario)){
  244.                         Intent i = new Intent(FilaPareamentoActivity.this, ChatPrivadoActivity.class);
  245.                         i.putExtra("id-usuario-escolhido", idOutroUsuario);
  246.                         i.putExtra("nick-usuario-escolhido", nickOutroUsuario);
  247.                         //id pareamento de me ajuda
  248.                         i.putExtra("id-pareamento", pareamentoEscolhidoFinal);
  249.                         cronometro.stop();
  250.                         deletarIdDaLista();
  251.                         startActivity(i);
  252.                         finish();
  253.                     }
  254.  
  255.                 } catch (Exception e){
  256.                     Log.i("erro - fila vazia", e.getMessage());
  257.                     idOutroUsuario = null;
  258.                     Log.i("Escolhido Erro", "Id: " + idOutroUsuario);
  259.                     nickOutroUsuario = null;
  260.                     Log.i("Escolhido Erro", "Nick: " + nickOutroUsuario );
  261.                 }
  262.             }
  263.  
  264.             @Override
  265.             public void onCancelled(@NonNull DatabaseError databaseError) {
  266.  
  267.             }
  268.         });
  269.  
  270.     }
  271.  
  272.  
  273.  
  274.     public void deletarIdDaLista(){
  275.         try {
  276.             if (opcao == 1) {
  277.                 filaFirebaseMeAjuda
  278.                         .child(idLista)
  279.                         .setValue(null);
  280.  
  281.             } else if (opcao == 2) {
  282.                 filaFirebaseTeAjudo
  283.                         .child(idLista)
  284.                         .setValue(null);
  285.  
  286.             } else {
  287.                 filaFirebaseAmbos
  288.                         .child(idLista)
  289.                         .setValue(null);
  290.             }
  291.  
  292.             /*filaFirebaseGeral
  293.                     .child(idLista)
  294.                     .setValue(null);*/
  295.  
  296.  
  297.         } catch (Exception e) {
  298.             Log.i("erro ao deletar", e.getMessage());
  299.  
  300.         }
  301.     }
  302.  
  303.     @Override
  304.     public void onBackPressed() {
  305.         super.onBackPressed();
  306.         Toast.makeText(getApplicationContext(),
  307.                 "Você saiu da fila", Toast.LENGTH_SHORT).show();
  308.     }
  309.  
  310.     @Override
  311.     protected void onDestroy() {
  312.         super.onDestroy();
  313.         deletarIdDaLista();
  314.  
  315.     }
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement