package com.anibal.prueba_pooproyect;


import android.app.Dialog;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * Actividad correspondiente al menu inicial de la app
 *
 */
public class SecondActivity extends AppCompatActivity {
    Dialog myDialog;
    private Button btnMultiPlayer;
    private Button btnSinglePlayer;
    private TextView openInfoPopUp;
    Dialog myDialog2;

    /**
     * Aca se inicia la actividad, algo asi como su constructor.
     * @param savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide(); // esconder la barra con el nombre de la APP!
        setContentView(R.layout.activity_second);
        setGame();
        myDialog = new Dialog(this);
        myDialog2 = new Dialog(this);

    }

    /**
     * muestra el popUp correspondiente a la i de la esquina superior derecha, con las instrucciones de juego
     * creando su listener para cerrarla.
     */
    private void showInfoPopUp(){
        TextView closePopUp;
        myDialog2.setContentView(R.layout.how_to_play_layout);
        closePopUp = myDialog2.findViewById(R.id.closePopUp);
        closePopUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myDialog2.dismiss();
            }
        });
        myDialog2.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        myDialog2.show();
    }

    /**
     * similar a showInfoPopUp solo que este sirve para indicar la cantidad de jugadores en
     * multiplayer, tambien se crean los listeners para cada caso y para cerrarlo.
     */
    private void showPopUp(){
        TextView closePopUp;
        LinearLayout dosJugadores;
        LinearLayout tresJugadores;
        LinearLayout cuatroJugadores;
        myDialog.setContentView(R.layout.custompopupmenu);
        closePopUp = (TextView) myDialog.findViewById(R.id.closePopUp);
        dosJugadores = (LinearLayout) myDialog.findViewById(R.id.dosJugadores);
        tresJugadores = (LinearLayout) myDialog.findViewById(R.id.tresJugadores);
        cuatroJugadores = (LinearLayout) myDialog.findViewById(R.id.cuatroJugadores);

        closePopUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myDialog.dismiss();
            }
        });
        dosJugadores.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent gameActivity = new Intent(SecondActivity.this, MainActivity.class);
                gameActivity.putExtra("NUMBER_OF_PLAYERS",2);
                gameActivity.putExtra("PLAYING_MODE",2);
                startActivity(gameActivity);
                finish();
                myDialog.dismiss();


            }
        });
        tresJugadores.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent gameActivity = new Intent(SecondActivity.this, MainActivity.class);
                gameActivity.putExtra("NUMBER_OF_PLAYERS",3);
                gameActivity.putExtra("PLAYING_MODE",2);
                startActivity(gameActivity);
                finish();
                myDialog.dismiss();


            }
        });
        cuatroJugadores.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent gameActivity = new Intent(SecondActivity.this, MainActivity.class);
                gameActivity.putExtra("NUMBER_OF_PLAYERS",4);
                gameActivity.putExtra("PLAYING_MODE",2);
                startActivity(gameActivity);
                finish();
                myDialog.dismiss();


            }
        });
        myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        myDialog.show();

    }

    /**
     * metodo que se utiliza para setearn listener de boton single palyer, multiplayer e info. desde aca se llaman los
     * correspondientes popUp;
     */
    private void setGame() {
        btnMultiPlayer = findViewById(R.id.btnMultiPlayer);
        btnSinglePlayer = findViewById(R.id.btnSinglePlayer);
        openInfoPopUp = findViewById(R.id.infopopup);

        openInfoPopUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        runOnUiThread(new Runnable() { //necesario segun la documentacion para funcionamiento
                            // si no esta falla brutalmente al hacer click
                            @Override
                            public void run() {
                                showInfoPopUp();
                            }
                        });
                    }
                }).start();

            }
        });

        btnSinglePlayer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent gameActivity = new Intent(SecondActivity.this, MainActivity.class);
                gameActivity.putExtra("NUMBER_OF_PLAYERS",2);
                gameActivity.putExtra("PLAYING_MODE",1);
                startActivity(gameActivity);
                finish();
            }
        });

        btnMultiPlayer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        runOnUiThread(new Runnable() { //necesario segun la documentacion para funcionamiento
                            // si no esta falla brutalmente al hacer click
                            @Override
                            public void run() {
                                showPopUp();
                            }
                        });
                    }
                }).start();

            }
        });
    }
}
