Blame view

PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java 12.3 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;
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;
2681581a   JLo'w   menu pour changer...
8
  import android.graphics.drawable.BitmapDrawable;
0aec73b6   JLo'w   Petit changement ...
9
  import android.graphics.drawable.ColorDrawable;
c8059613   JLo'w   Re-fonte de l'app...
10
  import android.os.Bundle;
c8059613   JLo'w   Re-fonte de l'app...
11
  import android.support.v4.view.ViewPager;
2681581a   JLo'w   menu pour changer...
12
13
  import android.view.Gravity;
  import android.view.LayoutInflater;
0aec73b6   JLo'w   Petit changement ...
14
15
16
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
c8059613   JLo'w   Re-fonte de l'app...
17
  import android.view.View;
2681581a   JLo'w   menu pour changer...
18
19
  import android.view.ViewGroup;
  import android.widget.Button;
520cecde   JLo'w   Un petit plus, un...
20
  import android.widget.EditText;
2681581a   JLo'w   menu pour changer...
21
22
23
24
  import android.widget.FrameLayout;
  import android.widget.LinearLayout;
  import android.widget.PopupMenu;
  import android.widget.PopupWindow;
93f90e35   JLo'w   NFC et foreground
25
26
  import android.widget.Toast;
  
c1f92981   JLo'w   Implémentation de...
27
28
29
30
31
  import org.json.JSONObject;
  
  import java.net.URL;
  import java.util.HashMap;
  
c8059613   JLo'w   Re-fonte de l'app...
32
33
34
35
  
  /**
   * Created by beaus on 24/04/2016.
   */
3c5d3089   JLo'w   Work in progress ...
36
  public class MainActivite extends Activity implements ASyncResponse, main_tab_frag.OnFragmentInteractionListener {
c8059613   JLo'w   Re-fonte de l'app...
37
  
520cecde   JLo'w   Un petit plus, un...
38
39
40
41
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;
      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
  
c8059613   JLo'w   Re-fonte de l'app...
52
53
54
55
      @Override
      protected void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.layout_main);
520cecde   JLo'w   Un petit plus, un...
56
57
58
59
60
  
          mState = STATE_RIEN;
          mTimeToken = -1;
          mToken = "";
  
0aec73b6   JLo'w   Petit changement ...
61
62
          getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorPrimary)));
  
2681581a   JLo'w   menu pour changer...
63
64
65
66
67
68
69
70
71
72
73
74
75
76
          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...
77
78
      }
  
c66109e1   JLo'w   Ajout du code des...
79
      @Override
0aec73b6   JLo'w   Petit changement ...
80
81
82
83
84
85
86
87
88
      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
2681581a   JLo'w   menu pour changer...
89
90
91
92
93
94
95
96
97
98
         if(item.getItemId() == R.id.menu_2_choice_1){
             CarteActivite.HOST = "https://10p5.clubinfo.frogeye.fr/";
             item.setChecked(true);
         }
          else if(item.getItemId() == R.id.menu_2_choice_2){
             CarteActivite.HOST = "http://pcbar.insecure.deule.net/";
             item.setChecked(true);
         }
  
         return super.onOptionsItemSelected(item);
0aec73b6   JLo'w   Petit changement ...
99
100
101
      }
  
      @Override
3c5d3089   JLo'w   Work in progress ...
102
103
104
105
106
      public void onFragmentInteraction(String s){
  
      }
  
      @Override
c66109e1   JLo'w   Ajout du code des...
107
108
109
110
111
112
113
114
115
116
      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...
117
118
119
120
121
122
123
124
125
126
127
128
129
130
      public void valideCreationCompte(View v){
          if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
              EditText champMontant = (EditText) findViewById(R.id.creation_montant);
              float montant = 0.0f;
  
              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((montant > 0.0f) && (montant < 200.0f) && (mDroit >= 1)){
                  mState = STATE_CREATION_COMPTE;
814b5a6f   JLo'w   On vide les champ...
131
132
                  champMontant.setText("");
  
c66109e1   JLo'w   Ajout du code des...
133
134
135
136
137
138
139
140
141
142
143
144
                  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 ou droit insuffisant.", Toast.LENGTH_LONG).show();
              }
          }
          else{
              Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
2681581a   JLo'w   menu pour changer...
145
146
              final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
              viewPager.setCurrentItem(0);
c66109e1   JLo'w   Ajout du code des...
147
148
149
          }
      }
  
c8059613   JLo'w   Re-fonte de l'app...
150
151
      public void valideCommande(View v)
      {
520cecde   JLo'w   Un petit plus, un...
152
153
154
          if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
              EditText champMontant = (EditText) findViewById(R.id.commande_prix);
              EditText champQuantite = (EditText) findViewById(R.id.commande_quantite);
c66109e1   JLo'w   Ajout du code des...
155
156
157
158
159
160
161
162
163
164
165
              float montant = 0.0f;
              int quantite = 0;
  
              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...
166
  
c66109e1   JLo'w   Ajout du code des...
167
              if ((montant > 0.0f) && (montant < 200.0f) && (quantite > 0) && (mDroit >= 1)) {
520cecde   JLo'w   Un petit plus, un...
168
                  mState = STATE_COMMANDE;
814b5a6f   JLo'w   On vide les champ...
169
170
171
                  champMontant.setText("");
                  champQuantite.setText("");
  
520cecde   JLo'w   Un petit plus, un...
172
173
174
175
176
177
178
                  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...
179
180
181
              else{
                  Toast.makeText(this, "Valeur incorrecte ou droit insuffisant.", Toast.LENGTH_LONG).show();
              }
520cecde   JLo'w   Un petit plus, un...
182
183
184
          }
          else{
              Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
2681581a   JLo'w   menu pour changer...
185
186
              final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
              viewPager.setCurrentItem(0);
520cecde   JLo'w   Un petit plus, un...
187
188
189
190
191
          }
      }
  
      public void valideRechargement(View v)
      {
96cf88d2   JLo'w   Réception de JSON...
192
          if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
c66109e1   JLo'w   Ajout du code des...
193
194
195
196
197
198
199
200
201
              EditText champMontant = (EditText) findViewById(R.id.rechargement_champ_montant);
              float montant = 0.0f;
  
              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();
              }
520cecde   JLo'w   Un petit plus, un...
202
  
c66109e1   JLo'w   Ajout du code des...
203
204
              if((montant > 0.0f) && (montant < 200.0f) && (mDroit >= 2)){
                  mState = STATE_RECHARGEMENT;
814b5a6f   JLo'w   On vide les champ...
205
206
                  champMontant.setText("");
  
c66109e1   JLo'w   Ajout du code des...
207
208
209
210
211
212
213
214
215
                  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 ou droit insuffisant.", Toast.LENGTH_LONG).show();
              }
520cecde   JLo'w   Un petit plus, un...
216
217
218
          }
          else{
              Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
2681581a   JLo'w   menu pour changer...
219
220
              final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
              viewPager.setCurrentItem(0);
520cecde   JLo'w   Un petit plus, un...
221
222
223
224
225
226
227
228
          }
      }
  
      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...
229
230
231
          String user = viewUser.getText().toString();
          String password = viewPsw.getText().toString();
  
520cecde   JLo'w   Un petit plus, un...
232
233
          if ((user != "") && (password != "")) {
              mState = STATE_CONNEXION;
c1f92981   JLo'w   Implémentation de...
234
  
814b5a6f   JLo'w   On vide les champ...
235
236
237
              viewUser.setText("");
              viewPsw.setText("");
  
c1f92981   JLo'w   Implémentation de...
238
              try{
c1f92981   JLo'w   Implémentation de...
239
                  URL url = new URL(CarteActivite.HOST + "api/utilisateur/connexion");
c1f92981   JLo'w   Implémentation de...
240
241
242
243
244
245
246
247
                  HashMap<String, String> param = new HashMap<String, String>();
                  param.put("login", user);
                  param.put("mdp", password);
                  NetworkThread nt = new NetworkThread(url, param);
                  nt.delegate = this;
                  nt.execute();
              }
              catch (Throwable t) {
2681581a   JLo'w   menu pour changer...
248
                  System.out.println("Exception: " + t.toString());
c1f92981   JLo'w   Implémentation de...
249
              }
520cecde   JLo'w   Un petit plus, un...
250
          }
c66109e1   JLo'w   Ajout du code des...
251
252
253
          else{
              Toast.makeText(this, "Veuillez remplir les champs.", Toast.LENGTH_LONG).show();
          }
520cecde   JLo'w   Un petit plus, un...
254
      }
8d573e63   JLo'w   Mise en place de ...
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
  
      public void valideVidange(View v){
          if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
  
              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{
              Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
2681581a   JLo'w   menu pour changer...
272
273
              final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
              viewPager.setCurrentItem(0);
8d573e63   JLo'w   Mise en place de ...
274
275
          }
      }
520cecde   JLo'w   Un petit plus, un...
276
277
278
279
  
      @Override
      protected void onActivityResult(int requestCode, int resultCode, Intent data){
          //TODO: faire des choses avec ca
4ef24041   JLo'w   Retour du JSONObj...
280
  
814b5a6f   JLo'w   On vide les champ...
281
282
          mState = STATE_RIEN;
  
4ef24041   JLo'w   Retour du JSONObj...
283
284
285
286
287
288
          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...
289
              Toast.makeText(this, "Retour", Toast.LENGTH_SHORT).show();
4ef24041   JLo'w   Retour du JSONObj...
290
291
292
          }
  
  
520cecde   JLo'w   Un petit plus, un...
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
          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...
309
      }
93f90e35   JLo'w   NFC et foreground
310
  
c1f92981   JLo'w   Implémentation de...
311
312
313
      /* Retour du network thread */
      @Override
      public void processFinish(JSONObject output) {
96cf88d2   JLo'w   Réception de JSON...
314
315
          if(output.length() != 0){
              try{
8cd8911a   JLo'w   Connexion enfin f...
316
317
                  if(output.get("status").toString().equals("ok")){
                      mToken = output.get("jeton").toString();
96cf88d2   JLo'w   Réception de JSON...
318
                      mTimeToken = System.currentTimeMillis();
8cd8911a   JLo'w   Connexion enfin f...
319
320
321
                      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...
322
323
                      final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
                      viewPager.setCurrentItem(1);
96cf88d2   JLo'w   Réception de JSON...
324
325
326
327
328
329
                  }
                  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...
330
                  Toast.makeText(this, "WTF, le cancer est dans l'application!!" + t.toString(), Toast.LENGTH_LONG).show();
96cf88d2   JLo'w   Réception de JSON...
331
332
333
334
335
              }
          }
          else{
              Toast.makeText(this, "Impossible de se connecter au serveur", Toast.LENGTH_LONG).show();
          }
c1f92981   JLo'w   Implémentation de...
336
      }
3c5d3089   JLo'w   Work in progress ...
337
338
339
340
341
342
343
344
  
      public String getToken(){
          return mToken;
      }
  
      public long getTimeToken(){
          return mTimeToken;
      }
c8059613   JLo'w   Re-fonte de l'app...
345
  }