From f5506a08921ba0a497a4667502a76836ee3df5bc Mon Sep 17 00:00:00 2001 From: BenoƮt Verhaeghe Date: Sat, 4 Feb 2017 23:26:26 +0100 Subject: [PATCH] Fix error leave during payment --- app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java | 7 +++++-- app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java | 4 ++-- app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/PaiementConsommation.java | 9 ++++++--- app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java | 20 ++++++++++++++++++-- app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java | 34 ++++++++++++++++++++++++++-------- app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java | 2 +- app/src/main/res/layout/fragment_crediter.xml | 64 ++++++++++++++++++++++++++++++++++++++-------------------------- app/src/main/res/layout/fragment_debiter.xml | 70 +++++++++++++++++++++++++++++++++++++++++++--------------------------- app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 10 files changed, 141 insertions(+), 71 deletions(-) diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java index 936548e..da8670a 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java @@ -66,11 +66,13 @@ public class PaiementEvent extends DialogFragment { .setView(view) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - // User cancelled the dialog + VolleyUtils.getInstance(getContext()).getRequestQueue().cancelAll("PAYMENT"); } }); // Create the AlertDialog object and return it - return builder.create(); + Dialog dialog = builder.create(); + dialog.setCanceledOnTouchOutside(false); + return dialog; } @@ -101,6 +103,7 @@ public class PaiementEvent extends DialogFragment { } ); + jsonObjectRequest.setTag("PAYMENT"); VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest); } } 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 2700f20..eba8f8f 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 @@ -63,7 +63,7 @@ public class MainActivity extends AppCompatActivity private Toolbar toolbar; private AppBarLayout appBarLayout; - private List consommationsToModify = new ArrayList<>(); + private Personne p; NfcAdapter mAdapter; PendingIntent mPendingIntent; @@ -74,7 +74,7 @@ public class MainActivity extends AppCompatActivity // config tabbed pan Intent intent = this.getIntent(); - Personne p = (Personne) intent.getSerializableExtra("user"); + p = (Personne) intent.getSerializableExtra("user"); //TODO remove this line Toast.makeText(getApplicationContext(), p.getRole().getPermissions().get(0).getNom(), Toast.LENGTH_SHORT).show(); if (p.getRole().getPermissions().get(0).getNom().equals("ROLE_ADMIN")){ 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 index 2a14b24..8318f30 100644 --- 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 @@ -71,11 +71,14 @@ public class PaiementConsommation extends DialogFragment { .setView(view) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - // User cancelled the dialog + VolleyUtils.getInstance(getContext()).getRequestQueue().cancelAll("PAYMENT"); } }); // Create the AlertDialog object and return it - return builder.create(); + + Dialog dialog = builder.create(); + dialog.setCanceledOnTouchOutside(false); + return dialog; } @@ -105,7 +108,7 @@ public class PaiementConsommation extends DialogFragment { } } ); - + jsonObjectRequest.setTag("PAYMENT"); VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest); } } diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java index 3e4761c..520eb34 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java @@ -2,6 +2,8 @@ package net.plil.clubinfo.etunicorn.app.credit; import android.content.Context; import android.os.Bundle; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.Snackbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -15,6 +17,7 @@ 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.Personne; import net.plil.clubinfo.etunicorn.utils.VolleyUtils; import org.json.JSONException; @@ -24,6 +27,7 @@ public class Crediter extends FragmentNFC { private EditText mMoneyEditText; private ProgressBar mProgressBar; + private CoordinatorLayout coordinatorLayout; public Crediter() { // Required empty public constructor @@ -44,6 +48,7 @@ public class Crediter extends FragmentNFC { View view = inflater.inflate(R.layout.fragment_crediter, container, false); mMoneyEditText = (EditText) view.findViewById(R.id.crediter_ask_money); mProgressBar = (ProgressBar) view.findViewById(R.id.crediter_progress_bar); + coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.crediter_layout); return view; } @@ -62,11 +67,17 @@ public class Crediter extends FragmentNFC { @Override public void processNFC(String idCardUser) { + if(mMoneyEditText.getText().toString().isEmpty()){ + mMoneyEditText.setError(getString(R.string.error_enter_debit)); + return; + } mProgressBar.setVisibility(View.VISIBLE); + mMoneyEditText.setVisibility(View.GONE); JSONObject jsonObject = new JSONObject(); try { - jsonObject.put("participant", 1); - jsonObject.put("acteur", 2); + Personne p = new Personne(); + p.setIdCarte(idCardUser); + jsonObject.put("participant", p); jsonObject.put("prix", Double.parseDouble(mMoneyEditText.getText().toString())); } catch (JSONException e){ e.printStackTrace(); @@ -75,11 +86,16 @@ public class Crediter extends FragmentNFC { @Override public void onResponse(JSONObject response) { mProgressBar.setVisibility(View.GONE); + mMoneyEditText.setText(""); + mMoneyEditText.setVisibility(View.VISIBLE); + Snackbar.make(coordinatorLayout, "DONE", Snackbar.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mProgressBar.setVisibility(View.GONE); + mMoneyEditText.setVisibility(View.VISIBLE); + Snackbar.make(coordinatorLayout, error.getMessage(), Snackbar.LENGTH_LONG).show(); } } ); diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java b/app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java index 351a369..65708e0 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java @@ -2,10 +2,12 @@ package net.plil.clubinfo.etunicorn.app.debit; import android.content.Context; import android.os.Bundle; +import android.support.design.widget.CoordinatorLayout; +import android.support.design.widget.Snackbar; +import android.support.design.widget.TextInputEditText; 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; @@ -15,6 +17,7 @@ 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.Personne; import net.plil.clubinfo.etunicorn.utils.VolleyUtils; import org.json.JSONException; @@ -23,9 +26,9 @@ import org.json.JSONObject; public class Debiter extends FragmentNFC { - private EditText mMoneyEditText; + private TextInputEditText mMoneyEditText; private ProgressBar mProgressBar; - + private CoordinatorLayout coordinatorLayout; public Debiter() { // Required empty public constructor @@ -48,7 +51,8 @@ public class Debiter extends FragmentNFC { Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_debiter, container, false); mProgressBar = (ProgressBar) view.findViewById(R.id.debiter_progress); - mMoneyEditText = (EditText) view.findViewById(R.id.debiter_edit_text_money); + mMoneyEditText = (TextInputEditText) view.findViewById(R.id.debiter_edit_text_money); + coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.debiter_layout); return view; } @@ -64,25 +68,39 @@ public class Debiter extends FragmentNFC { @Override public void processNFC(String iDCardUser) { + if(mMoneyEditText.getText().toString().isEmpty()){ + mMoneyEditText.setError(getString(R.string.error_enter_debit)); + return; + } + mMoneyEditText.setVisibility(View.GONE); mProgressBar.setVisibility(View.VISIBLE); JSONObject jsonObject = new JSONObject(); //TODO verifier champ complet avant de construire la requete try { - jsonObject.put("participant", 1); - jsonObject.put("acteur", 2); - jsonObject.put("prix", Double.parseDouble(mMoneyEditText.getText().toString())); + Personne p = new Personne(); + p.setIdCarte(iDCardUser); + jsonObject.put("participant", p); + jsonObject.put("prix", -Double.parseDouble(mMoneyEditText.getText().toString())); + mMoneyEditText.setError(null); } catch (JSONException e){ e.printStackTrace(); } - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/debit" ,jsonObject , new Response.Listener() { + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/credit" ,jsonObject , new Response.Listener() { @Override public void onResponse(JSONObject response) { mProgressBar.setVisibility(View.GONE); + mMoneyEditText.setText(""); + mMoneyEditText.setVisibility(View.VISIBLE); + Snackbar.make(coordinatorLayout, "DONE", Snackbar.LENGTH_LONG).show(); + } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mProgressBar.setVisibility(View.GONE); + mMoneyEditText.setVisibility(View.VISIBLE); + Snackbar.make(coordinatorLayout, error.getMessage(), Snackbar.LENGTH_LONG).show(); + } } ); diff --git a/app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java b/app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java index f8a363e..b5d1cf9 100644 --- a/app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java +++ b/app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java @@ -12,7 +12,7 @@ import com.android.volley.toolbox.Volley; public class VolleyUtils { - private static final String uri = "http://blablapatate"; + private static final String uri = "http://192.168.0.21:8080/"; private static final String version = "v1"; public static final String baseUri = VolleyUtils.uri + VolleyUtils.version ; diff --git a/app/src/main/res/layout/fragment_crediter.xml b/app/src/main/res/layout/fragment_crediter.xml index 4303bee..8547272 100644 --- a/app/src/main/res/layout/fragment_crediter.xml +++ b/app/src/main/res/layout/fragment_crediter.xml @@ -1,29 +1,41 @@ - - - - - - - + tools:context="net.plil.clubinfo.etunicorn.app.credit.Crediter" + android:id="@+id/crediter_layout"> + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_debiter.xml b/app/src/main/res/layout/fragment_debiter.xml index f536e90..572bf14 100644 --- a/app/src/main/res/layout/fragment_debiter.xml +++ b/app/src/main/res/layout/fragment_debiter.xml @@ -1,30 +1,46 @@ - - - - - - - + tools:context="net.plil.clubinfo.etunicorn.app.credit.Crediter" + android:id="@+id/debiter_layout"> + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c2de438..15bfc90 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -40,4 +40,5 @@ Login Date de naissance Role + Veuillez entrer une valeur avant d\'utiliser la carte NFC \ 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 5e012b0..2d44f78 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -41,4 +41,5 @@ Card ID Birthday Role + Please enter a value before using your NFC card -- libgit2 0.21.2