package edu.uoc.prezmm.a1list2cook;

import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.JsonHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.squareup.picasso.Picasso;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;

import cz.msebera.android.httpclient.Header;
import edu.uoc.prezmm.a1list2cook.objects_class.Ingredients;
import edu.uoc.prezmm.a1list2cook.objects_class.Recipes;
import edu.uoc.prezmm.a1list2cook.objects_class.Steps;
import edu.uoc.prezmm.a1list2cook.objects_class.Users;

public class RecipeAddActivity extends BaseActivity {

    private ArrayList<Ingredients> ingredientsList;
    private IngredientsAdapter ingredientsAdapter;
    private ListView ingredientsListView;

    private ArrayList<Steps> stepsList;
    private StepsAdapter stepsAdapter;
    private ListView stepsListView;

    private ImageView imageRecipe;
    private File imageRecipeFile;

    private String reciCode;
    private ArrayList<Recipes> recipeArrayList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Defineix el contingut del layout de la Activity dins el frame de la classe pare
        setLayoutToBaseFrame(R.layout.activity_recipe_add);

        //IMATGE
        //Inicialitza la imatge principal i li estableix l'event on clic
        imageRecipe = (ImageView) findViewById(R.id.imageRecipe);
        imageRecipe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                choosePhotoFromGallary();
            }
        });

        //INGREDIENTS
        //Inicialitza les variables dels ingredeients
        ingredientsList=new ArrayList<Ingredients>();
        ingredientsListView=(ListView)findViewById(R.id.ingredientsList);
        ingredientsAdapter = new IngredientsAdapter(this);

        //PASSOS
        //Inicialitza les variables dels passos
        stepsList=new ArrayList<Steps>();
        stepsListView=(ListView)findViewById(R.id.stepsList);
        stepsAdapter = new StepsAdapter(this);

        //Inicialitza a zero la variable
        reciCode = "0";

        //Comprova si existeix el Extra idRecipe
        Intent intent = getIntent();
        if(intent.hasExtra("idRecipe")) {
            //Recupera el valor del Extra
            reciCode = intent.getStringExtra("idRecipe");

            //Canvia el títol del ToolBar
            setToolBarTitle("Editar recepta");

            //Inicialitza l'array que conte la informació de la recepta
            recipeArrayList = new ArrayList<Recipes>();

            //Crida a la funció per recuperar la recepta
            getRecipe(reciCode);
        } else {
            //Canvia el títol del ToolBar
            setToolBarTitle("Nova recepta");

            //INGREDIENTS
            //Omple l'array d'ingredeients
            ingredientsList.add(new Ingredients("0", "",""));

            //Vincula els ingredients i atribueix accions
            ingredientsListView.setAdapter(ingredientsAdapter);
            setListViewHeightBasedOnChildren(ingredientsListView);

            //PASSOS
            //Omple l'array de passos
            stepsList.add(new Steps("0", ""));

            //Vincula els passos i atribueix accions
            stepsListView.setAdapter(stepsAdapter);
            setListViewHeightBasedOnChildren(stepsListView);
        }
    }

    //Especifica la alçada del ListView segons els elements de l'array
    private static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = (ListAdapter) listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        for (int i = 0; i <listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            // listItem.measure(0, 0);
            listItem.measure(
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                    View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight
                + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
    }

    //IMATGES
    //Carrega la galeria per insertar una imatge
    private void choosePhotoFromGallary() {
        boolean result = checkPermission(this);
        if (result) {
            Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(galleryIntent,1);
        }
    }

    //Gestiona la recepció de la nova imatge
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == this.RESULT_OK) {
            if (data == null) {
                return;
            } else {
                Uri selectedImage = data.getData();
                if (selectedImage != null) {
                    String[] filePathColumn = {MediaStore.Images.Media.DATA};
                    if (!filePathColumn.equals(null)) {
                        Cursor cursor = getContentResolver().query(selectedImage,
                                filePathColumn, null, null, null);
                        cursor.moveToFirst();
                        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                        String picturePath = cursor.getString(columnIndex);
                        cursor.close();
                        //Si tot és correcte genera un File per passarlo coma a paràmetre al servidor
                        if (!picturePath.equals(null)) {
                            imageRecipeFile = new File(picturePath);
                        }
                        //Genera i mostra la imatge al ImageView corresponent
                        InputStream imageStream = null;
                        try {
                            imageStream = getContentResolver().openInputStream(selectedImage);
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }
                        Bitmap newImage = BitmapFactory.decodeStream(imageStream);
                        imageRecipe.setImageBitmap(newImage);
                    }
                }
            }
        }

    }

    //RECIPE
    //Recupera la informació de la llista
    private void getRecipe(final String reciCode) {
        //Parametres per passar al WebService
        RequestParams params = new RequestParams();
        params.put("reciCode", reciCode);

        //Missatge mentre s'està executant el procés de validació
        final ProgressDialog progressDialog = new ProgressDialog(this);

        //Creació de la connexió amb el WebService
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("http://1list2cook.com/webservices/recipe_info.php", params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                progressDialog.setMessage("Recuperant recepta...");
                progressDialog.show();
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                progressDialog.dismiss();
                try {
                    JSONObject jsonArray = new JSONObject(response.toString());
                    if (jsonArray.get("success").toString().equalsIgnoreCase("1")) {
                        JSONArray userInfo = new JSONArray(jsonArray.get("message").toString());

                        //Guardar info per generar un nou objecte
                        for(int i = 0; i < userInfo.length(); i++) {
                            String reciCate = userInfo.getJSONObject(i).get("reciCategory").toString();
                            String reciTitl = userInfo.getJSONObject(i).get("reciTitle").toString();
                            String reciText = userInfo.getJSONObject(i).get("reciText").toString();
                            String reciRati = userInfo.getJSONObject(i).get("reciRations").toString();
                            String reciTime = userInfo.getJSONObject(i).get("reciTime").toString();
                            String reciImag = userInfo.getJSONObject(i).get("imagPath").toString();
                            String cateName = userInfo.getJSONObject(i).get("cateName").toString();

                            //Crea el nou objecte amb la informació de la recepta
                            Recipes reciInfo = new Recipes(reciCode, reciTitl, reciText, reciTime, reciRati, reciImag, reciCate, cateName);

                            //Introdueix la recepta a l'array
                            recipeToArray(reciInfo);

                            //Vincula els elements amb els seus View
                            EditText nameList = (EditText)findViewById(R.id.nameList);
                            EditText descriptionRecipe = (EditText)findViewById(R.id.descriptionRecipe);
                            EditText categoryRecipe = (EditText)findViewById(R.id.categoryRecipe);
                            EditText rationsRecipe = (EditText)findViewById(R.id.rationsRecipe);
                            EditText timeRecipe = (EditText)findViewById(R.id.timeRecipe);
                            ImageView imageRecipe = (ImageView)findViewById(R.id.imageRecipe);
                            nameList.setText(reciTitl);
                            descriptionRecipe.setText(reciText);
                            categoryRecipe.setText(cateName);
                            rationsRecipe.setText(reciRati);
                            timeRecipe.setText(reciTime);
                            if(reciImag.length() > 10) Picasso.with(RecipeAddActivity.this).load("http://1list2cook.com/uploads/recipes/"+reciImag).into(imageRecipe);
                        }
                        getIngredients(reciCode);

                    } else {
                        showMessage(jsonArray.get("message").toString());
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                progressDialog.dismiss();
                showMessage("No s'ha pogut gestionar l'operació, intenta-ho de nou. Disculpa les molèsties.");
            }
        });
    }

    //Afegeix una recepta a l'array de receptes
    private void recipeToArray(Recipes recipe) {
        recipeArrayList.add(recipe);
    }

    //INGREDIENTS
    //Afegeix un ingredient al ListView
    public void addIngredient(View view) {
        ingredientsAdapter.add(new Ingredients("0","",""));
        setListViewHeightBasedOnChildren(ingredientsListView);
    }
    //Eliminar un ingredient al ListView
    private void deleteIngredient(Ingredients item) {
        ingredientsAdapter.remove(item);
        setListViewHeightBasedOnChildren(ingredientsListView);
    }
    //Mostra la finestra per afegir un ingredient
    private void showIngredientDialog(final Ingredients oldItem, final int index){
        final Dialog dialog=new Dialog(RecipeAddActivity.this);
        //dialog.setTitle("Input Box");
        dialog.setContentView(R.layout.dialog_ingredient_add);
        TextView txtMessage=(TextView)dialog.findViewById(R.id.titleDialog);
        txtMessage.setText("Afegir ingredient");
        final TextView ingredientText=(TextView)dialog.findViewById(R.id.ingredientDialog);
        ingredientText.setText(oldItem.getName());
        final TextView quantityText=(TextView)dialog.findViewById(R.id.quantityDialog);
        quantityText.setText(oldItem.getQuantity());
        Button bt=(Button)dialog.findViewById(R.id.submitDialog);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ingredientsList.set(index,new Ingredients(String.valueOf(oldItem.getCode()),ingredientText.getText().toString(),quantityText.getText().toString()));
                ingredientsAdapter.notifyDataSetChanged();
                dialog.dismiss();
            }
        });
        dialog.show();
    }
    //Recupera la informació de la recepta
    private void getIngredients(String recipeCode) {
        //Parametres per passar al WebService
        RequestParams params = new RequestParams();
        params.put("reciCode", recipeCode);

        //Missatge mentre s'està executant el procés de validació
        final ProgressDialog progressDialog = new ProgressDialog(this);

        //Creació de la connexió amb el WebService
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("http://1list2cook.com/webservices/recipe_ingredients.php", params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                progressDialog.setMessage("Recuperant ingredients...");
                progressDialog.show();
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                progressDialog.dismiss();
                try {
                    JSONObject jsonArray = new JSONObject(response.toString());
                    if (jsonArray.get("success").toString().equalsIgnoreCase("1")) {
                        JSONArray userInfo = new JSONArray(jsonArray.get("message").toString());

                        //Guardar info per generar un nou objecte
                        for(int i = 0; i < userInfo.length(); i++) {
                            String ingrIden = userInfo.getJSONObject(i).get("ingrIden").toString();
                            String ingrName = userInfo.getJSONObject(i).get("ingrName").toString();
                            String inreQuantity = userInfo.getJSONObject(i).get("inreQuantity").toString();

                            //Crea el nou objecte amb la informació de la recepta
                            Ingredients ingrInfo = new Ingredients(ingrIden, ingrName,  inreQuantity);

                            //Introdueix els ingredients a l'array
                            ingredientToArray(ingrInfo);
                        }
                    } else {
                        //Introdueix un ingredient a l'array
                        ingredientToArray(new Ingredients("0", "",""));
                    }

                    //Vincula l'array amb el ListView
                    ingredientsListView.setAdapter(ingredientsAdapter);
                    setListViewHeightBasedOnChildren(ingredientsListView);
                    getSteps(reciCode);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                progressDialog.dismiss();
                showMessage("No s'ha pogut gestionar l'operació, intenta-ho de nou. Disculpa les molèsties.");
            }
        });
    }
    //Afegeix un ingredient a l'array de ingredients
    private void ingredientToArray(Ingredients ingredient) { ingredientsList.add(ingredient); }
    //Classe adaptador de ingredients
    class IngredientsAdapter extends ArrayAdapter<Ingredients> {
        AppCompatActivity appCompatActivity;

        IngredientsAdapter(AppCompatActivity context) {
            super(context, R.layout.view_ingredient_add, ingredientsList);
            appCompatActivity = context;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = appCompatActivity.getLayoutInflater();
            View item = inflater.inflate(R.layout.view_ingredient_add, null);

            //Declaració dels elements del View
            EditText nameText = (EditText) item.findViewById(R.id.nameIngredient);
            EditText quantityText = (EditText) item.findViewById(R.id.quantityIngredient);

            //Valors dels elements de l'array
            String nameIngredient = ingredientsList.get(position).getName();
            String nameQuantity = ingredientsList.get(position).getQuantity();

            //Omple els elements del View
            nameText.setText(nameIngredient);
            quantityText.setText(nameQuantity);

            //Boto eliminar element
            Button ingredientDelete = (Button)item.findViewById(R.id.ingredientDelete);

            final int itemPosition = position;

            //Event onClick, mostra el Dialog
            nameText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showIngredientDialog(ingredientsList.get(itemPosition),itemPosition);
                }
            });
            quantityText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showIngredientDialog(ingredientsList.get(itemPosition),itemPosition);
                }
            });

            //Vinculació del event per eliminar un element
            ingredientDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    deleteIngredient(ingredientsList.get(itemPosition));
                }
            });

            return (item);
        }
    }


    //PASSOS
    //Afegeix un pas al ListView
    public void addStep(View view) {
        stepsAdapter.add(new Steps("0",""));
        setListViewHeightBasedOnChildren(stepsListView);
    }
    //Eliminar un ingredient al ListView
    private void deleteStep(Steps item) {
        stepsAdapter.remove(item);
        setListViewHeightBasedOnChildren(stepsListView);
    }

    //Mostra la finestra per afegir un pas
    private void showStepDialog(final Steps oldItem, final int index){
        final Dialog dialog=new Dialog(RecipeAddActivity.this);
        dialog.setContentView(R.layout.dialog_step_add);
        TextView txtMessage=(TextView)dialog.findViewById(R.id.titleDialog);
        txtMessage.setText("Afegir pas");
        final TextView stepText=(TextView)dialog.findViewById(R.id.textDialog);
        stepText.setText(oldItem.getName());
        Button bt=(Button)dialog.findViewById(R.id.submitDialog);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                stepsList.set(index,new Steps(String.valueOf(oldItem.getCode()),stepText.getText().toString()));
                stepsAdapter.notifyDataSetChanged();
                dialog.dismiss();
            }
        });
        dialog.show();
    }

    //Recupera la informació de la recepta
    private void getSteps(String recipeCode) {
        //Parametres per passar al WebService
        RequestParams params = new RequestParams();
        params.put("reciCode", recipeCode);

        //Missatge mentre s'està executant el procés de validació
        final ProgressDialog progressDialog = new ProgressDialog(this);

        //Creació de la connexió amb el WebService
        AsyncHttpClient client = new AsyncHttpClient();
        client.get("http://1list2cook.com/webservices/recipe_steps.php", params, new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                progressDialog.setMessage("Recuperant passos...");
                progressDialog.show();
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                progressDialog.dismiss();
                try {
                    JSONObject jsonArray = new JSONObject(response.toString());
                    if (jsonArray.get("success").toString().equalsIgnoreCase("1")) {
                        JSONArray userInfo = new JSONArray(jsonArray.get("message").toString());

                        //Guardar info per generar un nou objecte
                        for(int i = 0; i < userInfo.length(); i++) {
                            String stepIden = userInfo.getJSONObject(i).get("stepIden").toString();
                            String stepText = userInfo.getJSONObject(i).get("stepText").toString();

                            //Crea el nou objecte amb la informació de la recepta
                            Steps stepInfo = new Steps(stepIden, stepText);

                            //Introdueix la recepta a l'array
                            stepToArray(stepInfo);
                        }
                    } else {
                        //Introdueix un pas a l'array
                        stepToArray(new Steps("0", ""));
                    }
                    //Vincula els passos i atribueix accions
                    stepsListView.setAdapter(stepsAdapter);
                    setListViewHeightBasedOnChildren(stepsListView);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                progressDialog.dismiss();
                showMessage("No s'ha pogut gestionar l'operació, intenta-ho de nou. Disculpa les molèsties.");
            }
        });
    }
    //Afegeix un pas a l'array de passos
    private void stepToArray(Steps step) { stepsList.add(step); }
    //Classe adaptador de passos
    class StepsAdapter extends ArrayAdapter<Steps> {
        AppCompatActivity appCompatActivity;

        StepsAdapter(AppCompatActivity context) {
            super(context, R.layout.view_step_add, stepsList);
            appCompatActivity = context;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = appCompatActivity.getLayoutInflater();
            View item = inflater.inflate(R.layout.view_step_add, null);

            //Declaració dels elements del View
            TextView stepCont = (TextView) item.findViewById(R.id.contStep);
            EditText stepText = (EditText) item.findViewById(R.id.textStep);

            //Valors dels elements de l'array
            int contStep = position + 1;
            String textStep = stepsList.get(position).getName();

            //Omple els elements del View
            stepCont.setText(String.valueOf(contStep));
            stepText.setText(textStep);

            //Boto eliminar element
            Button stepDelete = (Button)item.findViewById(R.id.stepDelete);

            final int itemPosition = position;

            //Event onClick, mostra el Dialog
            stepText.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showStepDialog(stepsList.get(itemPosition),itemPosition);
                }
            });

            //Vinculació del event per eliminar un element
            stepDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    deleteStep(stepsList.get(itemPosition));
                }
            });

            return (item);
        }
    }

    //Funció que guarda la informació de la recepta
    public void saveRecipe(View view) {
        //Parametres per passar al WebService
        RequestParams params = new RequestParams();

        //Recupera i passa com a paràmetre el codi de l'usuari
        SharedPreferences prefs = getSharedPreferences("UserInfo", Context.MODE_PRIVATE);
        Users userInfo = new Users(prefs);
        params.put("userCode", userInfo.getUserCode());
        if(!reciCode.equals("0")) params.put("reciCode", reciCode);

        //Recupera els valors de cada camp
        EditText reciTitl = (EditText)findViewById(R.id.nameList);
        EditText reciText = (EditText)findViewById(R.id.descriptionRecipe);
        EditText reciCate = (EditText)findViewById(R.id.categoryRecipe);
        EditText reciRati = (EditText)findViewById(R.id.rationsRecipe);
        EditText reciTime = (EditText)findViewById(R.id.timeRecipe);

        //Paràmetres bàsics
        params.put("reciTitl",reciTitl.getText());
        params.put("reciText",reciText.getText());
        params.put("reciCate",reciCate.getText());
        params.put("reciRati",reciRati.getText());
        params.put("reciTime",reciTime.getText());

        //Imatge principal
        try {
            params.put("reciImag", imageRecipeFile);
        } catch (FileNotFoundException e) {
            //Si no hi ha imatge no fara res
        }

        //Passa la informació dels ingredients per paràmetres
        for(int i = 0; i < ingredientsList.size(); i++) {
            if(!reciCode.equals("0")) params.put("ingrCode[" + String.valueOf(i) + "]",ingredientsList.get(i).getCode());
            params.put("ingrName[" + String.valueOf(i) + "]",ingredientsList.get(i).getName());
            params.put("ingrQuan[" + String.valueOf(i) + "]",ingredientsList.get(i).getQuantity());
        }

        //Passa la informació dels ingredients per paràmetres
        for(int i = 0; i < stepsList.size(); i++) {
            if(!reciCode.equals("0")) params.put("stepCode[" + String.valueOf(i) + "]",stepsList.get(i).getCode());
            params.put("stepName[" + String.valueOf(i) + "]",stepsList.get(i).getName());
        }

        //Missatge mentre s'està executant el procés de validació
        final ProgressDialog progressDialog = new ProgressDialog(this);

        //Creació de la connexió amb el WebService
        AsyncHttpClient client = new AsyncHttpClient();
        if(reciCode.equals("0")) {
            client.post("http://1list2cook.com/webservices/recipe_new.php", params, new JsonHttpResponseHandler() {
                @Override
                public void onStart() {
                    progressDialog.setMessage("Guardant recepta...");
                    progressDialog.show();
                }

                @Override
                public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                    progressDialog.dismiss();
                    try {
                        JSONObject jsonArray = new JSONObject(response.toString());
                        showMessage(jsonArray.get("message").toString());
                        if(jsonArray.get("success").toString().equals("1")) {
                            changeActivity(RecipesListActivity.class);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                @Override
                public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                    progressDialog.dismiss();
                    showMessage("No s'ha pogut gestionar l'operació, intenta-ho de nou. Disculpa les molèsties.");
                }
            });
        } else {
            client.post("http://1list2cook.com/webservices/recipe_update.php", params, new JsonHttpResponseHandler() {
                @Override
                public void onStart() {
                    progressDialog.setMessage("Guardant recepta...");
                    progressDialog.show();
                }

                @Override
                public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                    progressDialog.dismiss();
                    try {
                        JSONObject jsonArray = new JSONObject(response.toString());
                        showMessage(jsonArray.get("message").toString());
                        changeActivity(RecipeDetailActivity.class,"idRecipe",reciCode);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                @Override
                public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
                    progressDialog.dismiss();
                    showMessage("No s'ha pogut gestionar l'operació, intenta-ho de nou. Disculpa les molèsties.");
                }
            });
        }

    }
}

