package com.geored.gui;
import java.io.InputStream;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.geored.rest.R;
import com.geored.rest.ServicioRestImagenes;
import com.geored.rest.ServicioRestUsuarios;
import com.geored.rest.data.Evento;
import com.geored.rest.exception.RestBlowUpException;
import com.geored.rest.exception.UnauthorizedException;
public class EventosActivity extends GenericActivity {
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
protected void loadVista() {
setContentView(R.layout.activity_eventos);
loadListView();
}
private void loadListView() {
Bundle extras = getIntent().getExtras();
String nombre = extras.getString("eventoNombre");
String descripcion = extras.getString("eventoDescripcion");
String comienzo = extras.getString("eventoComienzo");
String fin = extras.getString("eventoFin");
((TextView) findViewById(R.id.textViewNombre)).setText(nombre);
((TextView) findViewById(R.id.textViewDescripcion)).setText(descripcion);
/*((TextView) findViewById(R.id.textViewComienzo)).setText(comienzo);
((TextView) findViewById(R.id.textViewFin)).setText(fin);*/
if (Integer.valueOf(getIntent().getExtras().getString("eventoId")) != 0) {
progressBar.show();
EventoAsyncTask task = new EventoAsyncTask();
task.execute(new String[]{getIntent().getExtras().getString("eventoId")});
}
}
private void loadListView(Bitmap bitmap) {
showToast("Dibujando imagen");
ImageView imageView = (ImageView) findViewById(R.id.imageViewEvento);
imageView.setImageBitmap(bitmap);
}
private class EventoAsyncTask extends AsyncTask<String, Void, Evento> {
@Override
protected Evento doInBackground(String... params) {
try {
return ServicioRestUsuarios.getEvento(params[0]);
}
catch (RestBlowUpException e) {
Log.e("ERROR", e.getMessage(), e);
}
catch (UnauthorizedException e) {
Log.e("Warning", e.getMessage(), e);
}
return null;
}
@Override
protected void onPostExecute(Evento evento) {
java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("dd/MM/yyyy");
String fechaInicio = sdf.format(evento.getInicio());
String fechaFin = sdf.format(evento.getFin());
((TextView) findViewById(R.id.textViewComienzo)).setText(fechaInicio);
((TextView) findViewById(R.id.textViewFin)).setText(fechaFin);
ImagenAsyncTask task = new ImagenAsyncTask();
if (evento.getIdImagen() != null){
task.execute(new String[]{evento.getIdImagen().toString()});
}else{
progressBar.dismiss();
}
}
}
private class ImagenAsyncTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... params) {
Bitmap bitmap = null;
try {
InputStream imagen = ServicioRestImagenes.bajarImagen(Integer.valueOf(params[0]));
bitmap = BitmapFactory.decodeStream(imagen);
}
catch (RestBlowUpException e) {
Log.e("ERROR", e.getMessage(), e);
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
if (bitmap != null) {
loadListView(bitmap);
}
else {
showToast("Error, resultado invalido de ofertas :(");
}
progressBar.dismiss();
}
}
}