Commit f5506a08921ba0a497a4667502a76836ee3df5bc
1 parent
3e933aa6
Fix error leave during payment
Showing
10 changed files
with
141 additions
and
71 deletions
Show diff stats
app/src/main/java/net/plil/clubinfo/etunicorn/app/Event/PaiementEvent.java
... | ... | @@ -66,11 +66,13 @@ public class PaiementEvent extends DialogFragment { |
66 | 66 | .setView(view) |
67 | 67 | .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { |
68 | 68 | public void onClick(DialogInterface dialog, int id) { |
69 | - // User cancelled the dialog | |
69 | + VolleyUtils.getInstance(getContext()).getRequestQueue().cancelAll("PAYMENT"); | |
70 | 70 | } |
71 | 71 | }); |
72 | 72 | // Create the AlertDialog object and return it |
73 | - return builder.create(); | |
73 | + Dialog dialog = builder.create(); | |
74 | + dialog.setCanceledOnTouchOutside(false); | |
75 | + return dialog; | |
74 | 76 | } |
75 | 77 | |
76 | 78 | |
... | ... | @@ -101,6 +103,7 @@ public class PaiementEvent extends DialogFragment { |
101 | 103 | } |
102 | 104 | ); |
103 | 105 | |
106 | + jsonObjectRequest.setTag("PAYMENT"); | |
104 | 107 | VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest); |
105 | 108 | } |
106 | 109 | } | ... | ... |
app/src/main/java/net/plil/clubinfo/etunicorn/app/MainActivity.java
... | ... | @@ -63,7 +63,7 @@ public class MainActivity extends AppCompatActivity |
63 | 63 | private Toolbar toolbar; |
64 | 64 | private AppBarLayout appBarLayout; |
65 | 65 | |
66 | - private List<Consommation> consommationsToModify = new ArrayList<>(); | |
66 | + private Personne p; | |
67 | 67 | |
68 | 68 | NfcAdapter mAdapter; |
69 | 69 | PendingIntent mPendingIntent; |
... | ... | @@ -74,7 +74,7 @@ public class MainActivity extends AppCompatActivity |
74 | 74 | |
75 | 75 | // config tabbed pan |
76 | 76 | Intent intent = this.getIntent(); |
77 | - Personne p = (Personne) intent.getSerializableExtra("user"); | |
77 | + p = (Personne) intent.getSerializableExtra("user"); | |
78 | 78 | //TODO remove this line |
79 | 79 | Toast.makeText(getApplicationContext(), p.getRole().getPermissions().get(0).getNom(), Toast.LENGTH_SHORT).show(); |
80 | 80 | if (p.getRole().getPermissions().get(0).getNom().equals("ROLE_ADMIN")){ | ... | ... |
app/src/main/java/net/plil/clubinfo/etunicorn/app/consommation/PaiementConsommation.java
... | ... | @@ -71,11 +71,14 @@ public class PaiementConsommation extends DialogFragment { |
71 | 71 | .setView(view) |
72 | 72 | .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { |
73 | 73 | public void onClick(DialogInterface dialog, int id) { |
74 | - // User cancelled the dialog | |
74 | + VolleyUtils.getInstance(getContext()).getRequestQueue().cancelAll("PAYMENT"); | |
75 | 75 | } |
76 | 76 | }); |
77 | 77 | // Create the AlertDialog object and return it |
78 | - return builder.create(); | |
78 | + | |
79 | + Dialog dialog = builder.create(); | |
80 | + dialog.setCanceledOnTouchOutside(false); | |
81 | + return dialog; | |
79 | 82 | } |
80 | 83 | |
81 | 84 | |
... | ... | @@ -105,7 +108,7 @@ public class PaiementConsommation extends DialogFragment { |
105 | 108 | } |
106 | 109 | } |
107 | 110 | ); |
108 | - | |
111 | + jsonObjectRequest.setTag("PAYMENT"); | |
109 | 112 | VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest); |
110 | 113 | } |
111 | 114 | } | ... | ... |
app/src/main/java/net/plil/clubinfo/etunicorn/app/credit/Crediter.java
... | ... | @@ -2,6 +2,8 @@ package net.plil.clubinfo.etunicorn.app.credit; |
2 | 2 | |
3 | 3 | import android.content.Context; |
4 | 4 | import android.os.Bundle; |
5 | +import android.support.design.widget.CoordinatorLayout; | |
6 | +import android.support.design.widget.Snackbar; | |
5 | 7 | import android.view.LayoutInflater; |
6 | 8 | import android.view.View; |
7 | 9 | import android.view.ViewGroup; |
... | ... | @@ -15,6 +17,7 @@ import com.android.volley.toolbox.JsonObjectRequest; |
15 | 17 | |
16 | 18 | import net.plil.clubinfo.etunicorn.R; |
17 | 19 | import net.plil.clubinfo.etunicorn.app.FragmentNFC; |
20 | +import net.plil.clubinfo.etunicorn.data.Personne; | |
18 | 21 | import net.plil.clubinfo.etunicorn.utils.VolleyUtils; |
19 | 22 | |
20 | 23 | import org.json.JSONException; |
... | ... | @@ -24,6 +27,7 @@ public class Crediter extends FragmentNFC { |
24 | 27 | |
25 | 28 | private EditText mMoneyEditText; |
26 | 29 | private ProgressBar mProgressBar; |
30 | + private CoordinatorLayout coordinatorLayout; | |
27 | 31 | |
28 | 32 | public Crediter() { |
29 | 33 | // Required empty public constructor |
... | ... | @@ -44,6 +48,7 @@ public class Crediter extends FragmentNFC { |
44 | 48 | View view = inflater.inflate(R.layout.fragment_crediter, container, false); |
45 | 49 | mMoneyEditText = (EditText) view.findViewById(R.id.crediter_ask_money); |
46 | 50 | mProgressBar = (ProgressBar) view.findViewById(R.id.crediter_progress_bar); |
51 | + coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.crediter_layout); | |
47 | 52 | return view; |
48 | 53 | } |
49 | 54 | |
... | ... | @@ -62,11 +67,17 @@ public class Crediter extends FragmentNFC { |
62 | 67 | |
63 | 68 | @Override |
64 | 69 | public void processNFC(String idCardUser) { |
70 | + if(mMoneyEditText.getText().toString().isEmpty()){ | |
71 | + mMoneyEditText.setError(getString(R.string.error_enter_debit)); | |
72 | + return; | |
73 | + } | |
65 | 74 | mProgressBar.setVisibility(View.VISIBLE); |
75 | + mMoneyEditText.setVisibility(View.GONE); | |
66 | 76 | JSONObject jsonObject = new JSONObject(); |
67 | 77 | try { |
68 | - jsonObject.put("participant", 1); | |
69 | - jsonObject.put("acteur", 2); | |
78 | + Personne p = new Personne(); | |
79 | + p.setIdCarte(idCardUser); | |
80 | + jsonObject.put("participant", p); | |
70 | 81 | jsonObject.put("prix", Double.parseDouble(mMoneyEditText.getText().toString())); |
71 | 82 | } catch (JSONException e){ |
72 | 83 | e.printStackTrace(); |
... | ... | @@ -75,11 +86,16 @@ public class Crediter extends FragmentNFC { |
75 | 86 | @Override |
76 | 87 | public void onResponse(JSONObject response) { |
77 | 88 | mProgressBar.setVisibility(View.GONE); |
89 | + mMoneyEditText.setText(""); | |
90 | + mMoneyEditText.setVisibility(View.VISIBLE); | |
91 | + Snackbar.make(coordinatorLayout, "DONE", Snackbar.LENGTH_LONG).show(); | |
78 | 92 | } |
79 | 93 | }, new Response.ErrorListener() { |
80 | 94 | @Override |
81 | 95 | public void onErrorResponse(VolleyError error) { |
82 | 96 | mProgressBar.setVisibility(View.GONE); |
97 | + mMoneyEditText.setVisibility(View.VISIBLE); | |
98 | + Snackbar.make(coordinatorLayout, error.getMessage(), Snackbar.LENGTH_LONG).show(); | |
83 | 99 | } |
84 | 100 | } |
85 | 101 | ); | ... | ... |
app/src/main/java/net/plil/clubinfo/etunicorn/app/debit/Debiter.java
... | ... | @@ -2,10 +2,12 @@ package net.plil.clubinfo.etunicorn.app.debit; |
2 | 2 | |
3 | 3 | import android.content.Context; |
4 | 4 | import android.os.Bundle; |
5 | +import android.support.design.widget.CoordinatorLayout; | |
6 | +import android.support.design.widget.Snackbar; | |
7 | +import android.support.design.widget.TextInputEditText; | |
5 | 8 | import android.view.LayoutInflater; |
6 | 9 | import android.view.View; |
7 | 10 | import android.view.ViewGroup; |
8 | -import android.widget.EditText; | |
9 | 11 | import android.widget.ProgressBar; |
10 | 12 | |
11 | 13 | import com.android.volley.Request; |
... | ... | @@ -15,6 +17,7 @@ import com.android.volley.toolbox.JsonObjectRequest; |
15 | 17 | |
16 | 18 | import net.plil.clubinfo.etunicorn.R; |
17 | 19 | import net.plil.clubinfo.etunicorn.app.FragmentNFC; |
20 | +import net.plil.clubinfo.etunicorn.data.Personne; | |
18 | 21 | import net.plil.clubinfo.etunicorn.utils.VolleyUtils; |
19 | 22 | |
20 | 23 | import org.json.JSONException; |
... | ... | @@ -23,9 +26,9 @@ import org.json.JSONObject; |
23 | 26 | public class Debiter extends FragmentNFC { |
24 | 27 | |
25 | 28 | |
26 | - private EditText mMoneyEditText; | |
29 | + private TextInputEditText mMoneyEditText; | |
27 | 30 | private ProgressBar mProgressBar; |
28 | - | |
31 | + private CoordinatorLayout coordinatorLayout; | |
29 | 32 | |
30 | 33 | public Debiter() { |
31 | 34 | // Required empty public constructor |
... | ... | @@ -48,7 +51,8 @@ public class Debiter extends FragmentNFC { |
48 | 51 | Bundle savedInstanceState) { |
49 | 52 | View view = inflater.inflate(R.layout.fragment_debiter, container, false); |
50 | 53 | mProgressBar = (ProgressBar) view.findViewById(R.id.debiter_progress); |
51 | - mMoneyEditText = (EditText) view.findViewById(R.id.debiter_edit_text_money); | |
54 | + mMoneyEditText = (TextInputEditText) view.findViewById(R.id.debiter_edit_text_money); | |
55 | + coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.debiter_layout); | |
52 | 56 | return view; |
53 | 57 | } |
54 | 58 | |
... | ... | @@ -64,25 +68,39 @@ public class Debiter extends FragmentNFC { |
64 | 68 | |
65 | 69 | @Override |
66 | 70 | public void processNFC(String iDCardUser) { |
71 | + if(mMoneyEditText.getText().toString().isEmpty()){ | |
72 | + mMoneyEditText.setError(getString(R.string.error_enter_debit)); | |
73 | + return; | |
74 | + } | |
75 | + mMoneyEditText.setVisibility(View.GONE); | |
67 | 76 | mProgressBar.setVisibility(View.VISIBLE); |
68 | 77 | JSONObject jsonObject = new JSONObject(); |
69 | 78 | //TODO verifier champ complet avant de construire la requete |
70 | 79 | try { |
71 | - jsonObject.put("participant", 1); | |
72 | - jsonObject.put("acteur", 2); | |
73 | - jsonObject.put("prix", Double.parseDouble(mMoneyEditText.getText().toString())); | |
80 | + Personne p = new Personne(); | |
81 | + p.setIdCarte(iDCardUser); | |
82 | + jsonObject.put("participant", p); | |
83 | + jsonObject.put("prix", -Double.parseDouble(mMoneyEditText.getText().toString())); | |
84 | + mMoneyEditText.setError(null); | |
74 | 85 | } catch (JSONException e){ |
75 | 86 | e.printStackTrace(); |
76 | 87 | } |
77 | - JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/debit" ,jsonObject , new Response.Listener<JSONObject>() { | |
88 | + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, VolleyUtils.baseUri + "/transaction/credit" ,jsonObject , new Response.Listener<JSONObject>() { | |
78 | 89 | @Override |
79 | 90 | public void onResponse(JSONObject response) { |
80 | 91 | mProgressBar.setVisibility(View.GONE); |
92 | + mMoneyEditText.setText(""); | |
93 | + mMoneyEditText.setVisibility(View.VISIBLE); | |
94 | + Snackbar.make(coordinatorLayout, "DONE", Snackbar.LENGTH_LONG).show(); | |
95 | + | |
81 | 96 | } |
82 | 97 | }, new Response.ErrorListener() { |
83 | 98 | @Override |
84 | 99 | public void onErrorResponse(VolleyError error) { |
85 | 100 | mProgressBar.setVisibility(View.GONE); |
101 | + mMoneyEditText.setVisibility(View.VISIBLE); | |
102 | + Snackbar.make(coordinatorLayout, error.getMessage(), Snackbar.LENGTH_LONG).show(); | |
103 | + | |
86 | 104 | } |
87 | 105 | } |
88 | 106 | ); | ... | ... |
app/src/main/java/net/plil/clubinfo/etunicorn/utils/VolleyUtils.java
... | ... | @@ -12,7 +12,7 @@ import com.android.volley.toolbox.Volley; |
12 | 12 | |
13 | 13 | public class VolleyUtils { |
14 | 14 | |
15 | - private static final String uri = "http://blablapatate"; | |
15 | + private static final String uri = "http://192.168.0.21:8080/"; | |
16 | 16 | private static final String version = "v1"; |
17 | 17 | |
18 | 18 | public static final String baseUri = VolleyUtils.uri + VolleyUtils.version ; | ... | ... |
app/src/main/res/layout/fragment_crediter.xml
1 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
1 | +<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | 2 | xmlns:tools="http://schemas.android.com/tools" |
3 | 3 | android:layout_width="match_parent" |
4 | 4 | android:layout_height="match_parent" |
5 | - tools:context="net.plil.clubinfo.etunicorn.app.credit.Crediter"> | |
6 | - | |
7 | - <EditText | |
8 | - android:inputType="numberSigned|numberDecimal" | |
9 | - android:layout_width="wrap_content" | |
10 | - android:layout_height="wrap_content" | |
11 | - android:hint="@string/enter_money" | |
12 | - android:id="@+id/crediter_ask_money" | |
13 | - android:ems="10" | |
14 | - android:layout_centerVertical="true" | |
15 | - android:layout_centerHorizontal="true" | |
16 | - android:gravity="center"/> | |
17 | - | |
18 | - <ProgressBar | |
19 | - style="?android:attr/progressBarStyle" | |
20 | - android:layout_width="wrap_content" | |
21 | - android:layout_height="wrap_content" | |
22 | - android:layout_alignParentTop="true" | |
23 | - android:layout_alignParentStart="true" | |
24 | - android:id="@+id/crediter_progress_bar" | |
25 | - android:layout_alignParentBottom="true" | |
26 | - android:layout_alignParentEnd="true" | |
27 | - android:visibility="gone"/> | |
28 | - | |
29 | -</RelativeLayout> | |
5 | + tools:context="net.plil.clubinfo.etunicorn.app.credit.Crediter" | |
6 | + android:id="@+id/crediter_layout"> | |
7 | + <RelativeLayout | |
8 | + android:layout_width="match_parent" | |
9 | + android:layout_height="match_parent"> | |
10 | + | |
11 | + <android.support.design.widget.TextInputLayout | |
12 | + android:layout_width="wrap_content" | |
13 | + android:layout_height="wrap_content" | |
14 | + android:layout_centerVertical="true" | |
15 | + android:layout_centerHorizontal="true"> | |
16 | + | |
17 | + <android.support.design.widget.TextInputEditText | |
18 | + android:inputType="numberDecimal" | |
19 | + android:layout_width="wrap_content" | |
20 | + android:layout_height="wrap_content" | |
21 | + android:hint="@string/enter_money" | |
22 | + android:id="@+id/crediter_ask_money" | |
23 | + android:ems="10" | |
24 | + android:gravity="center"/> | |
25 | + | |
26 | + </android.support.design.widget.TextInputLayout> | |
27 | + | |
28 | + <ProgressBar | |
29 | + style="?android:attr/progressBarStyleLarge" | |
30 | + android:layout_width="wrap_content" | |
31 | + android:layout_height="wrap_content" | |
32 | + android:id="@+id/crediter_progress_bar" | |
33 | + android:visibility="gone" | |
34 | + android:layout_centerVertical="true" | |
35 | + android:layout_centerHorizontal="true" /> | |
36 | + | |
37 | + </RelativeLayout> | |
38 | + | |
39 | + | |
40 | + | |
41 | +</android.support.design.widget.CoordinatorLayout> | ... | ... |
app/src/main/res/layout/fragment_debiter.xml
1 | -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
1 | +<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
2 | 2 | xmlns:tools="http://schemas.android.com/tools" |
3 | 3 | android:layout_width="match_parent" |
4 | 4 | android:layout_height="match_parent" |
5 | - tools:context="net.plil.clubinfo.etunicorn.app.debit.Debiter"> | |
6 | - | |
7 | - | |
8 | - <EditText | |
9 | - android:inputType="numberSigned|numberDecimal" | |
10 | - android:ems="10" | |
11 | - android:id="@+id/debiter_edit_text_money" | |
12 | - android:gravity="center" | |
13 | - android:layout_width="wrap_content" | |
14 | - android:layout_height="wrap_content" | |
15 | - android:layout_centerVertical="true" | |
16 | - android:layout_centerHorizontal="true" | |
17 | - android:hint="@string/enter_money" | |
18 | - android:maxLines="1" /> | |
19 | - | |
20 | - <ProgressBar | |
21 | - style="?android:attr/progressBarStyle" | |
22 | - android:layout_width="wrap_content" | |
23 | - android:layout_height="wrap_content" | |
24 | - android:layout_alignParentTop="true" | |
25 | - android:layout_alignParentStart="true" | |
26 | - android:id="@+id/debiter_progress" | |
27 | - android:layout_alignParentBottom="true" | |
28 | - android:layout_alignParentEnd="true" | |
29 | - android:visibility="gone"/> | |
30 | -</RelativeLayout> | |
5 | + tools:context="net.plil.clubinfo.etunicorn.app.credit.Crediter" | |
6 | + android:id="@+id/debiter_layout"> | |
7 | + | |
8 | + <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
9 | + xmlns:tools="http://schemas.android.com/tools" | |
10 | + android:layout_width="match_parent" | |
11 | + android:layout_height="match_parent" | |
12 | + tools:context="net.plil.clubinfo.etunicorn.app.debit.Debiter"> | |
13 | + | |
14 | + | |
15 | + <android.support.design.widget.TextInputLayout | |
16 | + android:layout_width="wrap_content" | |
17 | + android:layout_height="wrap_content" | |
18 | + android:layout_centerVertical="true" | |
19 | + android:layout_centerHorizontal="true" | |
20 | + > | |
21 | + | |
22 | + <android.support.design.widget.TextInputEditText | |
23 | + android:inputType="numberDecimal" | |
24 | + android:ems="10" | |
25 | + android:id="@+id/debiter_edit_text_money" | |
26 | + android:layout_width="wrap_content" | |
27 | + android:layout_height="wrap_content" | |
28 | + android:gravity="center" | |
29 | + android:hint="@string/enter_money" | |
30 | + android:maxLines="1" /> | |
31 | + | |
32 | + </android.support.design.widget.TextInputLayout> | |
33 | + | |
34 | + <ProgressBar | |
35 | + style="?android:attr/progressBarStyleLarge" | |
36 | + android:layout_width="wrap_content" | |
37 | + android:layout_height="wrap_content" | |
38 | + android:layout_centerVertical="true" | |
39 | + android:layout_centerHorizontal="true" | |
40 | + android:id="@+id/debiter_progress" | |
41 | + android:visibility="gone"/> | |
42 | + | |
43 | + </RelativeLayout> | |
44 | + | |
45 | + | |
46 | +</android.support.design.widget.CoordinatorLayout> | ... | ... |
app/src/main/res/values-fr/strings.xml
... | ... | @@ -40,4 +40,5 @@ |
40 | 40 | <string name="create_personne_login">Login</string> |
41 | 41 | <string name="create_personne_naissance">Date de naissance</string> |
42 | 42 | <string name="create_personne_role">Role</string> |
43 | + <string name="error_enter_debit">Veuillez entrer une valeur avant d\'utiliser la carte NFC</string> | |
43 | 44 | </resources> |
44 | 45 | \ No newline at end of file | ... | ... |
app/src/main/res/values/strings.xml
... | ... | @@ -41,4 +41,5 @@ |
41 | 41 | <string name="create_personne_carte">Card ID</string> |
42 | 42 | <string name="create_personne_naissance">Birthday</string> |
43 | 43 | <string name="create_personne_role">Role</string> |
44 | + <string name="error_enter_debit">Please enter a value before using your NFC card</string> | |
44 | 45 | </resources> | ... | ... |