c8059613
JLo'w
Re-fonte de l'app...
|
1
2
|
package com.example.app_10p5;
|
e9b6c14d
JLo'w
Passage au suppor...
|
3
|
import android.app.Activity;
|
3c5d3089
JLo'w
Work in progress ...
|
4
5
|
import android.app.FragmentManager;
import android.app.FragmentTransaction;
|
2681581a
JLo'w
menu pour changer...
|
6
|
import android.content.Context;
|
c8059613
JLo'w
Re-fonte de l'app...
|
7
|
import android.content.Intent;
|
e274d65a
JLo'w
Meilleur vérifica...
|
8
|
import android.content.SharedPreferences;
|
2681581a
JLo'w
menu pour changer...
|
9
|
import android.graphics.drawable.BitmapDrawable;
|
0aec73b6
JLo'w
Petit changement ...
|
10
|
import android.graphics.drawable.ColorDrawable;
|
c8059613
JLo'w
Re-fonte de l'app...
|
11
|
import android.os.Bundle;
|
e274d65a
JLo'w
Meilleur vérifica...
|
12
|
import android.preference.PreferenceManager;
|
c8059613
JLo'w
Re-fonte de l'app...
|
13
|
import android.support.v4.view.ViewPager;
|
e274d65a
JLo'w
Meilleur vérifica...
|
14
|
import android.text.TextUtils;
|
2681581a
JLo'w
menu pour changer...
|
15
16
|
import android.view.Gravity;
import android.view.LayoutInflater;
|
0aec73b6
JLo'w
Petit changement ...
|
17
18
19
|
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
|
c8059613
JLo'w
Re-fonte de l'app...
|
20
|
import android.view.View;
|
2681581a
JLo'w
menu pour changer...
|
21
22
|
import android.view.ViewGroup;
import android.widget.Button;
|
520cecde
JLo'w
Un petit plus, un...
|
23
|
import android.widget.EditText;
|
2681581a
JLo'w
menu pour changer...
|
24
25
26
27
|
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.PopupWindow;
|
93f90e35
JLo'w
NFC et foreground
|
28
29
|
import android.widget.Toast;
|
c1f92981
JLo'w
Implémentation de...
|
30
31
32
|
import org.json.JSONObject;
import java.net.URL;
|
e274d65a
JLo'w
Meilleur vérifica...
|
33
|
import java.net.URLEncoder;
|
c1f92981
JLo'w
Implémentation de...
|
34
35
|
import java.util.HashMap;
|
c8059613
JLo'w
Re-fonte de l'app...
|
36
37
38
39
|
/**
* Created by beaus on 24/04/2016.
*/
|
3c5d3089
JLo'w
Work in progress ...
|
40
|
public class MainActivite extends Activity implements ASyncResponse, main_tab_frag.OnFragmentInteractionListener {
|
c8059613
JLo'w
Re-fonte de l'app...
|
41
|
|
520cecde
JLo'w
Un petit plus, un...
|
42
43
44
45
46
47
|
public static final int STATE_RIEN = 0;
public static final int STATE_COMMANDE = 3;
public static final int STATE_VIDANGE = 4;
public static final int STATE_RECHARGEMENT = 2;
public static final int STATE_CREATION_COMPTE = 1;
public static final int STATE_CONNEXION = 5;
|
e274d65a
JLo'w
Meilleur vérifica...
|
48
|
|
520cecde
JLo'w
Un petit plus, un...
|
49
50
51
52
|
public static final long EXPIRATION = 1000*60*10;
private int mState;
private String mToken;
|
8cd8911a
JLo'w
Connexion enfin f...
|
53
|
private int mDroit;
|
520cecde
JLo'w
Un petit plus, un...
|
54
|
private long mTimeToken;
|
8cd8911a
JLo'w
Connexion enfin f...
|
55
|
private String mUser;
|
520cecde
JLo'w
Un petit plus, un...
|
56
|
|
c8059613
JLo'w
Re-fonte de l'app...
|
57
58
59
60
|
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
|
e274d65a
JLo'w
Meilleur vérifica...
|
61
|
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
|
520cecde
JLo'w
Un petit plus, un...
|
62
|
|
efd095eb
JLo'w
No more joke
|
63
|
setTitle(getResources().getString(R.string.app_name));
|
fc1fed0d
JLo'w
Restons cohérent
|
64
|
|
520cecde
JLo'w
Un petit plus, un...
|
65
66
|
mState = STATE_RIEN;
mTimeToken = -1;
|
fc1fed0d
JLo'w
Restons cohérent
|
67
|
mToken = null;
|
520cecde
JLo'w
Un petit plus, un...
|
68
|
|
0aec73b6
JLo'w
Petit changement ...
|
69
70
|
getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorPrimary)));
|
2681581a
JLo'w
menu pour changer...
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
if(savedInstanceState == null){
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
main_tab_frag fragment = new main_tab_frag();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
else{
mTimeToken = savedInstanceState.getLong("timeToken");
mToken = savedInstanceState.getString("token");
mState = savedInstanceState.getInt("state");
mUser = savedInstanceState.getString("user");
mDroit = savedInstanceState.getInt("droit");
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
85
86
|
}
|
c66109e1
JLo'w
Ajout du code des...
|
87
|
@Override
|
0aec73b6
JLo'w
Petit changement ...
|
88
89
90
91
92
93
94
95
96
|
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
|
e274d65a
JLo'w
Meilleur vérifica...
|
97
98
|
if(item.getItemId() == R.id.action_settings){
getFragmentManager().beginTransaction().replace(R.id.fragment_container, new SettingsFragment()).addToBackStack("settings").commit();
|
2681581a
JLo'w
menu pour changer...
|
99
|
}
|
28dc4009
JLo'w
Déconnexion !!!!!
|
100
101
102
|
else if(item.getItemId() == R.id.action_disconnect){
disconnect();
}
|
2681581a
JLo'w
menu pour changer...
|
103
104
|
return super.onOptionsItemSelected(item);
|
0aec73b6
JLo'w
Petit changement ...
|
105
106
107
|
}
@Override
|
3c5d3089
JLo'w
Work in progress ...
|
108
109
110
111
112
|
public void onFragmentInteraction(String s){
}
@Override
|
c66109e1
JLo'w
Ajout du code des...
|
113
114
115
116
117
118
119
120
121
122
|
public void onSaveInstanceState(Bundle savedInstanceState){
savedInstanceState.putString("token", mToken);
savedInstanceState.putInt("state", mState);
savedInstanceState.putString("user", mUser);
savedInstanceState.putInt("droit", mDroit);
savedInstanceState.putLong("timeToken", mTimeToken);
super.onSaveInstanceState(savedInstanceState);
}
|
c66109e1
JLo'w
Ajout du code des...
|
123
|
public void valideCreationCompte(View v){
|
e274d65a
JLo'w
Meilleur vérifica...
|
124
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
c66109e1
JLo'w
Ajout du code des...
|
125
126
127
|
EditText champMontant = (EditText) findViewById(R.id.creation_montant);
float montant = 0.0f;
|
e274d65a
JLo'w
Meilleur vérifica...
|
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
if(!TextUtils.isEmpty(champMontant.getText().toString())){
try{
montant = Float.parseFloat(champMontant.getText().toString());
}
catch (Throwable t){
Toast.makeText(this, "Remplir le champ montant avec un nombre: " + t.toString(), Toast.LENGTH_LONG).show();
}
if(mDroit >= 1){
if((montant > 0.0f) && (montant < 200.0f)){
mState = STATE_CREATION_COMPTE;
champMontant.setText(null);
Intent intent = new Intent(this, CarteActivite.class);
intent.putExtra("token", mToken);
intent.putExtra("state", mState);
intent.putExtra("montant", montant);
startActivityForResult(intent, mState);
}
else{
Toast.makeText(this, "Valeur incorrecte.", Toast.LENGTH_LONG).show();
}
}
else{
Toast.makeText(this, "Droit insuffisant.", Toast.LENGTH_LONG).show();
}
|
c66109e1
JLo'w
Ajout du code des...
|
154
155
|
}
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
156
|
champMontant.setError("Montant requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
157
158
159
|
}
}
else{
|
28dc4009
JLo'w
Déconnexion !!!!!
|
160
|
disconnect();
|
c66109e1
JLo'w
Ajout du code des...
|
161
162
163
|
}
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
164
165
|
public void valideCommande(View v)
{
|
e274d65a
JLo'w
Meilleur vérifica...
|
166
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
520cecde
JLo'w
Un petit plus, un...
|
167
168
|
EditText champMontant = (EditText) findViewById(R.id.commande_prix);
EditText champQuantite = (EditText) findViewById(R.id.commande_quantite);
|
c66109e1
JLo'w
Ajout du code des...
|
169
170
171
|
float montant = 0.0f;
int quantite = 0;
|
e274d65a
JLo'w
Meilleur vérifica...
|
172
173
|
//TODO: gérer le XOR de pute
|
c66109e1
JLo'w
Ajout du code des...
|
174
175
176
177
178
179
180
181
|
try{
montant = Float.parseFloat(champMontant.getText().toString());
quantite = Integer.parseInt(champQuantite.getText().toString());
}
catch (Throwable t)
{
Toast.makeText(this, "Remplir les champs avec des nombres: " + t.toString(), Toast.LENGTH_LONG).show();
}
|
520cecde
JLo'w
Un petit plus, un...
|
182
|
|
c66109e1
JLo'w
Ajout du code des...
|
183
|
if ((montant > 0.0f) && (montant < 200.0f) && (quantite > 0) && (mDroit >= 1)) {
|
520cecde
JLo'w
Un petit plus, un...
|
184
|
mState = STATE_COMMANDE;
|
e274d65a
JLo'w
Meilleur vérifica...
|
185
186
|
champMontant.setText(null);
champQuantite.setText(null);
|
814b5a6f
JLo'w
On vide les champ...
|
187
|
|
520cecde
JLo'w
Un petit plus, un...
|
188
189
190
191
192
193
194
|
Intent intent = new Intent(this, CarteActivite.class);
intent.putExtra("token", mToken);
intent.putExtra("state", mState);
intent.putExtra("montant", montant);
intent.putExtra("quantite", quantite);
startActivityForResult(intent, mState);
}
|
c66109e1
JLo'w
Ajout du code des...
|
195
196
197
|
else{
Toast.makeText(this, "Valeur incorrecte ou droit insuffisant.", Toast.LENGTH_LONG).show();
}
|
520cecde
JLo'w
Un petit plus, un...
|
198
199
|
}
else{
|
28dc4009
JLo'w
Déconnexion !!!!!
|
200
|
disconnect();
|
520cecde
JLo'w
Un petit plus, un...
|
201
202
203
204
205
|
}
}
public void valideRechargement(View v)
{
|
e274d65a
JLo'w
Meilleur vérifica...
|
206
207
|
System.out.println(TextUtils.getTrimmedLength(mToken));
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
c66109e1
JLo'w
Ajout du code des...
|
208
209
210
|
EditText champMontant = (EditText) findViewById(R.id.rechargement_champ_montant);
float montant = 0.0f;
|
e274d65a
JLo'w
Meilleur vérifica...
|
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
if(!TextUtils.isEmpty(champMontant.getText().toString())){
try{
montant = Float.parseFloat(champMontant.getText().toString());
}
catch (Throwable t){
Toast.makeText(this, "Remplir le champ montant avec un nombre: " + t.toString(), Toast.LENGTH_LONG).show();
}
if(mDroit >= 2){
if((montant > 0.0f) && (montant < 200.0f)){
mState = STATE_RECHARGEMENT;
champMontant.setText(null);
Intent intent = new Intent(this, CarteActivite.class);
intent.putExtra("token", mToken);
intent.putExtra("state", mState);
intent.putExtra("montant", montant);
startActivityForResult(intent, mState);
}
else{
Toast.makeText(this, "Valeur incorrecte.", Toast.LENGTH_LONG).show();
}
}
else{
Toast.makeText(this, "Droit insuffisant.", Toast.LENGTH_LONG).show();
}
|
c66109e1
JLo'w
Ajout du code des...
|
237
238
|
}
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
239
|
champMontant.setError("Montant requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
240
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
241
242
|
}
else{
|
28dc4009
JLo'w
Déconnexion !!!!!
|
243
|
disconnect();
|
520cecde
JLo'w
Un petit plus, un...
|
244
245
246
247
248
249
250
251
|
}
}
public void valideConnection(View v)
{
EditText viewUser = (EditText) findViewById(R.id.connection_username);
EditText viewPsw = (EditText) findViewById(R.id.connection_password);
|
c1f92981
JLo'w
Implémentation de...
|
252
253
254
|
String user = viewUser.getText().toString();
String password = viewPsw.getText().toString();
|
e274d65a
JLo'w
Meilleur vérifica...
|
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
if (!TextUtils.isEmpty(user)) {
if(!TextUtils.isEmpty(password)){
mState = STATE_CONNEXION;
viewUser.setText(null);
viewPsw.setText(null);
try{
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
URL url = new URL(settings.getString("server_address", null) + "api/utilisateur/connexion");
HashMap<String, String> param = new HashMap<String, String>();
param.put("login", URLEncoder.encode(user, "UTF-8"));
param.put("mdp", URLEncoder.encode(password, "UTF-8"));
NetworkThread nt = new NetworkThread(url, param);
nt.delegate = this;
nt.execute();
}
catch (Throwable t) {
Toast.makeText(this, "Erreur: " + t.toString(), Toast.LENGTH_LONG).show();
System.out.println("Exception: " + t.toString());
}
|
c1f92981
JLo'w
Implémentation de...
|
276
|
}
|
e274d65a
JLo'w
Meilleur vérifica...
|
277
278
|
else {
viewPsw.setError("Mot de passe requis.");
|
c1f92981
JLo'w
Implémentation de...
|
279
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
280
|
}
|
c66109e1
JLo'w
Ajout du code des...
|
281
|
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
282
|
viewUser.setError("Utilisateur requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
283
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
284
|
}
|
8d573e63
JLo'w
Mise en place de ...
|
285
286
|
public void valideVidange(View v){
|
e274d65a
JLo'w
Meilleur vérifica...
|
287
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
8d573e63
JLo'w
Mise en place de ...
|
288
289
290
291
292
293
294
295
296
297
298
299
300
|
if((mDroit >= 2)){
mState = STATE_VIDANGE;
Intent intent = new Intent(this, CarteActivite.class);
intent.putExtra("token", mToken);
intent.putExtra("state", mState);
startActivityForResult(intent, mState);
}
else{
Toast.makeText(this, "Droit insuffisant.", Toast.LENGTH_LONG).show();
}
}
else{
|
28dc4009
JLo'w
Déconnexion !!!!!
|
301
|
disconnect();
|
8d573e63
JLo'w
Mise en place de ...
|
302
303
|
}
}
|
520cecde
JLo'w
Un petit plus, un...
|
304
305
306
307
|
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
//TODO: faire des choses avec ca
|
4ef24041
JLo'w
Retour du JSONObj...
|
308
|
|
814b5a6f
JLo'w
On vide les champ...
|
309
310
|
mState = STATE_RIEN;
|
4ef24041
JLo'w
Retour du JSONObj...
|
311
312
313
314
315
316
|
try{
JSONObject json = new JSONObject(data.getStringExtra("json"));
Toast.makeText(this, "Status: " + json.getString("status"), Toast.LENGTH_SHORT).show();
}
catch (Throwable t){
|
2681581a
JLo'w
menu pour changer...
|
317
|
Toast.makeText(this, "Retour", Toast.LENGTH_SHORT).show();
|
4ef24041
JLo'w
Retour du JSONObj...
|
318
319
320
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
|
switch (requestCode) {
case STATE_COMMANDE:
break;
case STATE_CONNEXION:
break;
case STATE_CREATION_COMPTE:
break;
case STATE_RECHARGEMENT:
break;
case STATE_VIDANGE:
break;
case STATE_RIEN:
default:
Toast.makeText(this, "WTF, le cancer est dans l'application!!", Toast.LENGTH_LONG).show();
break;
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
337
|
}
|
93f90e35
JLo'w
NFC et foreground
|
338
|
|
c1f92981
JLo'w
Implémentation de...
|
339
340
341
|
/* Retour du network thread */
@Override
public void processFinish(JSONObject output) {
|
96cf88d2
JLo'w
Réception de JSON...
|
342
343
|
if(output.length() != 0){
try{
|
8cd8911a
JLo'w
Connexion enfin f...
|
344
345
|
if(output.get("status").toString().equals("ok")){
mToken = output.get("jeton").toString();
|
96cf88d2
JLo'w
Réception de JSON...
|
346
|
mTimeToken = System.currentTimeMillis();
|
8cd8911a
JLo'w
Connexion enfin f...
|
347
348
349
|
mDroit = output.getInt("droit");
mUser = output.get("login").toString();
Toast.makeText(this, "Bonjour " + mUser + " vous êtes bien connecté pour " + EXPIRATION / (1000 * 60) + " minutes.", Toast.LENGTH_LONG).show();
|
2681581a
JLo'w
menu pour changer...
|
350
351
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(1);
|
96cf88d2
JLo'w
Réception de JSON...
|
352
353
354
355
356
357
|
}
else{
Toast.makeText(this, "Erreur dans la requête: " + output.get("status"), Toast.LENGTH_LONG).show();
}
}
catch(Throwable t){
|
8cd8911a
JLo'w
Connexion enfin f...
|
358
|
Toast.makeText(this, "WTF, le cancer est dans l'application!!" + t.toString(), Toast.LENGTH_LONG).show();
|
96cf88d2
JLo'w
Réception de JSON...
|
359
360
361
362
363
|
}
}
else{
Toast.makeText(this, "Impossible de se connecter au serveur", Toast.LENGTH_LONG).show();
}
|
c1f92981
JLo'w
Implémentation de...
|
364
|
}
|
3c5d3089
JLo'w
Work in progress ...
|
365
366
367
368
369
370
371
372
|
public String getToken(){
return mToken;
}
public long getTimeToken(){
return mTimeToken;
}
|
28dc4009
JLo'w
Déconnexion !!!!!
|
373
374
375
376
377
|
public void disconnect(){
mToken = null;
mDroit = 0;
mUser = null;
|
fc1fed0d
JLo'w
Restons cohérent
|
378
|
mTimeToken = -1;
|
28dc4009
JLo'w
Déconnexion !!!!!
|
379
380
381
382
383
|
Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_SHORT).show();
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(0);
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
384
|
}
|