diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Crediter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Crediter.java index 575d59e..8b38cec 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Crediter.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Crediter.java @@ -119,7 +119,6 @@ public class Crediter extends FragmentNFC { * >Communicating with Other Fragments for more information. */ public interface OnFragmentInteractionListener { - // TODO: Update argument type and name void onFragmentInteraction(Uri uri); } } diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java index 27896cc..d7358f0 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java @@ -14,14 +14,14 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; -import android.view.View; import net.plil.clubinfo.etunicorn.R; -import net.plil.clubinfo.etunicorn.app.consomation.FragmentConsomation; -import net.plil.clubinfo.etunicorn.data.Consomation; +import net.plil.clubinfo.etunicorn.app.consommation.FragmentConsommation; +import net.plil.clubinfo.etunicorn.app.consommation.PaiementConsommation; +import net.plil.clubinfo.etunicorn.data.Consommation; -public class MainActivity extends AppCompatActivity implements Crediter.OnFragmentInteractionListener, Debiter.OnFragmentInteractionListener, FragmentConsomation.OnListFragmentInteractionListener{ +public class MainActivity extends AppCompatActivity implements Crediter.OnFragmentInteractionListener, Debiter.OnFragmentInteractionListener, FragmentConsommation.OnListFragmentInteractionListener{ /** * The {@link android.support.v4.view.PagerAdapter} that will provide @@ -121,9 +121,11 @@ public class MainActivity extends AppCompatActivity implements Crediter.OnFragme } - @Override - public void onListFragmentInteraction(Consomation item) { + @Override + public void onListFragmentInteraction(Consommation item) { + PaiementConsommation paiementConsommation = PaiementConsommation.newInstance(item); + paiementConsommation.show(getSupportFragmentManager(), "paiementConsommation"); } /** @@ -143,7 +145,7 @@ public class MainActivity extends AppCompatActivity implements Crediter.OnFragme else if (position == Action.DEBITER.getValue()) return Debiter.newInstance(); else if (position == Action.CONSOMATION.getValue()) - return FragmentConsomation.newInstance(); + return FragmentConsommation.newInstance(); else return null; } @@ -160,7 +162,7 @@ public class MainActivity extends AppCompatActivity implements Crediter.OnFragme else if (position == Action.CREDITER.getValue()) return "Crediter"; else if (position == Action.CONSOMATION.getValue()) - return "Consomation"; + return "Consommation"; return null; } } diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/ConsomationRecyclerViewAdapter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/ConsomationRecyclerViewAdapter.java deleted file mode 100644 index efd656d..0000000 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/ConsomationRecyclerViewAdapter.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.plil.clubinfo.etunicorn.app.consomation; - -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import android.widget.Toast; - -import net.plil.clubinfo.etunicorn.R; -import net.plil.clubinfo.etunicorn.data.Consomation; - -import java.util.List; -import java.util.Locale; - - -public class ConsomationRecyclerViewAdapter extends RecyclerView.Adapter { - - private final List mValues; - private final FragmentConsomation.OnListFragmentInteractionListener mListener; - - public ConsomationRecyclerViewAdapter(List items, FragmentConsomation.OnListFragmentInteractionListener listener) { - mValues = items; - mListener = listener; - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.fragment_consomation_item, parent, false); - return new ViewHolder(view); - } - - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - holder.mItem = mValues.get(position); - holder.mIdView.setText(String.format(Locale.FRANCE, "%d", mValues.get(position).getIdConsomation())); - holder.mContentView.setText(mValues.get(position).getNomConsomation()); - holder.mPriceView.setText(String.format(Locale.FRANCE, "%f",mValues.get(position).getPrix())); - - holder.mView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (null != mListener) { - mListener.onListFragmentInteraction(holder.mItem); - } - } - }); - - holder.mView.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - holder.mView.setSelected(!holder.mView.isSelected()); - return true; - } - }); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public class ViewHolder extends RecyclerView.ViewHolder { - public final View mView; - public final TextView mIdView; - public final TextView mContentView; - public final TextView mPriceView; - public Consomation mItem; - - public ViewHolder(View view) { - super(view); - mView = view; - mIdView = (TextView) view.findViewById(R.id.consomation_id); - mContentView = (TextView) view.findViewById(R.id.consomation_name); - mPriceView = (TextView) view.findViewById(R.id.consomation_price); - } - - @Override - public String toString() { - return super.toString() + " '" + mContentView.getText() + "'"; - } - } -} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/CreateConsomation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/CreateConsomation.java deleted file mode 100644 index 0dbdffb..0000000 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/CreateConsomation.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.plil.clubinfo.etunicorn.app.consomation; - -import android.app.Dialog; -import android.content.Context; -import android.content.DialogInterface; -import android.net.Uri; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; -import android.support.v4.app.Fragment; -import android.support.v7.app.AlertDialog; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.ProgressBar; - -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.utils.VolleyUtils; - -import org.json.JSONException; -import org.json.JSONObject; - - -public class CreateConsomation extends DialogFragment { - - EditText mNomConsomation; - EditText mPrice; - ProgressBar mProgressBar; - - - @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_create_consomation, null); - mNomConsomation = (EditText) view.findViewById(R.id.create_consomation_name); - mPrice = (EditText) view.findViewById(R.id.create_consomation_price); - mProgressBar = (ProgressBar) view.findViewById(R.id.create_consomation_progress_bar); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder - .setTitle(R.string.create_consomation) - .setView(view) - .setPositiveButton(R.string.valid, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - - mProgressBar.setVisibility(View.VISIBLE); - mPrice.setVisibility(View.GONE); - mNomConsomation.setVisibility(View.GONE); - JSONObject jsonObject = new JSONObject(); - try { - jsonObject.put("nomConsomation", mNomConsomation.getText().toString()); - jsonObject.put("prix", Double.parseDouble(mPrice.getText().toString())); - } catch (JSONException e){ - e.printStackTrace(); - } - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/debit" ,jsonObject , new Response.Listener() { - @Override - public void onResponse(JSONObject response) { - mProgressBar.setVisibility(View.GONE); - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - mProgressBar.setVisibility(View.GONE); - } - } - ); - - 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(); - } - - -} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/FragmentConsomation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/FragmentConsomation.java deleted file mode 100644 index d5c7d49..0000000 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consomation/FragmentConsomation.java +++ /dev/null @@ -1,119 +0,0 @@ -package net.plil.clubinfo.etunicorn.app.consomation; - -import android.content.Context; -import android.os.Bundle; -import android.support.design.widget.FloatingActionButton; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Toast; - -import net.plil.clubinfo.etunicorn.R; -import net.plil.clubinfo.etunicorn.app.FragmentNFC; -import net.plil.clubinfo.etunicorn.data.Consomation; - -import java.util.ArrayList; -import java.util.List; - -/** - * A fragment representing a list of Items. - *

- * Activities containing this fragment MUST implement the {@link OnListFragmentInteractionListener} - * interface. - */ -public class FragmentConsomation extends FragmentNFC { - - private OnListFragmentInteractionListener mListener; - - /** - * Mandatory empty constructor for the fragment manager to instantiate the - * fragment (e.g. upon screen orientation changes). - */ - public FragmentConsomation() { - } - - public static FragmentConsomation newInstance() { - return new FragmentConsomation(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_consomation_item_list, container, false); - RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.consomation_list); - // Set the adapter - Context context = recyclerView.getContext(); - - recyclerView.setLayoutManager(new LinearLayoutManager(context)); - - List consomationList = new ArrayList<>(); - Consomation c1 = new Consomation(); - c1.setIdConsomation(1); - c1.setNomConsomation("Hello"); - c1.setPrix(12.5); - consomationList.add(c1); - for (int i = 0; i< 100; ++i){ - c1 = new Consomation(); - c1.setIdConsomation(i); - c1.setNomConsomation("World"); - c1.setPrix(42.407); - consomationList.add(c1); - } - recyclerView.setAdapter(new ConsomationRecyclerViewAdapter(consomationList, mListener)); - - FloatingActionButton fAB = (FloatingActionButton) view.findViewById(R.id.consomation_add); - fAB.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - CreateConsomation newFragment = new CreateConsomation(); - newFragment.show(getFragmentManager(), "CreateConsomation"); - } - }); - - return view; - } - - - @Override - public void onAttach(Context context) { - super.onAttach(context); - if (context instanceof OnListFragmentInteractionListener) { - mListener = (OnListFragmentInteractionListener) context; - } else { - throw new RuntimeException(context.toString() - + " must implement OnListFragmentInteractionListener"); - } - } - - @Override - public void onDetach() { - super.onDetach(); - mListener = null; - } - - @Override - public void processNFC() { - - } - - /** - * This interface must be implemented by activities that contain this - * fragment to allow an interaction in this fragment to be communicated - * to the activity and potentially other fragments contained in that - * activity. - *

- * See the Android Training lesson Communicating with Other Fragments for more information. - */ - public interface OnListFragmentInteractionListener { - void onListFragmentInteraction(Consomation item); - } -} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/ConsommationRecyclerViewAdapter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/ConsommationRecyclerViewAdapter.java new file mode 100644 index 0000000..05a4aee --- /dev/null +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/ConsommationRecyclerViewAdapter.java @@ -0,0 +1,84 @@ +package net.plil.clubinfo.etunicorn.app.consommation; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import net.plil.clubinfo.etunicorn.R; +import net.plil.clubinfo.etunicorn.data.Consommation; + +import java.util.List; +import java.util.Locale; + + +public class ConsommationRecyclerViewAdapter extends RecyclerView.Adapter { + + private final List mValues; + private final FragmentConsommation.OnListFragmentInteractionListener mListener; + + public ConsommationRecyclerViewAdapter(List items, FragmentConsommation.OnListFragmentInteractionListener listener) { + mValues = items; + mListener = listener; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.fragment_consomation_item, parent, false); + return new ViewHolder(view); + } + + + @Override + public void onBindViewHolder(final ViewHolder holder, int position) { + holder.mItem = mValues.get(position); + holder.mIdView.setText(String.format(Locale.FRANCE, "%d", mValues.get(position).getIdConsomation())); + holder.mContentView.setText(mValues.get(position).getNomConsomation()); + holder.mPriceView.setText(String.format(Locale.FRANCE, "%.2f",mValues.get(position).getPrix())); + + holder.mView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (null != mListener) { + mListener.onListFragmentInteraction(holder.mItem); + } + } + }); + + holder.mView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + holder.mView.setSelected(!holder.mView.isSelected()); + return true; + } + }); + } + + @Override + public int getItemCount() { + return mValues.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public final View mView; + public final TextView mIdView; + public final TextView mContentView; + public final TextView mPriceView; + public Consommation mItem; + + public ViewHolder(View view) { + super(view); + mView = view; + mIdView = (TextView) view.findViewById(R.id.consomation_id); + mContentView = (TextView) view.findViewById(R.id.consomation_name); + mPriceView = (TextView) view.findViewById(R.id.consomation_price); + } + + @Override + public String toString() { + return super.toString() + " '" + mContentView.getText() + "'"; + } + } +} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/CreateConsommation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/CreateConsommation.java new file mode 100644 index 0000000..6feba38 --- /dev/null +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/CreateConsommation.java @@ -0,0 +1,83 @@ +package net.plil.clubinfo.etunicorn.app.consommation; + +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 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.utils.VolleyUtils; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class CreateConsommation extends DialogFragment { + + EditText mNomConsomation; + EditText mPrice; + ProgressBar mProgressBar; + + + @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_create_consomation, null); + mNomConsomation = (EditText) view.findViewById(R.id.create_consomation_name); + mPrice = (EditText) view.findViewById(R.id.create_consomation_price); + mProgressBar = (ProgressBar) view.findViewById(R.id.create_consomation_progress_bar); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder + .setTitle(R.string.create_consumable) + .setView(view) + .setPositiveButton(R.string.valid, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + + mProgressBar.setVisibility(View.VISIBLE); + mPrice.setVisibility(View.GONE); + mNomConsomation.setVisibility(View.GONE); + JSONObject jsonObject = new JSONObject(); + try { + jsonObject.put("nomConsomation", mNomConsomation.getText().toString()); + jsonObject.put("prix", Double.parseDouble(mPrice.getText().toString())); + } catch (JSONException e){ + e.printStackTrace(); + } + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/debit" ,jsonObject , new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + mProgressBar.setVisibility(View.GONE); + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + mProgressBar.setVisibility(View.GONE); + } + } + ); + + 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(); + } + + +} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/FragmentConsommation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/FragmentConsommation.java new file mode 100644 index 0000000..86a5043 --- /dev/null +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/FragmentConsommation.java @@ -0,0 +1,135 @@ +package net.plil.clubinfo.etunicorn.app.consommation; + +import android.content.Context; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +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.app.FragmentNFC; +import net.plil.clubinfo.etunicorn.data.Consommation; +import net.plil.clubinfo.etunicorn.utils.VolleyUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; + +/** + * A fragment representing a list of Items. + *

+ * Activities containing this fragment MUST implement the {@link OnListFragmentInteractionListener} + * interface. + */ +public class FragmentConsommation extends FragmentNFC { + + private OnListFragmentInteractionListener mListener; + + /** + * Mandatory empty constructor for the fragment manager to instantiate the + * fragment (e.g. upon screen orientation changes). + */ + public FragmentConsommation() { + } + + public static FragmentConsommation newInstance() { + return new FragmentConsommation(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_consomation_item_list, container, false); + RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.consomation_list); + // Set the adapter + Context context = recyclerView.getContext(); + + recyclerView.setLayoutManager(new LinearLayoutManager(context)); + + List consommationList = new ArrayList<>(); + Consommation c1 = new Consommation(); + c1.setIdConsomation(1); + c1.setNomConsomation("Hello"); + c1.setPrix(12.5); + consommationList.add(c1); + for (int i = 0; i< 100; ++i){ + c1 = new Consommation(); + c1.setIdConsomation(i); + c1.setNomConsomation("World"); + c1.setPrix(42.407); + consommationList.add(c1); + } + recyclerView.setAdapter(new ConsommationRecyclerViewAdapter(consommationList, mListener)); + + FloatingActionButton fAB = (FloatingActionButton) view.findViewById(R.id.consomation_add); + fAB.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CreateConsommation newFragment = new CreateConsommation(); + newFragment.show(getFragmentManager(), "CreateConsommation"); + } + }); + + return view; + } + + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnListFragmentInteractionListener) { + mListener = (OnListFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnListFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + @Override + public void processNFC() { + + PaiementConsommation paiementConsommation = (PaiementConsommation) getFragmentManager().findFragmentByTag("paiementConsommation"); + if (paiementConsommation == null){ + Toast.makeText(getContext(), R.string.payment_consomation_alert_no_selection, Toast.LENGTH_LONG).show(); + } + else { + paiementConsommation.processNFC(); + } + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnListFragmentInteractionListener { + void onListFragmentInteraction(Consommation item); + } +} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/PaiementConsommation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/PaiementConsommation.java new file mode 100644 index 0000000..9bac7e7 --- /dev/null +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/PaiementConsommation.java @@ -0,0 +1,113 @@ +package net.plil.clubinfo.etunicorn.app.consommation; + +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.ProgressBar; +import android.widget.TextView; +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.Consommation; +import net.plil.clubinfo.etunicorn.utils.VolleyUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.Locale; + + +public class PaiementConsommation extends DialogFragment { + + ProgressBar mProgressBar; + TextView mPaiementConsommationName; + TextView mPaiementConsommationPrice; + int consommationId; + + public PaiementConsommation(){} + + /** + * Create a new instance of MyDialogFragment, providing "num" + * as an argument. + */ + public static PaiementConsommation newInstance(Consommation consommation) { + PaiementConsommation f = new PaiementConsommation(); + + // Supply num input as an argument. + Bundle args = new Bundle(); + args.putSerializable("consommation", consommation); + 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_paiment_consomation, null); + mProgressBar = (ProgressBar) view.findViewById(R.id.paiment_consommation_progress_bar); + mPaiementConsommationName = (TextView) view.findViewById(R.id.paiment_consommation_name); + mPaiementConsommationPrice = (TextView) view.findViewById(R.id.paiment_consommation_price); + + + Consommation consommation = (Consommation) getArguments().getSerializable("consommation"); + mPaiementConsommationName.setText(consommation.getNomConsomation()); + mPaiementConsommationPrice.setText(String.format(Locale.FRANCE, "%.2f €", consommation.getPrix())); + + consommationId = consommation.getIdConsomation(); + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder + .setTitle(R.string.payment_consumable) + .setView(view) + .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(); + } + + + public void processNFC() { + mProgressBar.setVisibility(View.VISIBLE); + JSONObject jsonObject = new JSONObject(); + try { + jsonObject.put("participant", 1); + jsonObject.put("acteur", 2); + jsonObject.put("id", consommationId); + } catch (JSONException e) { + e.printStackTrace(); + } + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/consommation", jsonObject, new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + mProgressBar.setVisibility(View.GONE); + Toast.makeText(getContext(), R.string.payment_done, Toast.LENGTH_LONG).show(); + dismiss(); + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + mProgressBar.setVisibility(View.GONE); + Toast.makeText(getContext(), R.string.payment_refused, Toast.LENGTH_LONG).show(); + dismiss(); + } + } + ); + + VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest); + } +} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consomation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consomation.java deleted file mode 100644 index 6a09b48..0000000 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consomation.java +++ /dev/null @@ -1,38 +0,0 @@ -package net.plil.clubinfo.etunicorn.data; - -/** - * Created by badetitou on 29/01/2017. - */ - -public class Consomation { - private int idConsomation; - private String nomConsomation; - private double prix; - - public Consomation() { - } - - public int getIdConsomation() { - return idConsomation; - } - - public void setIdConsomation(int idConsomation) { - this.idConsomation = idConsomation; - } - - public String getNomConsomation() { - return nomConsomation; - } - - public void setNomConsomation(String nomConsomation) { - this.nomConsomation = nomConsomation; - } - - public double getPrix() { - return prix; - } - - public void setPrix(double prix) { - this.prix = prix; - } -} diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consommation.java b/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consommation.java new file mode 100644 index 0000000..19b1d15 --- /dev/null +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/data/Consommation.java @@ -0,0 +1,41 @@ +package net.plil.clubinfo.etunicorn.data; + +import java.io.Serializable; + +/** + * Created by badetitou on 29/01/2017. + */ + +public class Consommation implements Serializable{ + + private int idConsomation; + private String nomConsomation; + private double prix; + + public Consommation() { + } + + public int getIdConsomation() { + return idConsomation; + } + + public void setIdConsomation(int idConsomation) { + this.idConsomation = idConsomation; + } + + public String getNomConsomation() { + return nomConsomation; + } + + public void setNomConsomation(String nomConsomation) { + this.nomConsomation = nomConsomation; + } + + public double getPrix() { + return prix; + } + + public void setPrix(double prix) { + this.prix = prix; + } +} diff --git a/app/src/main/res/layout/fragment_consomation_item_list.xml b/app/src/main/res/layout/fragment_consomation_item_list.xml index 4af1137..71e5682 100644 --- a/app/src/main/res/layout/fragment_consomation_item_list.xml +++ b/app/src/main/res/layout/fragment_consomation_item_list.xml @@ -14,7 +14,7 @@ android:layout_marginLeft="16dp" android:layout_marginRight="16dp" app:layoutManager="LinearLayoutManager" - tools:context="net.plil.clubinfo.etunicorn.app.consomation.FragmentConsomation" + tools:context="net.plil.clubinfo.etunicorn.app.consommation.FragmentConsommation" tools:listitem="@layout/fragment_consomation_item" /> diff --git a/app/src/main/res/layout/fragment_create_consomation.xml b/app/src/main/res/layout/fragment_create_consomation.xml index e93bc1e..853f3bc 100644 --- a/app/src/main/res/layout/fragment_create_consomation.xml +++ b/app/src/main/res/layout/fragment_create_consomation.xml @@ -1,7 +1,7 @@ + android:hint="@string/create_consumable_name"/> diff --git a/app/src/main/res/layout/fragment_paiment_consomation.xml b/app/src/main/res/layout/fragment_paiment_consomation.xml new file mode 100644 index 0000000..e85bd55 --- /dev/null +++ b/app/src/main/res/layout/fragment_paiment_consomation.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6b02d2b..3cb3c5c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -9,10 +9,11 @@ Nom d\'utilisateur Paramètres Annuler - Créer une consomation - Nom - Prix + Créer une consommation + Nom + Prix Entrer une valeur OK Etunicorn - Bonjour + Paiement d\'un Consommable \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0e2d425..32e186b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,8 +13,12 @@ Enter value OK Cancel - Create Consomation - Name - Price + Create Consumable + Name + Price Etunicorn - Hello + Consumable Payment + Select a product before paying + Payment done + Payment refused -- libgit2 0.21.2