diff --git a/PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java b/PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java index e3e0273..9e5e5b1 100644 --- a/PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java +++ b/PremiereActivite/app/src/main/java/com/example/app_10p5/MainActivite.java @@ -5,10 +5,13 @@ import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.v4.view.ViewPager; +import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; @@ -27,6 +30,7 @@ import android.widget.Toast; import org.json.JSONObject; import java.net.URL; +import java.net.URLEncoder; import java.util.HashMap; @@ -41,6 +45,7 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr 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; @@ -53,6 +58,7 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); + PreferenceManager.setDefaultValues(this, R.xml.preferences, false); mState = STATE_RIEN; mTimeToken = -1; @@ -86,13 +92,8 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection - 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); + if(item.getItemId() == R.id.action_settings){ + getFragmentManager().beginTransaction().replace(R.id.fragment_container, new SettingsFragment()).addToBackStack("settings").commit(); } return super.onOptionsItemSelected(item); @@ -115,29 +116,39 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr } public void valideCreationCompte(View v){ - if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { + if((TextUtils.getTrimmedLength(mToken) == 30) && ((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; - champMontant.setText(""); + 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(); + } - Intent intent = new Intent(this, CarteActivite.class); - intent.putExtra("token", mToken); - intent.putExtra("state", mState); - intent.putExtra("montant", montant); - startActivityForResult(intent, mState); + 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(); + } } else{ - Toast.makeText(this, "Valeur incorrecte ou droit insuffisant.", Toast.LENGTH_LONG).show(); + champMontant.setError("Montant requis."); } } else{ @@ -149,12 +160,14 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr public void valideCommande(View v) { - if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { + if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { EditText champMontant = (EditText) findViewById(R.id.commande_prix); EditText champQuantite = (EditText) findViewById(R.id.commande_quantite); float montant = 0.0f; int quantite = 0; + //TODO: gérer le XOR de pute + try{ montant = Float.parseFloat(champMontant.getText().toString()); quantite = Integer.parseInt(champQuantite.getText().toString()); @@ -166,8 +179,8 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr if ((montant > 0.0f) && (montant < 200.0f) && (quantite > 0) && (mDroit >= 1)) { mState = STATE_COMMANDE; - champMontant.setText(""); - champQuantite.setText(""); + champMontant.setText(null); + champQuantite.setText(null); Intent intent = new Intent(this, CarteActivite.class); intent.putExtra("token", mToken); @@ -189,29 +202,40 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr public void valideRechargement(View v) { - if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { + System.out.println(TextUtils.getTrimmedLength(mToken)); + if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { 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(); - } - - if((montant > 0.0f) && (montant < 200.0f) && (mDroit >= 2)){ - mState = STATE_RECHARGEMENT; - champMontant.setText(""); + 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(); + } - Intent intent = new Intent(this, CarteActivite.class); - intent.putExtra("token", mToken); - intent.putExtra("state", mState); - intent.putExtra("montant", montant); - startActivityForResult(intent, mState); + 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(); + } } else{ - Toast.makeText(this, "Valeur incorrecte ou droit insuffisant.", Toast.LENGTH_LONG).show(); + champMontant.setError("Montant requis."); } } else{ @@ -229,32 +253,39 @@ public class MainActivite extends Activity implements ASyncResponse, main_tab_fr String user = viewUser.getText().toString(); String password = viewPsw.getText().toString(); - if ((user != "") && (password != "")) { - mState = STATE_CONNEXION; - - viewUser.setText(""); - viewPsw.setText(""); - - try{ - URL url = new URL(CarteActivite.HOST + "api/utilisateur/connexion"); - HashMap param = new HashMap(); - param.put("login", user); - param.put("mdp", password); - NetworkThread nt = new NetworkThread(url, param); - nt.delegate = this; - nt.execute(); + 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 param = new HashMap(); + 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()); + } } - catch (Throwable t) { - System.out.println("Exception: " + t.toString()); + else { + viewPsw.setError("Mot de passe requis."); } } else{ - Toast.makeText(this, "Veuillez remplir les champs.", Toast.LENGTH_LONG).show(); + viewUser.setError("Utilisateur requis."); } } public void valideVidange(View v){ - if((mToken != "") && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { + if((TextUtils.getTrimmedLength(mToken) == 30) && ((System.currentTimeMillis() - mTimeToken) < EXPIRATION)) { if((mDroit >= 2)){ mState = STATE_VIDANGE; -- libgit2 0.21.2