package com.odc.beachodc.webservices;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import com.mobandme.ada.Entity;
import com.odc.beachodc.Home;
import com.odc.beachodc.activities.Playas;
import com.odc.beachodc.R;
import com.odc.beachodc.activities.ResultadoBusquedaPlaya;
import com.odc.beachodc.db.BBDD;
import com.odc.beachodc.db.models.Comentario;
import com.odc.beachodc.db.models.Imagen;
import com.odc.beachodc.db.models.MensajeBotella;
import com.odc.beachodc.db.models.Playa;
import com.odc.beachodc.utilities.ValidacionPlaya;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import de.keyboardsurfer.android.widget.crouton.Crouton;
import de.keyboardsurfer.android.widget.crouton.Style;
/**
* Created by Paco on 15/07/2014.
*/
public class Response {
/*public static void responseGetPlaya(Context ctx, JSONArray response){
Playa playa = null;
boolean BBDDborrada = false;
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
if (!BBDDborrada){
BBDD.getApplicationDataContext(ctx).playasDao.removeAll();
BBDD.getApplicationDataContext(ctx).playasDao.save();
BBDDborrada = true;
}
playa.setStatus(Entity.STATUS_NEW);
BBDD.getApplicationDataContext(ctx).playasDao.add(playa);
BBDD.getApplicationDataContext(ctx).playasDao.save();
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
playa = null;
}
}
}*/
public static void responseNuevaPlaya(Activity activity, JSONObject response){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("error"))) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
return;
} else if ((response.optString("res") != null) && (response.optString("res").equals("existe"))) {
Crouton.makeText(activity, R.string.existe_playa, Style.ALERT).show();
return;
} else {
/*Playa playa = JSONToModel.toPlaya(response);
playa.setStatus(Entity.STATUS_NEW);
BBDD.getApplicationDataContext(activity).playasDao.add(playa);
BBDD.getApplicationDataContext(activity).playasDao.save();*/
Intent intent = new Intent(activity, Home.class);
intent.putExtra("creaplaya", true);
// Para eliminar el historial de activities visitadas ya que volvemos al HOME y asi el boton ATRAS no tenga ningun comportamiento, se resetee.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
activity.startActivity(intent);
activity.finish();
}
} catch (Exception e) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSENUEVAPLAYA: "+e.getMessage());
return;
}
}
public static void responseEditarPlaya(Activity activity, JSONObject response){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("ok"))) {
Intent intent = new Intent(activity, Home.class);
intent.putExtra("editaplaya", true);
// Para eliminar el historial de activities visitadas ya que volvemos al HOME y asi el boton ATRAS no tenga ningun comportamiento, se resetee.
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
activity.startActivity(intent);
activity.finish();
} else {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
}
} catch (Exception e) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSEEDITARPLAYA: "+e.getMessage());
return;
}
}
public static void responsePeticionBorradoPlaya (Activity activity, JSONObject response, ProgressDialog pd){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("ok"))) {
Intent intent = new Intent(activity, Playas.class);
intent.putExtra("peticionborrado", true);
pd.dismiss();
activity.startActivity(intent);
activity.finish();
} else {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
}
} catch (Exception e) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSEEDITARPLAYA: "+e.getMessage());
pd.dismiss();
return;
}
}
public static void responseValorarPlaya(Activity activity, JSONObject response, Comentario comentario, ProgressDialog pd){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("error"))) {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
return;
} else if ((response.optString("res") != null) && (response.optString("res").equals("existe"))) {
pd.dismiss();
Crouton.makeText(activity, R.string.valoracionrepetida, Style.ALERT).show();
return;
} else {
Playa playa = JSONToModel.toPlaya(response);
if (playa != null) {
Intent intent = new Intent(activity, Playas.class);
ValidacionPlaya.playa = playa;
if (ValidacionPlaya.comentariosPlaya == null)
ValidacionPlaya.comentariosPlaya = new ArrayList<Comentario>();
ValidacionPlaya.comentariosPlaya.add(comentario);
intent.putExtra("nuevavaloracion", true);
pd.dismiss();
activity.startActivity(intent);
activity.finish();
} else {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
}
}
} catch (Exception e) {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSENUEVAPLAYA: "+e.getMessage());
return;
}
}
public static void responseMensajeBotellaPlaya(Activity activity, JSONObject response, MensajeBotella mb, ProgressDialog pd){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("ok"))) {
Intent intent = new Intent(activity, Playas.class);
if (ValidacionPlaya.mensajesBotella == null)
ValidacionPlaya.mensajesBotella = new ArrayList<MensajeBotella>();
ValidacionPlaya.mensajesBotella.add(mb);
intent.putExtra("nuevomensajebotella", true);
pd.dismiss();
activity.startActivity(intent);
activity.finish();
} else {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
}
} catch (Exception e) {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSENUEVAPLAYA: "+e.getMessage());
return;
}
}
public static void responseGetPlayasCercanas(Context ctx, JSONArray response, ProgressDialog pd){
Playa playa = null;
ValidacionPlaya.playas = new ArrayList<Playa>();
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
ValidacionPlaya.playas.add(playa);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
}
}
ValidacionPlaya.cargadaPlayas=true;
if ((ValidacionPlaya.cargadosUltimosCheckins) && (pd != null) && (pd.isShowing())) {
try {
pd.dismiss();
} catch (Exception e){}
}
}
public static void responseGetUltimosCheckins(Context ctx, JSONArray response, ProgressDialog pd){
Playa playa = null;
ValidacionPlaya.playasCheckins = new ArrayList<Playa>();
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
ValidacionPlaya.playasCheckins.add(playa);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
}
}
ValidacionPlaya.cargadosUltimosCheckins=true;
if ((ValidacionPlaya.cargadaPlayas) && (pd != null) && (pd.isShowing())) {
try {
pd.dismiss();
} catch (Exception e){}
}
}
public static void responseCheckinPlaya(Activity activity, JSONObject response, ProgressDialog pd){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("ok"))){
pd.dismiss();
Crouton.makeText(activity, R.string.checkinexito, Style.CONFIRM).show();
} else if ((response.optString("res") != null) && (response.optString("res").equals("existe"))) {
Crouton.makeText(activity, R.string.checkinrepetido, Style.INFO).show();
pd.dismiss();
} else {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
pd.dismiss();
}
} catch (Exception e) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSENUEVAPLAYA: "+e.getMessage());
pd.dismiss();
return;
}
}
public static void responseGetPlayasCercanasTo(Context ctx, JSONArray response, ProgressDialog pd, String direccion, Double latitud, Double longitud){
Playa playa = null;
ValidacionPlaya.playas = new ArrayList<Playa>();
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
ValidacionPlaya.playas.add(playa);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
}
}
Intent intentS = new Intent(ctx, ResultadoBusquedaPlaya.class);
intentS.putExtra("search", direccion);
intentS.putExtra("isSearchNear", true);
intentS.putExtra("latitud", latitud);
intentS.putExtra("longitud", longitud);
pd.dismiss();
ctx.startActivity(intentS);
}
public static void responseGetPlayasByName(Context ctx, JSONArray response, ProgressDialog pd, String name){
Playa playa = null;
ValidacionPlaya.playas = new ArrayList<Playa>();
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
ValidacionPlaya.playas.add(playa);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
}
}
Intent intentS = new Intent(ctx, ResultadoBusquedaPlaya.class);
intentS.putExtra("search", name);
pd.dismiss();
ctx.startActivity(intentS);
}
public static void responseGetPlayasByExtra(Context ctx, JSONArray response, ProgressDialog pd){
Playa playa = null;
ValidacionPlaya.playas = new ArrayList<Playa>();
for (int i=0; i<response.length(); i++){
try {
playa = JSONToModel.toPlaya(response.getJSONObject(i));
ValidacionPlaya.playas.add(playa);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETPLAYA: "+e.getMessage());
}
}
Intent intentS = new Intent(ctx, ResultadoBusquedaPlaya.class);
intentS.putExtra("search", ctx.getString(R.string.title_extras_beach));
pd.dismiss();
ctx.startActivity(intentS);
}
public static void responseGetMensajesBotella(Context ctx, JSONArray response, ProgressDialog pd, Intent intent){
MensajeBotella mensaje;
for (int i=0; i<response.length(); i++){
try {
mensaje = JSONToModel.toMensajeEnBotella(response.getJSONObject(i));
ValidacionPlaya.mensajesBotella.add(mensaje);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETMENSAJEBOTELLA: "+e.getMessage());
}
}
ValidacionPlaya.cargadosMensajesPlaya=true;
if (ValidacionPlaya.comprobarCargaPlaya(ctx, intent)){
pd.dismiss();
}
}
public static void responseGetImagenesPlaya(Context ctx, JSONArray response, ProgressDialog pd, Intent intent){
Imagen imagen;
for (int i=0; i<response.length(); i++){
try {
imagen = JSONToModel.toImagen(response.getJSONObject(i));
ValidacionPlaya.imagenes.add(imagen);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETIMAGENES: "+e.getMessage());
}
}
if (intent == null){
pd.dismiss();
} else {
ValidacionPlaya.cargadaImagenes = true;
if (ValidacionPlaya.comprobarCargaPlaya(ctx, intent)) {
pd.dismiss();
}
}
}
public static void responseGetComentariosPlaya(Context ctx, JSONArray response, ProgressDialog pd, Intent intent){
Comentario comentario;
for (int i=0; i<response.length(); i++){
try {
comentario = JSONToModel.toComentario(response.getJSONObject(i));
ValidacionPlaya.comentariosPlaya.add(comentario);
} catch (Exception e){
System.out.println("FALLO RESPONSEGETCOMENTARIOSPLAYA: "+e.getMessage());
}
}
if (intent == null){
pd.dismiss();
} else {
ValidacionPlaya.cargadosComentarios=true;
if (ValidacionPlaya.comprobarCargaPlaya(ctx, intent)) {
pd.dismiss();
}
}
}
public static void responseGetTemp(Context ctx, JSONObject response, ProgressDialog pd, Intent intent){
Double temp;
try {
temp = Double.parseDouble(response.getJSONArray("list").getJSONObject(0).getJSONObject("main").getString("temp"));
// Convertir de Kelvin a Celsius
temp = temp - 273.15;
ValidacionPlaya.temperatura = temp;
} catch (JSONException e) {
e.printStackTrace();
}
try{
ValidacionPlaya.iconWeather = response.getJSONArray("list").getJSONObject(0).getJSONArray("weather").getJSONObject(0).getString("icon");
} catch (Exception e){
ValidacionPlaya.iconWeather = null;
}
ValidacionPlaya.cargadaTemperatura=true;
if (ValidacionPlaya.comprobarCargaPlaya(ctx, intent)){
pd.dismiss();
}
}
public static void responseNuevaImagenPlaya(Activity activity, JSONObject response, ProgressDialog pd, Imagen imagen){
try {
if ((response.optString("res") != null) && (response.optString("res").equals("ok"))){
if (ValidacionPlaya.imagenes == null)
ValidacionPlaya.imagenes = new ArrayList<Imagen>();
ValidacionPlaya.imagenes.add(imagen);
pd.dismiss();
Crouton.makeText(activity, R.string.upload_ok, Style.CONFIRM).show();
} else {
pd.dismiss();
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
}
} catch (Exception e) {
Crouton.makeText(activity, R.string.error_bbdd, Style.ALERT).show();
System.out.println("FALLO RESPONSENUEVAPLAYA: "+e.getMessage());
pd.dismiss();
return;
}
}
}