/*
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Copyright 2015 Jose A. Gonzalez Cervera
Copyright 2015 Juan A. Fernández Sánchez
*/
package butterflydevs.brainstudio.extras.Dialogos;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import java.util.List;
import butterflydevs.brainstudio.Juego3;
import butterflydevs.brainstudio.Juego4;
import butterflydevs.brainstudio.Juego5;
import butterflydevs.brainstudio.Juego5niveln;
import butterflydevs.brainstudio.R;
/**
* Clase de configuración del Dialogo para la salida de las partidas. Con este conseguimos ofrecer
* al usuario un resumen de su partida y un botón salir que lo devuelve a la pantalla de su juego.
*
* Esta clase ofrece los suficientes metodos para configurar el DialogFragment como se quiera, uno
* de los mas importantes es el que establece el nivel al que se devuelve.
*/
public class DialogoSalidaJuegos extends DialogFragment {
public static enum ComportamientoBoton{
SALIR, CERRAR
}
public Juego5niveln padreJuego5;
public Button botonSalir;
public ComportamientoBoton comp;
public TextView textoInfo;
public TextView textoA;
public TextView textoB;
public TextView textoPorcentajeSuperado;
public String textoInformacion;
public String textoConvertidoA;
public String textoConvertidoB;
public int porcentajeSuperado;
public int puntosObtenidos;
public String textoBoton;
public onSubmitListener mListener;
public String text = "";
public int juego;
public int nivel;
interface onSubmitListener {
void setOnSubmitListener(String arg);
}
public void setComportamientoBoton(ComportamientoBoton comportamiento){
if(comportamiento==ComportamientoBoton.SALIR)
textoBoton="Salir";
if(comportamiento==ComportamientoBoton.CERRAR)
textoBoton="Entendido";
comp=comportamiento;
}
public void setPadre(Juego5niveln padrePasado){
padreJuego5=padrePasado;
}
public void setDatos(String titulo, List<Integer> secuenciaJuego, List<Integer> secuenciaJugador, int porcentajeSuperado, int puntos){
textoInformacion=titulo;
textoConvertidoA="Original: ";
textoConvertidoB="Introducida: ";
for(int a: secuenciaJuego)
textoConvertidoA+=Integer.toString(a)+" ";
for(int b: secuenciaJugador)
textoConvertidoB+=Integer.toString(b)+" ";
this.porcentajeSuperado=porcentajeSuperado;
puntosObtenidos=puntos;
}
public void setDatos(String titulo, String textoA, String textoB, int porcentaje){
textoInformacion=titulo;
textoConvertidoA=textoA;
textoConvertidoB=textoB;
porcentajeSuperado=porcentaje;
}
public void setNivel(int nivelPasado){
nivel=nivelPasado;
}
/**
* Donde vamos a tener toda la programación del diálogo.
* @param savedInstanceState
* @return
*/
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = new Dialog(getActivity());
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
dialog.setContentView(R.layout.dialogo_juego_5);
dialog.getWindow().setBackgroundDrawable(
new ColorDrawable(Color.TRANSPARENT));
dialog.show();
//Asociamos los elementos de la vista
botonSalir=(Button)dialog.findViewById(R.id.botonEntendido);
textoInfo=(TextView)dialog.findViewById(R.id.textoInfo);
textoPorcentajeSuperado=(TextView)dialog.findViewById(R.id.textoPorcentaje);
textoA=(TextView)dialog.findViewById(R.id.textoA);
textoB=(TextView)dialog.findViewById(R.id.textoB);
textoA.setText(textoConvertidoA);
textoB.setText(textoConvertidoB);
textoPorcentajeSuperado.setText(Integer.toString(porcentajeSuperado)+"% superado "+puntosObtenidos+" puntos");
//Algún ajuste:
textoInfo.setText(textoInformacion);
botonSalir.setText(textoBoton);
//Programación del boton "Salir"
botonSalir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(comp==ComportamientoBoton.SALIR) {
if(nivel==4){
Intent intent = new Intent(getActivity(), Juego4.class);
//Iniciamos la nueva actividad
startActivity(intent);
}
if(nivel==3){
Intent intent = new Intent(getActivity(), Juego3.class);
//Iniciamos la nueva actividad
startActivity(intent);
}
if(nivel==5) {
Intent intent = new Intent(getActivity(), Juego5.class);
//Iniciamos la nueva actividad
startActivity(intent);
}
dismiss();
}else
/**
* Juego5niveln usa este diálogo para informar de cosas específicas durante el juego y por eso requiere
* este método que es sólo específico de el.
*/
if(comp==ComportamientoBoton.CERRAR){
padreJuego5.desbloquearJuego();
dismiss();
}
}
});
return dialog;
}
}