diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/CreateEvent.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/CreateEvent.java index af93ce3..abb3712 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/CreateEvent.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/CreateEvent.java @@ -41,6 +41,9 @@ import java.util.Map; public class CreateEvent extends DialogFragment { + private DialogInterface.OnDismissListener onDismissListener; + + Calendar myCalendar = Calendar.getInstance(); @@ -186,10 +189,22 @@ public class CreateEvent extends DialogFragment { } private void updateLabel() { - String myFormat = "yyyy-MM-dd"; //In which you need put here + String myFormat = "yyyy-MM-dd"; SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE); arraySpinnerDate[0] = sdf.format(myCalendar.getTime()); adapterDate.notifyDataSetChanged(); } + public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) { + this.onDismissListener = onDismissListener; + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + if (onDismissListener != null) { + onDismissListener.onDismiss(dialog); + } + } + } diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/DeleteEvent.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/DeleteEvent.java index 201b897..fa281db 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/DeleteEvent.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/DeleteEvent.java @@ -31,6 +31,9 @@ import java.util.Map; public class DeleteEvent extends DialogFragment { + private DialogInterface.OnDismissListener onDismissListener; + + ProgressBar mProgressBar; public DeleteEvent() { @@ -84,7 +87,7 @@ public class DeleteEvent extends DialogFragment { public void onClick(View v) { mProgressBar.setVisibility(View.VISIBLE); - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.DELETE, VolleyUtils.baseUri + "/evenement/" + event.getIdEvent(), null, new Response.Listener() { + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.DELETE, VolleyUtils.baseUri + "/evenement/" + event.getId(), null, new Response.Listener() { @Override public void onResponse(JSONObject response) { mProgressBar.setVisibility(View.GONE); @@ -122,4 +125,16 @@ public class DeleteEvent extends DialogFragment { super.onStop(); } + public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) { + this.onDismissListener = onDismissListener; + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + if (onDismissListener != null) { + onDismissListener.onDismiss(dialog); + } + } + } diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/EventFragment.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/EventFragment.java index 9dae2e9..ef4388d 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/EventFragment.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/EventFragment.java @@ -1,9 +1,11 @@ package net.plil.clubinfo.etunicorn.app.event; import android.content.Context; +import android.content.DialogInterface; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.Fragment; +import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; @@ -11,14 +13,31 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.android.volley.AuthFailureError; +import com.android.volley.Request; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.JsonArrayRequest; + import net.plil.clubinfo.etunicorn.R; +import net.plil.clubinfo.etunicorn.app.MainActivity; import net.plil.clubinfo.etunicorn.app.NFCSupport; +import net.plil.clubinfo.etunicorn.app.personne.ModifyPersonne; import net.plil.clubinfo.etunicorn.data.Event; +import net.plil.clubinfo.etunicorn.data.Personne; +import net.plil.clubinfo.etunicorn.utils.ConvertBytesToString; +import net.plil.clubinfo.etunicorn.utils.JsonConverter; +import net.plil.clubinfo.etunicorn.utils.VolleyUtils; + +import org.json.JSONArray; +import org.json.JSONException; import java.sql.Date; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * A fragment representing a list of Items. @@ -26,9 +45,13 @@ import java.util.List; * Activities containing this fragment MUST implement the {@link OnListFragmentInteractionListener} * interface. */ -public class EventFragment extends Fragment implements NFCSupport { +public class EventFragment extends Fragment implements NFCSupport, DialogInterface.OnDismissListener { private OnListFragmentInteractionListener mListener; + private SwipeRefreshLayout mSwipeRefreshLayout; + + private List events; + private RecyclerView.Adapter mAdapter; public EventFragment() { } @@ -48,30 +71,39 @@ public class EventFragment extends Fragment implements NFCSupport { Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_event_list, container, false); - // Set the adapter Context context = view.getContext(); + RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.event_list); recyclerView.setLayoutManager(new LinearLayoutManager(context)); - List events = new ArrayList<>(); - for (int i = 0; i < 150; ++i) { - Event ev = new Event(); - ev.setNomEvent("Hello " + i); - ev.setPrice(15.52); - ev.setDate(new Date(Calendar.getInstance().getTimeInMillis())); - events.add(ev); - } + events = new ArrayList<>(); + updateEvents(); + mAdapter = new MyEventRecyclerViewAdapter(events, mListener, getActivity(), this); + recyclerView.setAdapter(mAdapter); FloatingActionButton fAB = (FloatingActionButton) view.findViewById(R.id.event_add); fAB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CreateEvent newFragment = new CreateEvent(); + newFragment.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + updateEvents(); + } + }); newFragment.show(getFragmentManager(), "CreateEvent"); } }); - recyclerView.setAdapter(new MyEventRecyclerViewAdapter(events, mListener, getActivity())); + mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.event_swipeRefresh); + mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + updateEvents(); + } + }); + return view; } @@ -93,6 +125,43 @@ public class EventFragment extends Fragment implements NFCSupport { mListener = null; } + private void updateEvents(){ + JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, VolleyUtils.baseUri + "/evenement", null, new Response.Listener() { + @Override + public void onResponse(JSONArray response) { + try { + events.clear(); + for (int i = 0; i < response.length(); ++i) { + events.add(JsonConverter.getConverter().fromJson(String.valueOf(response.getJSONObject(i)), Event.class)); + } + mAdapter.notifyDataSetChanged(); + mSwipeRefreshLayout.setRefreshing(false); + } catch (JSONException e) { + e.printStackTrace(); + } + + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + if (error.networkResponse == null) + Toast.makeText(getActivity(), "Unknow error SORRY", Toast.LENGTH_LONG).show(); + else + Toast.makeText(getActivity(), ConvertBytesToString.bytesToStringVolLey(error.networkResponse.data), Toast.LENGTH_LONG).show(); + } + } + ) { + @Override + public Map getHeaders() throws AuthFailureError { + Map headers = new HashMap<>(); + headers.put("Authorization", MainActivity.session.getToken()); + return headers; + } + }; + jsonArrayRequest.setTag(ModifyPersonne.class); + VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonArrayRequest); + } + @Override public void processNFC(String idCardUser) { PaiementEvent paiementEvent = (PaiementEvent) getFragmentManager().findFragmentByTag("paiementEvent"); @@ -103,6 +172,11 @@ public class EventFragment extends Fragment implements NFCSupport { } } + @Override + public void onDismiss(DialogInterface dialog) { + updateEvents(); + } + /** * This interface must be implemented by activities that contain this * fragment to allow an interaction in this fragment to be communicated diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/ModifyEvent.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/ModifyEvent.java index ed15a82..ec96830 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/ModifyEvent.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/ModifyEvent.java @@ -42,6 +42,9 @@ import java.util.Map; public class ModifyEvent extends DialogFragment { + private DialogInterface.OnDismissListener onDismissListener; + + Calendar myCalendar = Calendar.getInstance(); EditText mNom; EditText mPrice; @@ -100,8 +103,8 @@ public class ModifyEvent extends DialogFragment { R.layout.simple_item_layout, arraySpinnerDate); mDate.setAdapter(adapterDate); - mNom.setText(event.getNomEvent()); - mPrice.setText(String.format(Locale.US, "%.2f", event.getPrice())); + mNom.setText(event.getNom()); + mPrice.setText(String.format(Locale.US, "%.2f", event.getPrix())); AlertDialog dialog = new AlertDialog.Builder(getActivity()) .setTitle(R.string.modify) @@ -138,14 +141,14 @@ public class ModifyEvent extends DialogFragment { mDate.setVisibility(View.GONE); JSONObject jsonObject = new JSONObject(); try { - jsonObject.put("nomEvenement", mNom.getText().toString()); + jsonObject.put("nom", mNom.getText().toString()); if (!mPrice.getText().toString().isEmpty()) jsonObject.put("prix", Double.parseDouble(mPrice.getText().toString())); jsonObject.put("date", mDate.getSelectedItem()); } catch (JSONException e) { e.printStackTrace(); } - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/evenement/" + event.getIdEvent(), jsonObject, new Response.Listener() { + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.PUT, VolleyUtils.baseUri + "/evenement/" + event.getId(), jsonObject, new Response.Listener() { @Override public void onResponse(JSONObject response) { mProgressBar.setVisibility(View.GONE); @@ -161,7 +164,6 @@ public class ModifyEvent extends DialogFragment { mNomInput.setVisibility(View.VISIBLE); mDate.setVisibility(View.VISIBLE); Toast.makeText(getContext(), R.string.modify_refused, Toast.LENGTH_LONG).show(); - } } ) { @@ -196,4 +198,17 @@ public class ModifyEvent extends DialogFragment { adapterDate.notifyDataSetChanged(); } + public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) { + this.onDismissListener = onDismissListener; + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + if (onDismissListener != null) { + onDismissListener.onDismiss(dialog); + } + } + + } \ No newline at end of file diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/MyEventRecyclerViewAdapter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/MyEventRecyclerViewAdapter.java index 8542157..08b5c82 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/MyEventRecyclerViewAdapter.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/MyEventRecyclerViewAdapter.java @@ -1,6 +1,7 @@ package net.plil.clubinfo.etunicorn.app.event; import android.content.Context; +import android.content.DialogInterface; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.PopupMenu; import android.support.v7.widget.RecyclerView; @@ -22,11 +23,13 @@ class MyEventRecyclerViewAdapter extends RecyclerView.Adapter mEvents; private final EventFragment.OnListFragmentInteractionListener mListener; private final Context context; + DialogInterface.OnDismissListener mOnDismissListener; - MyEventRecyclerViewAdapter(List items, EventFragment.OnListFragmentInteractionListener listener, Context context) { + MyEventRecyclerViewAdapter(List items, EventFragment.OnListFragmentInteractionListener listener, Context context, DialogInterface.OnDismissListener mOnDismissListener) { mEvents = items; mListener = listener; this.context = context; + this.mOnDismissListener = mOnDismissListener; } @Override @@ -39,9 +42,9 @@ class MyEventRecyclerViewAdapter extends RecyclerView.Adapter { + private DialogInterface.OnDismissListener mOnDismissListener; + private final List mValues; private final PersonneFragment.OnListFragmentInteractionListener mListener; private final Context context; - MyPersonneRecyclerViewAdapter(List items, PersonneFragment.OnListFragmentInteractionListener listener, Context context) { + MyPersonneRecyclerViewAdapter(List items, PersonneFragment.OnListFragmentInteractionListener listener, Context context, DialogInterface.OnDismissListener mOnDismissListener) { mValues = items; mListener = listener; this.context = context; + this.mOnDismissListener = mOnDismissListener; } @Override @@ -66,10 +70,12 @@ class MyPersonneRecyclerViewAdapter extends RecyclerView.Adapter personnes = new ArrayList<>(); @@ -72,9 +72,9 @@ public class PersonneFragment extends Fragment implements NFCSupport { Context context = view.getContext(); RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.personne_list); recyclerView.setLayoutManager(new LinearLayoutManager(context)); - mAdapter = new MyPersonneRecyclerViewAdapter(personnes, mListener, getActivity()); + mAdapter = new MyPersonneRecyclerViewAdapter(personnes, mListener, getActivity(), this); recyclerView.setAdapter(mAdapter); - setPersonnes(); + updatePersonnes(); FloatingActionButton fAB = (FloatingActionButton) view.findViewById(R.id.personne_add); fAB.setOnClickListener(new View.OnClickListener() { @Override @@ -83,7 +83,7 @@ public class PersonneFragment extends Fragment implements NFCSupport { newFragment.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { - setPersonnes(); + updatePersonnes(); } }); newFragment.show(getFragmentManager(), getString(R.string.tag_create_personne)); @@ -94,7 +94,7 @@ public class PersonneFragment extends Fragment implements NFCSupport { mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { - setPersonnes(); + updatePersonnes(); } }); @@ -119,7 +119,7 @@ public class PersonneFragment extends Fragment implements NFCSupport { mListener = null; } - private void setPersonnes() { + private void updatePersonnes() { JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, VolleyUtils.baseUri + "/personne", null, new Response.Listener() { @Override public void onResponse(JSONArray response) { @@ -170,6 +170,11 @@ public class PersonneFragment extends Fragment implements NFCSupport { } + @Override + public void onDismiss(DialogInterface dialog) { + updatePersonnes(); + } + /** * This interface must be implemented by activities that contain this * fragment to allow an interaction in this fragment to be communicated diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/data/Event.java b/app/src/main/java/net/plil/clubinfo/etunicorn/data/Event.java index 5e39651..71ad7bb 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/data/Event.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/data/Event.java @@ -9,36 +9,36 @@ import java.util.Date; public class Event implements Serializable{ - private int idEvent; - private String nomEvent; - private double price; + private int id; + private String nom; + private double prix; private Date date; public Event() { } - public int getIdEvent() { - return idEvent; + public int getId() { + return id; } - public void setIdEvent(int idEvent) { - this.idEvent = idEvent; + public void setId(int id) { + this.id = id; } - public String getNomEvent() { - return nomEvent; + public String getNom() { + return nom; } - public void setNomEvent(String nomEvent) { - this.nomEvent = nomEvent; + public void setNom(String nom) { + this.nom = nom; } - public double getPrice() { - return price; + public double getPrix() { + return prix; } - public void setPrice(double price) { - this.price = price; + public void setPrix(double prix) { + this.prix = prix; } public Date getDate() { diff --git a/app/src/main/res/layout/fragment_event.xml b/app/src/main/res/layout/fragment_event.xml index 3d3ab43..2435c7a 100644 --- a/app/src/main/res/layout/fragment_event.xml +++ b/app/src/main/res/layout/fragment_event.xml @@ -1,6 +1,6 @@ - + android:layout_weight="7" + android:textAppearance="?attr/textAppearanceListItem" /> - + android:textStyle="normal|bold" /> + diff --git a/app/src/main/res/layout/fragment_event_list.xml b/app/src/main/res/layout/fragment_event_list.xml index 2b57d41..8033f56 100644 --- a/app/src/main/res/layout/fragment_event_list.xml +++ b/app/src/main/res/layout/fragment_event_list.xml @@ -6,17 +6,22 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_height="match_parent"> + +