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
63
64
65
66
|
mState = STATE_RIEN;
mTimeToken = -1;
mToken = "";
|
0aec73b6
JLo'w
Petit changement ...
|
67
68
|
getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.colorPrimary)));
|
2681581a
JLo'w
menu pour changer...
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
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...
|
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
98
99
|
}
return super.onOptionsItemSelected(item);
|
0aec73b6
JLo'w
Petit changement ...
|
100
101
102
|
}
@Override
|
3c5d3089
JLo'w
Work in progress ...
|
103
104
105
106
107
|
public void onFragmentInteraction(String s){
}
@Override
|
c66109e1
JLo'w
Ajout du code des...
|
108
109
110
111
112
113
114
115
116
117
|
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...
|
118
|
public void valideCreationCompte(View v){
|
e274d65a
JLo'w
Meilleur vérifica...
|
119
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
c66109e1
JLo'w
Ajout du code des...
|
120
121
122
|
EditText champMontant = (EditText) findViewById(R.id.creation_montant);
float montant = 0.0f;
|
e274d65a
JLo'w
Meilleur vérifica...
|
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
|
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...
|
149
150
|
}
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
151
|
champMontant.setError("Montant requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
152
153
154
155
|
}
}
else{
Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
|
2681581a
JLo'w
menu pour changer...
|
156
157
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(0);
|
c66109e1
JLo'w
Ajout du code des...
|
158
159
160
|
}
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
161
162
|
public void valideCommande(View v)
{
|
e274d65a
JLo'w
Meilleur vérifica...
|
163
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
520cecde
JLo'w
Un petit plus, un...
|
164
165
|
EditText champMontant = (EditText) findViewById(R.id.commande_prix);
EditText champQuantite = (EditText) findViewById(R.id.commande_quantite);
|
c66109e1
JLo'w
Ajout du code des...
|
166
167
168
|
float montant = 0.0f;
int quantite = 0;
|
e274d65a
JLo'w
Meilleur vérifica...
|
169
170
|
//TODO: gérer le XOR de pute
|
c66109e1
JLo'w
Ajout du code des...
|
171
172
173
174
175
176
177
178
|
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...
|
179
|
|
c66109e1
JLo'w
Ajout du code des...
|
180
|
if ((montant > 0.0f) && (montant < 200.0f) && (quantite > 0) && (mDroit >= 1)) {
|
520cecde
JLo'w
Un petit plus, un...
|
181
|
mState = STATE_COMMANDE;
|
e274d65a
JLo'w
Meilleur vérifica...
|
182
183
|
champMontant.setText(null);
champQuantite.setText(null);
|
814b5a6f
JLo'w
On vide les champ...
|
184
|
|
520cecde
JLo'w
Un petit plus, un...
|
185
186
187
188
189
190
191
|
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...
|
192
193
194
|
else{
Toast.makeText(this, "Valeur incorrecte ou droit insuffisant.", Toast.LENGTH_LONG).show();
}
|
520cecde
JLo'w
Un petit plus, un...
|
195
196
197
|
}
else{
Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
|
2681581a
JLo'w
menu pour changer...
|
198
199
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(0);
|
520cecde
JLo'w
Un petit plus, un...
|
200
201
202
203
204
|
}
}
public void valideRechargement(View v)
{
|
e274d65a
JLo'w
Meilleur vérifica...
|
205
206
|
System.out.println(TextUtils.getTrimmedLength(mToken));
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
c66109e1
JLo'w
Ajout du code des...
|
207
208
209
|
EditText champMontant = (EditText) findViewById(R.id.rechargement_champ_montant);
float montant = 0.0f;
|
e274d65a
JLo'w
Meilleur vérifica...
|
210
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
|
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...
|
236
237
|
}
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
238
|
champMontant.setError("Montant requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
239
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
240
241
242
|
}
else{
Toast.makeText(this, "Veuillez vous reconnecter.", Toast.LENGTH_LONG).show();
|
2681581a
JLo'w
menu pour changer...
|
243
244
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(0);
|
520cecde
JLo'w
Un petit plus, un...
|
245
246
247
248
249
250
251
252
|
}
}
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...
|
253
254
255
|
String user = viewUser.getText().toString();
String password = viewPsw.getText().toString();
|
e274d65a
JLo'w
Meilleur vérifica...
|
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
|
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...
|
277
|
}
|
e274d65a
JLo'w
Meilleur vérifica...
|
278
279
|
else {
viewPsw.setError("Mot de passe requis.");
|
c1f92981
JLo'w
Implémentation de...
|
280
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
281
|
}
|
c66109e1
JLo'w
Ajout du code des...
|
282
|
else{
|
e274d65a
JLo'w
Meilleur vérifica...
|
283
|
viewUser.setError("Utilisateur requis.");
|
c66109e1
JLo'w
Ajout du code des...
|
284
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
285
|
}
|
8d573e63
JLo'w
Mise en place de ...
|
286
287
|
public void valideVidange(View v){
|
e274d65a
JLo'w
Meilleur vérifica...
|
288
|
if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) {
|
8d573e63
JLo'w
Mise en place de ...
|
289
290
291
292
293
294
295
296
297
298
299
300
301
302
|
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...
|
303
304
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(0);
|
8d573e63
JLo'w
Mise en place de ...
|
305
306
|
}
}
|
520cecde
JLo'w
Un petit plus, un...
|
307
308
309
310
|
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
//TODO: faire des choses avec ca
|
4ef24041
JLo'w
Retour du JSONObj...
|
311
|
|
814b5a6f
JLo'w
On vide les champ...
|
312
313
|
mState = STATE_RIEN;
|
4ef24041
JLo'w
Retour du JSONObj...
|
314
315
316
317
318
319
|
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...
|
320
|
Toast.makeText(this, "Retour", Toast.LENGTH_SHORT).show();
|
4ef24041
JLo'w
Retour du JSONObj...
|
321
322
323
|
}
|
520cecde
JLo'w
Un petit plus, un...
|
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
|
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...
|
340
|
}
|
93f90e35
JLo'w
NFC et foreground
|
341
|
|
c1f92981
JLo'w
Implémentation de...
|
342
343
344
|
/* Retour du network thread */
@Override
public void processFinish(JSONObject output) {
|
96cf88d2
JLo'w
Réception de JSON...
|
345
346
|
if(output.length() != 0){
try{
|
8cd8911a
JLo'w
Connexion enfin f...
|
347
348
|
if(output.get("status").toString().equals("ok")){
mToken = output.get("jeton").toString();
|
96cf88d2
JLo'w
Réception de JSON...
|
349
|
mTimeToken = System.currentTimeMillis();
|
8cd8911a
JLo'w
Connexion enfin f...
|
350
351
352
|
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...
|
353
354
|
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setCurrentItem(1);
|
96cf88d2
JLo'w
Réception de JSON...
|
355
356
357
358
359
360
|
}
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...
|
361
|
Toast.makeText(this, "WTF, le cancer est dans l'application!!" + t.toString(), Toast.LENGTH_LONG).show();
|
96cf88d2
JLo'w
Réception de JSON...
|
362
363
364
365
366
|
}
}
else{
Toast.makeText(this, "Impossible de se connecter au serveur", Toast.LENGTH_LONG).show();
}
|
c1f92981
JLo'w
Implémentation de...
|
367
|
}
|
3c5d3089
JLo'w
Work in progress ...
|
368
369
370
371
372
373
374
375
|
public String getToken(){
return mToken;
}
public long getTimeToken(){
return mTimeToken;
}
|
c8059613
JLo'w
Re-fonte de l'app...
|
376
|
}
|