Debiter.java
4.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
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.JsonObjectRequest;
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.data.Personne;
import net.plil.clubinfo.etunicorn.utils.VolleyUtils;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
public class Debiter extends Fragment implements NFCSupport {
private TextInputEditText mMoneyEditText;
private ProgressBar mProgressBar;
private CoordinatorLayout coordinatorLayout;
public Debiter() {
// Required empty public constructor
}
public static Debiter newInstance() {
return new Debiter();
}
@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_debiter, container, false);
mProgressBar = (ProgressBar) view.findViewById(R.id.debiter_progress);
mMoneyEditText = (TextInputEditText) view.findViewById(R.id.debiter_edit_text_money);
coordinatorLayout = (CoordinatorLayout) view.findViewById(R.id.debiter_layout);
return view;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
}
@Override
public void onDetach() {
super.onDetach();
}
@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 {
Personne p = new Personne();
p.setCarte(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/credit" ,jsonObject , new Response.Listener<JSONObject>() {
@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();
}
})
{
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", MainActivity.session.getToken());
return headers;
}};
jsonObjectRequest.setTag(Debiter.class);
VolleyUtils.getInstance(getContext()).addToRequestQueue(jsonObjectRequest);
}
@Override
public void onStop() {
VolleyUtils.getInstance(getContext()).getRequestQueue().cancelAll(Debiter.class);
super.onStop();
}
}