ModifyEvent.java 4.48 KB
package net.plil.clubinfo.etunicorn.app.event;

import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;

import net.plil.clubinfo.etunicorn.R;
import net.plil.clubinfo.etunicorn.data.Event;
import net.plil.clubinfo.etunicorn.utils.VolleyUtils;

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

import java.util.Locale;


public class ModifyEvent extends DialogFragment {

    EditText mNom;
    EditText mPrice;
    EditText mDate;
    ProgressBar mProgressBar;

    public static ModifyEvent newInstance(Event event) {
        ModifyEvent f = new ModifyEvent();

        // Supply num input as an argument.
        Bundle args = new Bundle();
        args.putSerializable("event", event);
        f.setArguments(args);

        return f;
    }


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.fragment_modify_event, null);
        mNom = (EditText) view.findViewById(R.id.modify_event_name);
        mPrice = (EditText) view.findViewById(R.id.modify_event_price);
        mDate = (EditText) view.findViewById(R.id.modify_event_date);
        mProgressBar = (ProgressBar) view.findViewById(R.id.modify_event_progress_bar);

        final Event event = (Event) getArguments().getSerializable("event");

        mNom.setText(event.getNomEvent());
        mPrice.setText(String.format(Locale.FRANCE, "%.2f",  event.getPrice()));
        mDate.setText(event.getDate().toString());

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder
                .setTitle(R.string.modify)
                .setView(view)
                .setPositiveButton(R.string.modify, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        mProgressBar.setVisibility(View.VISIBLE);
                        mPrice.setVisibility(View.GONE);
                        mNom.setVisibility(View.GONE);
                        mDate.setVisibility(View.GONE);
                        JSONObject jsonObject = new JSONObject();
                        try {
                            jsonObject.put("nomEvenement", mNom.getText().toString());
                            jsonObject.put("prix", Double.parseDouble(mPrice.getText().toString()));
                            jsonObject.put("date", mDate.getText().toString());
                        } catch (JSONException e){
                            e.printStackTrace();
                        }
                        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/evenement/" + event.getIdEvent() ,jsonObject , new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject response) {
                                mProgressBar.setVisibility(View.GONE);
                                Toast.makeText(getContext(), R.string.modify_done, Toast.LENGTH_LONG).show();

                            }
                        }, new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                mProgressBar.setVisibility(View.GONE);
                                Toast.makeText(getContext(), R.string.modify_refused, Toast.LENGTH_LONG).show();

                            }
                        }
                        );

                        VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest);
                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // User cancelled the dialog
                    }
                });
        // Create the AlertDialog object and return it
        return builder.create();
    }


}