package com.example.preguntasyrespuestasfoto;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity
{

	// preguntas y puntuación
	private ListaCuestiones examen;
	private int preguntaMostrada;
	private int puntuacion;
	
	// elementos del interfaz
	private TextView pregunta, resp1, resp2, resp3, resp4, puntos;
	private Button bot1, bot2, bot3, bot4;
	private ImageView imagenPregunta;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		// identificamos elementos del interfaz
		pregunta = (TextView)findViewById(R.id.pregunta);
		resp1 = (TextView)findViewById(R.id.resp1);
		resp2 = (TextView)findViewById(R.id.resp2);
		resp3 = (TextView)findViewById(R.id.resp3);
		resp4 = (TextView)findViewById(R.id.resp4);
		puntos = (TextView)findViewById(R.id.puntos);
		bot1 = (Button)findViewById(R.id.ok1);
		bot2 = (Button)findViewById(R.id.ok2);
		bot3 = (Button)findViewById(R.id.ok3);
		bot4 = (Button)findViewById(R.id.ok4);
		imagenPregunta = (ImageView)findViewById(R.id.imageView1);
		
		// cargamos las preguntas
		examen = new ListaCuestiones();
		
		// comenzamos con puntuación = 0 (no lo mostramos)
		puntuacion = 0;
		this.borraPuntuacion();
		
		// mostramos la primera pregunta
		preguntaMostrada = 0;
		this.muestraPregunta(preguntaMostrada);
				
		// damos accion a los botones
		bot1.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v)
			{
				MainActivity.this.compruebaResultado(preguntaMostrada, 1);
			}
		});
		
		bot2.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v)
			{
				MainActivity.this.compruebaResultado(preguntaMostrada, 2);
			}
		});
		
		bot3.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v)
			{
				MainActivity.this.compruebaResultado(preguntaMostrada, 3);
			}
		});
		
		bot4.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v)
			{
				MainActivity.this.compruebaResultado(preguntaMostrada, 4);
			}
		});
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	
	public void muestraPregunta(int numero)
	{
		
		Cuestion cuest = examen.lista.get(numero);
		
		int numeroAMostrar =numero+1;
		String texto = new String();		
		texto = "PREGUNTA " + numeroAMostrar + ": " + cuest.enunciado;
		pregunta.setText(texto);
		
		texto = "A) " + cuest.resp1;
		resp1.setText(texto);
		
		texto = "B) " + cuest.resp2;
		resp2.setText(texto);
		
		texto = "C) " + cuest.resp3;
		resp3.setText(texto);
		
		texto = "D) " + cuest.resp4;
		resp4.setText(texto);
		
		// imagen a mostrar
		int id = getResources().getIdentifier("com.example.preguntasyrespuestasfoto:drawable/" + cuest.imagen , null, null);
		imagenPregunta.setImageResource(id);
	}
	
	public void compruebaResultado(int pregunta, int respuesta)
	{
		Toast mensaje;
		Cuestion cuest = examen.lista.get(pregunta);
		if (respuesta==cuest.solucion)
		{
			mensaje = Toast.makeText(this, "¡CORRECTO! (+10)", Toast.LENGTH_SHORT);
			puntuacion += 10;
			this.actualizaPuntuacion(puntuacion);
			this.muestraNuevaPregunta();
		}
		else
		{
			mensaje = Toast.makeText(this, "¡ERROR! (-5)", Toast.LENGTH_SHORT);
			puntuacion -= 5;
			this.actualizaPuntuacion(puntuacion);
		}

		mensaje.show();

	}
	
	public void muestraNuevaPregunta()
	{
		
		// buscamos la nueva pregunta
		int maximo = examen.lista.size();
		preguntaMostrada ++;
		if (preguntaMostrada==maximo)
			{
				this.testFinalizado();
			}
		
		// mostramos la nueva pregunta
		this.muestraPregunta(preguntaMostrada);
		
	}
	
	public void testFinalizado()
	{
		
		// aviso con la puntuación obtenida
		AlertDialog aviso = new AlertDialog.Builder(this).create();

		// titulo
		aviso.setTitle("TEST FINALIZADO");
		
		// mensaje
		String texto = new String();
		texto = "Has obtenido " + puntuacion + " puntos";
		aviso.setMessage(texto);

		// boton OK
		aviso.setButton(AlertDialog.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int which)
			{
			}
		});

		// mostramos el aviso
		aviso.show();
		
		// volvemos a empezar
		preguntaMostrada = 0;
		puntuacion = 0;
		this.borraPuntuacion();
	}
	
	public void actualizaPuntuacion(int puntuacion)
	{
		String puntosTexto = new String();
		puntosTexto = "TIENES " + puntuacion + " PUNTOS";
		puntos.setText(puntosTexto);
		
	}
	
	public void borraPuntuacion()
	{
		puntos.setText("");
		
	}
}

