package com.ramos.munoz.tesis;

import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Rect;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.TextView;

public class VehiculoDetalle extends Activity {
    private String patente;
    private String marca;
    private String modelo;
    private String carroceria;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.vehiculo_detalle);
	inicializarComponentes();
    }

    private void inicializarComponentes() {
	Bundle datos = getIntent().getExtras();
	patente = datos.getString("patente");
	Boolean buscar = datos.getBoolean("buscar", false);
	if (buscar) {
	    BuscarVehiculoPorPatenteTask buscarTask = new BuscarVehiculoPorPatenteTask();
	    buscarTask.execute(patente);

	} else {
	    marca = (!datos.getString("marca").equals("null")) ? datos.getString("marca") : getResources().getString(R.string.sin_dato);
	    modelo = (!datos.getString("modelo").equals("null")) ? datos.getString("modelo") : getResources().getString(R.string.sin_dato);
	    carroceria = datos.getString("carroceria");
	    iniciarVistas();
	}

    }

    private void iniciarVistas() {
	TextView txtPatente = (TextView) findViewById(R.id.txtPatente);
	TextView txtMarca = (TextView) findViewById(R.id.txtMarca);
	TextView txtModelo = (TextView) findViewById(R.id.txtModelo);
	TextView txtCarroceria = (TextView) findViewById(R.id.txtCarroceria);

	txtPatente.setText("Patente: " + patente);
	txtMarca.setText("Marca: " + marca);
	txtModelo.setText("Modelo: " + modelo);
	txtCarroceria.setText("Carroceria: " + carroceria);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
	return true;
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
	Rect dimensiones = new Rect();
	getWindow().getDecorView().getHitRect(dimensiones);
	if (!dimensiones.contains((int) ev.getX(), (int) ev.getY())) {
	    this.finish();
	}
	return super.dispatchTouchEvent(ev);
    }

    class BuscarVehiculoPorPatenteTask extends AsyncTask<String, Integer, Vehiculo> {

	private ProgressDialog barraEstado;

	@Override
	protected Vehiculo doInBackground(String... args) {
	    String patente = args[0];
	    Vehiculo v = Vehiculo.buscarPorPatente(patente);
	    return v;
	}

	protected void onPreExecute() {
	    barraEstado = new ProgressDialog(VehiculoDetalle.this);
	    barraEstado.setProgressStyle(ProgressDialog.STYLE_SPINNER);
	    barraEstado.setMessage(getString(R.string.cargandoDetalle));
	    barraEstado.show();
	    barraEstado.setCanceledOnTouchOutside(false);
	}

	@Override
	protected void onPostExecute(Vehiculo v) {
	    marca = (!v.getMarca().equals("null")) ? v.getMarca() : getResources().getString(R.string.sin_dato);
	    modelo = (!v.getModelo().equals("null")) ? v.getModelo() : getResources().getString(R.string.sin_dato);
	    carroceria = v.getCarroceriaNombre();
	    iniciarVistas();
	    barraEstado.dismiss();
	}

    }
}
