Blame view

PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java 19.2 KB
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;
76de4d29   JLo'w   Connexion et NFC ...
4
  import android.app.Fragment;
3c5d3089   JLo'w   Work in progress ...
5
6
  import android.app.FragmentManager;
  import android.app.FragmentTransaction;
76de4d29   JLo'w   Connexion et NFC ...
7
  import android.app.PendingIntent;
c8059613   JLo'w   Re-fonte de l'app...
8
  import android.content.Intent;
e274d65a   JLo'w   Meilleur vérifica...
9
  import android.content.SharedPreferences;
0aec73b6   JLo'w   Petit changement ...
10
  import android.graphics.drawable.ColorDrawable;
76de4d29   JLo'w   Connexion et NFC ...
11
  import android.nfc.NfcAdapter;
c8059613   JLo'w   Re-fonte de l'app...
12
  import android.os.Bundle;
e274d65a   JLo'w   Meilleur vérifica...
13
  import android.preference.PreferenceManager;
76de4d29   JLo'w   Connexion et NFC ...
14
  import android.support.design.widget.Snackbar;
e274d65a   JLo'w   Meilleur vérifica...
15
  import android.text.TextUtils;
0aec73b6   JLo'w   Petit changement ...
16
17
18
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
c8059613   JLo'w   Re-fonte de l'app...
19
  import android.view.View;
76de4d29   JLo'w   Connexion et NFC ...
20
  import android.widget.EditText;;
93f90e35   JLo'w   NFC et foreground
21
22
  import android.widget.Toast;
  
c1f92981   JLo'w   Implémentation de...
23
24
25
  import org.json.JSONObject;
  
  import java.net.URL;
e274d65a   JLo'w   Meilleur vérifica...
26
  import java.net.URLEncoder;
c1f92981   JLo'w   Implémentation de...
27
28
  import java.util.HashMap;
  
c8059613   JLo'w   Re-fonte de l'app...
29
30
  
  /**
fde33444   JLo'w   Update header ave...
31
   * Created by Jean-loup Beaussart on 24/04/2016.
c8059613   JLo'w   Re-fonte de l'app...
32
   */
3c5d3089   JLo'w   Work in progress ...
33
  public class MainActivite extends Activity implements ASyncResponse, main_tab_frag.OnFragmentInteractionListener {
c8059613   JLo'w   Re-fonte de l'app...
34
  
520cecde   JLo'w   Un petit plus, un...
35
36
37
38
39
40
      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;
2596297c   JLo'w   Ajout d'annuler e...
41
42
      public static final int STATE_ANNULER= 6;
      public static final int STATE_REFAIRE = 7;
e274d65a   JLo'w   Meilleur vérifica...
43
  
520cecde   JLo'w   Un petit plus, un...
44
45
46
47
      public static final long EXPIRATION = 1000*60*10;
  
      private int mState;
      private String mToken;
8cd8911a   JLo'w   Connexion enfin f...
48
      private int mDroit;
520cecde   JLo'w   Un petit plus, un...
49
      private long mTimeToken;
8cd8911a   JLo'w   Connexion enfin f...
50
      private String mUser;
520cecde   JLo'w   Un petit plus, un...
51
  
76de4d29   JLo'w   Connexion et NFC ...
52
53
      private NfcAdapter mNfcAdapter;
  
c8059613   JLo'w   Re-fonte de l'app...
54
55
56
57
      @Override
      protected void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.layout_main);
e274d65a   JLo'w   Meilleur vérifica...
58
          PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
520cecde   JLo'w   Un petit plus, un...
59
  
efd095eb   JLo'w   No more joke
60
          setTitle(getResources().getString(R.string.app_name));
fc1fed0d   JLo'w   Restons cohérent
61
  
520cecde   JLo'w   Un petit plus, un...
62
63
          mState = STATE_RIEN;
          mTimeToken = -1;
b6313643   JLo'w   Déconnexion + ges...
64
          mToken = "";
520cecde   JLo'w   Un petit plus, un...
65
  
0aec73b6   JLo'w   Petit changement ...
66
          getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorPrimary)));
76de4d29   JLo'w   Connexion et NFC ...
67
          mNfcAdapter = NfcAdapter.getDefaultAdapter(getApplicationContext());
0aec73b6   JLo'w   Petit changement ...
68
  
2681581a   JLo'w   menu pour changer...
69
70
71
          if(savedInstanceState == null){
              FragmentManager fragmentManager = getFragmentManager();
              FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
76de4d29   JLo'w   Connexion et NFC ...
72
              ConnectionFragment fragment = new ConnectionFragment();
2681581a   JLo'w   menu pour changer...
73
74
75
76
77
78
79
80
81
82
              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...
83
84
      }
  
c66109e1   JLo'w   Ajout du code des...
85
      @Override
0aec73b6   JLo'w   Petit changement ...
86
87
88
89
90
91
92
93
94
      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...
95
96
         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...
97
         }
28dc4009   JLo'w   Déconnexion !!!!!
98
99
100
          else if(item.getItemId() == R.id.action_disconnect){
             disconnect();
         }
2681581a   JLo'w   menu pour changer...
101
102
  
         return super.onOptionsItemSelected(item);
0aec73b6   JLo'w   Petit changement ...
103
104
105
      }
  
      @Override
3c5d3089   JLo'w   Work in progress ...
106
107
108
109
110
      public void onFragmentInteraction(String s){
  
      }
  
      @Override
c66109e1   JLo'w   Ajout du code des...
111
112
113
114
115
116
117
118
119
120
      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);
      }
  
76de4d29   JLo'w   Connexion et NFC ...
121
122
123
124
125
126
127
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
      @Override
      public void onPause() {
          stopForegroundDispatch(this, mNfcAdapter);
          super.onPause();
      }
  
      @Override
      public void onResume() {
          super.onResume();
          setupForegroundDispatch(this, mNfcAdapter);
      }
  
      public static void setupForegroundDispatch(final Activity activity, NfcAdapter adapter){
          if(adapter != null){
              final Intent intent = new Intent(activity.getApplicationContext(), activity.getClass());
              intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
              final PendingIntent pendingIntent = PendingIntent.getActivity(activity.getApplicationContext(), 0, intent, 0);
              adapter.enableForegroundDispatch(activity, pendingIntent, null, null);
          }
          else{
              Toast.makeText(activity, "Impossible d'initialiser le NFC", Toast.LENGTH_SHORT).show();
          }
      }
  
      public static void stopForegroundDispatch(final Activity activity, NfcAdapter adapter) {
          if(adapter != null){
              adapter.disableForegroundDispatch(activity);
          }
          else{
              Toast.makeText(activity, "Impossible d'initialiser le NFC", Toast.LENGTH_SHORT).show();
          }
      }
  
c66109e1   JLo'w   Ajout du code des...
154
      public void valideCreationCompte(View v){
e274d65a   JLo'w   Meilleur vérifica...
155
          if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
c66109e1   JLo'w   Ajout du code des...
156
157
158
              EditText champMontant = (EditText) findViewById(R.id.creation_montant);
              float montant = 0.0f;
  
e274d65a   JLo'w   Meilleur vérifica...
159
160
161
162
163
164
165
166
167
168
169
170
171
              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);
  
76de4d29   JLo'w   Connexion et NFC ...
172
173
174
175
176
177
178
179
180
181
                          Bundle b = new Bundle();
                          b.putString("token", mToken);
                          b.putInt("state", mState);
                          b.putFloat("montant", montant);
  
  
                          NFCFragment nfc = new NFCFragment();
                          nfc.setArguments(b);
  
                          getFragmentManager().beginTransaction().replace(R.id.fragment_container, nfc).addToBackStack(null).commit();
e274d65a   JLo'w   Meilleur vérifica...
182
183
184
185
186
187
188
189
                      }
                      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...
190
191
              }
              else{
e274d65a   JLo'w   Meilleur vérifica...
192
                  champMontant.setError("Montant requis.");
c66109e1   JLo'w   Ajout du code des...
193
194
195
              }
          }
          else{
28dc4009   JLo'w   Déconnexion !!!!!
196
              disconnect();
c66109e1   JLo'w   Ajout du code des...
197
198
199
          }
      }
  
c8059613   JLo'w   Re-fonte de l'app...
200
201
      public void valideCommande(View v)
      {
e274d65a   JLo'w   Meilleur vérifica...
202
          if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
b6313643   JLo'w   Déconnexion + ges...
203
              if(mDroit >= 1){
520cecde   JLo'w   Un petit plus, un...
204
                  mState = STATE_COMMANDE;
76de4d29   JLo'w   Connexion et NFC ...
205
206
207
                  Bundle b = new Bundle();
                  b.putString("token", mToken);
                  b.putInt("state", mState);
76de4d29   JLo'w   Connexion et NFC ...
208
209
  
                  NFCFragment nfc = new NFCFragment();
76de4d29   JLo'w   Connexion et NFC ...
210
  
b6313643   JLo'w   Déconnexion + ges...
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
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
                  switch (v.getId()){
                      case R.id.commande_validation:
                          EditText champMontant = (EditText) findViewById(R.id.commande_prix);
                          float montant = 0.0f;
  
                          try{
                              montant = Float.parseFloat(champMontant.getText().toString().replace(",", "."));
                          }
                          catch (Throwable t)
                          {
                              Toast.makeText(this, "Remplir le prix avec un nombre: " + t.toString(), Toast.LENGTH_SHORT).show();
                          }
                          if ((montant > 0.0f) && (montant < 200.0f)) {
                              champMontant.setText(null);
                              b.putFloat("montant", montant);
                              b.putInt("quantite", 0);
                          }
                          else{
                              Toast.makeText(this, "Valeur incorrecte.", Toast.LENGTH_SHORT).show();
                          }
                          break;
                      case R.id.button1:
                          b.putInt("quantite", 1);
                          break;
                      case R.id.button2:
                          b.putInt("quantite", 2);
                          break;
                      case R.id.button3:
                          b.putInt("quantite", 3);
                          break;
                      case R.id.button4:
                          b.putInt("quantite", 4);
                          break;
                      case R.id.button5:
                          b.putInt("quantite", 5);
                          break;
                      case R.id.button6:
                          b.putInt("quantite", 6);
                          break;
                  }
  
                  nfc.setArguments(b);
76de4d29   JLo'w   Connexion et NFC ...
253
                  getFragmentManager().beginTransaction().replace(R.id.fragment_container, nfc).addToBackStack(null).commit();
520cecde   JLo'w   Un petit plus, un...
254
              }
c66109e1   JLo'w   Ajout du code des...
255
              else{
b6313643   JLo'w   Déconnexion + ges...
256
                  Toast.makeText(this, "Droit insuffisant.", Toast.LENGTH_SHORT).show();
c66109e1   JLo'w   Ajout du code des...
257
              }
520cecde   JLo'w   Un petit plus, un...
258
259
          }
          else{
28dc4009   JLo'w   Déconnexion !!!!!
260
              disconnect();
520cecde   JLo'w   Un petit plus, un...
261
262
263
264
265
          }
      }
  
      public void valideRechargement(View v)
      {
e274d65a   JLo'w   Meilleur vérifica...
266
          if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
c66109e1   JLo'w   Ajout du code des...
267
268
269
              EditText champMontant = (EditText) findViewById(R.id.rechargement_champ_montant);
              float montant = 0.0f;
  
e274d65a   JLo'w   Meilleur vérifica...
270
271
272
273
274
275
276
277
278
279
280
281
282
              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);
  
76de4d29   JLo'w   Connexion et NFC ...
283
284
285
286
287
288
289
290
291
                          Bundle b = new Bundle();
                          b.putString("token", mToken);
                          b.putInt("state", mState);
                          b.putFloat("montant", montant);
  
                          NFCFragment nfc = new NFCFragment();
                          nfc.setArguments(b);
  
                          getFragmentManager().beginTransaction().replace(R.id.fragment_container, nfc).addToBackStack(null).commit();
e274d65a   JLo'w   Meilleur vérifica...
292
293
294
295
296
297
298
299
                      }
                      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...
300
301
              }
              else{
e274d65a   JLo'w   Meilleur vérifica...
302
                  champMontant.setError("Montant requis.");
c66109e1   JLo'w   Ajout du code des...
303
              }
520cecde   JLo'w   Un petit plus, un...
304
305
          }
          else{
28dc4009   JLo'w   Déconnexion !!!!!
306
              disconnect();
520cecde   JLo'w   Un petit plus, un...
307
308
309
310
311
312
313
314
          }
      }
  
      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...
315
316
317
          String user = viewUser.getText().toString();
          String password = viewPsw.getText().toString();
  
e274d65a   JLo'w   Meilleur vérifica...
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
          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...
339
              }
e274d65a   JLo'w   Meilleur vérifica...
340
341
              else {
                  viewPsw.setError("Mot de passe requis.");
c1f92981   JLo'w   Implémentation de...
342
              }
520cecde   JLo'w   Un petit plus, un...
343
          }
c66109e1   JLo'w   Ajout du code des...
344
          else{
e274d65a   JLo'w   Meilleur vérifica...
345
              viewUser.setError("Utilisateur requis.");
c66109e1   JLo'w   Ajout du code des...
346
          }
520cecde   JLo'w   Un petit plus, un...
347
      }
8d573e63   JLo'w   Mise en place de ...
348
349
  
      public void valideVidange(View v){
e274d65a   JLo'w   Meilleur vérifica...
350
          if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
8d573e63   JLo'w   Mise en place de ...
351
352
353
  
              if((mDroit >= 2)){
                  mState = STATE_VIDANGE;
76de4d29   JLo'w   Connexion et NFC ...
354
355
356
357
358
359
360
361
                  Bundle b = new Bundle();
                  b.putString("token", mToken);
                  b.putInt("state", mState);
  
                  NFCFragment nfc = new NFCFragment();
                  nfc.setArguments(b);
  
                  getFragmentManager().beginTransaction().replace(R.id.fragment_container, nfc).addToBackStack(null).commit();
8d573e63   JLo'w   Mise en place de ...
362
363
364
365
366
367
              }
              else{
                  Toast.makeText(this, "Droit insuffisant.", Toast.LENGTH_LONG).show();
              }
          }
          else{
28dc4009   JLo'w   Déconnexion !!!!!
368
              disconnect();
8d573e63   JLo'w   Mise en place de ...
369
370
          }
      }
520cecde   JLo'w   Un petit plus, un...
371
372
  
      @Override
76de4d29   JLo'w   Connexion et NFC ...
373
374
375
      protected void onNewIntent(Intent intent){
          super.onNewIntent(intent);
          Fragment frag = getFragmentManager().findFragmentById(R.id.fragment_container);
4ef24041   JLo'w   Retour du JSONObj...
376
  
76de4d29   JLo'w   Connexion et NFC ...
377
378
379
          if(mState != STATE_RIEN && frag instanceof NFCFragment){
              NFCFragment nfc = (NFCFragment) frag;
              nfc.handleIntent(intent);
520cecde   JLo'w   Un petit plus, un...
380
          }
c8059613   JLo'w   Re-fonte de l'app...
381
      }
93f90e35   JLo'w   NFC et foreground
382
  
c1f92981   JLo'w   Implémentation de...
383
384
385
      /* Retour du network thread */
      @Override
      public void processFinish(JSONObject output) {
76de4d29   JLo'w   Connexion et NFC ...
386
  
96cf88d2   JLo'w   Réception de JSON...
387
388
          if(output.length() != 0){
              try{
8cd8911a   JLo'w   Connexion enfin f...
389
                  if(output.get("status").toString().equals("ok")){
76de4d29   JLo'w   Connexion et NFC ...
390
391
                      switch (mState){
                          case STATE_COMMANDE:
2596297c   JLo'w   Ajout d'annuler e...
392
                              Snackbar.make(findViewById(R.id.coordinator), "Client débité de " + output.get("montant") + "€. " + output.get("soldeAncien") + "€ → " + output.getString("soldeNouveau") + "€", Snackbar.LENGTH_LONG).setAction("ANNULER", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, true)).show();
76de4d29   JLo'w   Connexion et NFC ...
393
394
395
396
397
398
399
400
401
402
                              break;
                          case STATE_CONNEXION:
                              mToken = output.get("jeton").toString();
                              mTimeToken = System.currentTimeMillis();
                              mDroit = output.getInt("droit");
                              mUser = output.get("login").toString();
                              Snackbar.make(findViewById(R.id.coordinator), "Bonjour " + mUser + " vous êtes connecté pour " + EXPIRATION / (1000 * 60) + " minutes.", Snackbar.LENGTH_SHORT).show();
                              getFragmentManager().beginTransaction().replace(R.id.fragment_container, new main_tab_frag()).commit();
                              break;
                          case STATE_CREATION_COMPTE:
2596297c   JLo'w   Ajout d'annuler e...
403
                              Snackbar.make(findViewById(R.id.coordinator), "Client créé avec un solde de " + output.get("soldeNouveau") + "€", Snackbar.LENGTH_LONG).setAction("ANNULER", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, true)).show();
76de4d29   JLo'w   Connexion et NFC ...
404
405
                              break;
                          case STATE_RECHARGEMENT:
2596297c   JLo'w   Ajout d'annuler e...
406
                              Snackbar.make(findViewById(R.id.coordinator), "Client rechargé: " + output.get("soldeAncien") + "€ → " + output.get("soldeNouveau") + "€", Snackbar.LENGTH_LONG).setAction("ANNULER", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, true)).show();
76de4d29   JLo'w   Connexion et NFC ...
407
408
                              break;
                          case STATE_VIDANGE:
2596297c   JLo'w   Ajout d'annuler e...
409
410
411
412
413
414
415
                              Snackbar.make(findViewById(R.id.coordinator), "Client vidé: " + output.get("soldeAncien") + "€ → 0€", Snackbar.LENGTH_LONG).setAction("ANNULER", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, true)).show();
                              break;
                          case STATE_ANNULER:
                              Snackbar.make(findViewById(R.id.coordinator), "Transaction annulée: " + output.get("soldeAncien") + "€ → " + output.get("soldeNouveau") + "€", Snackbar.LENGTH_LONG).setAction("REFAIRE", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, false)).show();
                              break;
                          case STATE_REFAIRE:
                              Snackbar.make(findViewById(R.id.coordinator), "Transaction rétablie: " + output.get("soldeAncien") + "€ → " + output.get("soldeNouveau") + "€", Snackbar.LENGTH_LONG).setAction("ANNULER", new viewListenerAnnulerRefaire(output.getInt("idTransaction"), this, true)).show();
76de4d29   JLo'w   Connexion et NFC ...
416
417
418
419
420
421
                              break;
                          case STATE_RIEN:
                          default:
                              Toast.makeText(this, "WTF, le cancer est dans l'application!!", Toast.LENGTH_LONG).show();
                              break;
                      }
96cf88d2   JLo'w   Réception de JSON...
422
423
                  }
                  else{
76de4d29   JLo'w   Connexion et NFC ...
424
                      Toast.makeText(this, "Erreur: " + output.get("status"), Toast.LENGTH_LONG).show();
96cf88d2   JLo'w   Réception de JSON...
425
426
427
                  }
              }
              catch(Throwable t){
8cd8911a   JLo'w   Connexion enfin f...
428
                  Toast.makeText(this, "WTF, le cancer est dans l'application!!" + t.toString(), Toast.LENGTH_LONG).show();
96cf88d2   JLo'w   Réception de JSON...
429
430
431
432
433
              }
          }
          else{
              Toast.makeText(this, "Impossible de se connecter au serveur", Toast.LENGTH_LONG).show();
          }
76de4d29   JLo'w   Connexion et NFC ...
434
435
436
  
          mState = STATE_RIEN;
          getFragmentManager().popBackStack();
c1f92981   JLo'w   Implémentation de...
437
      }
3c5d3089   JLo'w   Work in progress ...
438
439
440
441
442
443
444
445
  
      public String getToken(){
          return mToken;
      }
  
      public long getTimeToken(){
          return mTimeToken;
      }
28dc4009   JLo'w   Déconnexion !!!!!
446
447
  
      public void disconnect(){
b6313643   JLo'w   Déconnexion + ges...
448
          mToken = "";
28dc4009   JLo'w   Déconnexion !!!!!
449
450
          mDroit = 0;
          mUser = null;
fc1fed0d   JLo'w   Restons cohérent
451
          mTimeToken = -1;
76de4d29   JLo'w   Connexion et NFC ...
452
          mState = STATE_RIEN;
28dc4009   JLo'w   Déconnexion !!!!!
453
  
b6313643   JLo'w   Déconnexion + ges...
454
455
          Snackbar.make(findViewById(R.id.coordinator), "Veuillez vous reconnecter", Snackbar.LENGTH_SHORT).show();
          getFragmentManager().beginTransaction().replace(R.id.fragment_container, new ConnectionFragment()).commit();
28dc4009   JLo'w   Déconnexion !!!!!
456
      }
2596297c   JLo'w   Ajout d'annuler e...
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
  
      public void annulerTransaction(int idTransaction, boolean annuler){
          try{
              HashMap<String, String> param = new HashMap<String, String>();
              param.put("idTransaction", URLEncoder.encode(String.valueOf(idTransaction), "UTF-8"));
              param.put("jeton", URLEncoder.encode(mToken, "UTF-8"));
  
              SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
  
              URL url;
  
              if(annuler){
                  mState = STATE_ANNULER;
                  url = new URL(settings.getString("server_address", null) + "api/annuler");
              }
              else{
                  mState = STATE_REFAIRE;
                  url = new URL(settings.getString("server_address", null) + "api/refaire");
              }
  
              NetworkThread nt = new NetworkThread(url, param);
              nt.delegate = this;
              nt.execute();
          }
          catch (Throwable t){
              System.out.println(t.toString());
          }
      }
c8059613   JLo'w   Re-fonte de l'app...
485
  }