]> matita.cs.unibo.it Git - logicplayer.git/blob - mainActivity/src/com/example/furt/myapplication/mainActivity.java
1c6814827487a460f21d68a76324783278e99c94
[logicplayer.git] / mainActivity / src / com / example / furt / myapplication / mainActivity.java
1 package com.example.furt.myapplication;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.content.SharedPreferences;
6 import android.os.Bundle;
7 import android.view.Menu;
8 import android.view.MenuItem;
9 import android.view.View;
10 import android.widget.Button;
11 import android.widget.EditText;
12 import android.widget.TextView;
13 import android.widget.Toast;
14
15 /*possiamo chiavare la mainActiviti in due casi, il primo è aprendo l'applicazione, il secondo è effettuando il
16 * logout. nel primo caso viene controllato se sono state memorizzate delle credenziali e nel caso, il login viene
17 * efetttuato direttamente. nel caso in cui si effettua il logout o non sono state memorizzate le credenziali,
18 * viene data la possibilità di registrarsi o loggarsi, è possibile tramite il menù recuperare la password o aggiornarla
19 * una volta effettuato il login viene passato il controllo ad "aggiorna.java"*/
20
21 public class mainActivity extends Activity {
22
23     static TextView t;
24     public static final String PREFS_NAME = "MyPrefsFile";
25     private static final String PREF_USERNAME = "username";
26     private static final String PREF_PASSWORD = "password";
27
28     @Override
29     protected void onCreate(Bundle savedInstanceState) {
30         super.onCreate(savedInstanceState);
31         setContentView(R.layout.activity_login);
32         t = (TextView) findViewById(R.id.login);
33         SharedPreferences pref = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);//recupero le ultime credenziali valide inserite
34         String username = pref.getString(PREF_USERNAME, null);
35         String password = pref.getString(PREF_PASSWORD, null);
36         String logout=null;
37         Bundle dati=getIntent().getExtras();
38         if(dati!=null)//controllo se la mainActivity è stata chiamata dopo un logout
39             logout=dati.getString("logout");
40         if(logout!=null)
41         {
42             username=null;
43             password=null;
44         }
45
46         if (username == null && password == null) {//viene effettuato solo se ci sono delle credenziali memorizzate e se mainActivity non è stata chiamata da un logout
47             Button b = (Button) findViewById(R.id.logout);
48             b.setOnClickListener(new View.OnClickListener() {//routin di gestione del login
49                 @Override
50                 public void onClick(View v) {
51                     try {
52                         EditText txt = (EditText) findViewById(R.id.userId);//recupero username inserito
53                         EditText txt2 = (EditText) findViewById(R.id.oldPass);//recupero la password inserita
54                         String testo = txt.getText().toString();
55                         String testo2 = txt2.getText().toString();
56                         if(testo.contains("/") || testo2.contains("/"))//controllo che non siano inseriti valori vietati
57                             Toast.makeText(getApplicationContext(),"il carattere '/' non è consentito", Toast.LENGTH_SHORT).show();
58                         else if(testo.isEmpty() || testo2.isEmpty())//controllo che tutti i campi siano completati
59                             Toast.makeText(getApplicationContext(),"riempi i campi", Toast.LENGTH_SHORT).show();
60                         else {//login effettuato con successo
61                             String request = serverComunication.connessioneMain("1/" + testo + "/" + testo2);//richiedo il login al server
62                             if (!request.contains("error")) {
63                                 getSharedPreferences(PREFS_NAME, MODE_PRIVATE)//salvo username e password per i prossimi accessi
64                                         .edit()
65                                         .putString(PREF_USERNAME, testo)
66                                         .putString(PREF_PASSWORD, testo2)
67                                         .commit();
68                                 Intent i = new Intent(getApplicationContext(), aggiornamento.class);
69                                 i.putExtra("user", testo);
70                                 i.putExtra("pass", testo2);
71                                 i.putExtra("sessionKey", request);
72                                 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
73                                 getApplicationContext().startActivity(i);//avvio la "aggiornamento.class"
74                             }
75                         }
76                     } catch (Exception e) {
77                         e.printStackTrace();
78                     }
79                 }
80             });
81             Button b2 = (Button) findViewById(R.id.button2);
82             b2.setOnClickListener(new View.OnClickListener() {//routine di gestione della registrazione
83                 @Override
84                 public void onClick(View v) {
85
86                     EditText txt = (EditText) findViewById(R.id.userId);
87                     EditText txt2 = (EditText) findViewById(R.id.oldPass);
88                     String testo = txt.getText().toString();
89                     String testo2 = txt2.getText().toString();
90                     if(testo.isEmpty() || testo2.isEmpty())
91                         Toast.makeText(getApplicationContext(),"riempi i campi", Toast.LENGTH_SHORT).show();
92                     else {
93                         try {
94                             serverComunication connect = new serverComunication();
95                             String request = connect.connessioneMain("0/" + testo + "/" + testo2);
96                             Toast.makeText(getApplicationContext(), request, Toast.LENGTH_SHORT).show();
97                         } catch (Exception e) {
98                             e.printStackTrace();
99                         }
100                     }
101                 }
102             });
103         } else {
104             Intent i = new Intent(getApplicationContext(), aggiornamento.class);
105             i.putExtra("user", username);
106             i.putExtra("pass", password);
107             i.putExtra("sessionKey", "000000000");
108             i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
109             getApplicationContext().startActivity(i);
110         }
111     }
112
113
114     @Override
115     public boolean onCreateOptionsMenu(Menu menu) {
116         // Inflate the menu; this adds items to the action bar if it is present.
117         getMenuInflater().inflate(R.menu.login_set, menu);
118         return true;
119     }
120
121     @Override
122     public boolean onOptionsItemSelected(MenuItem item) {
123         // Handle action bar item clicks here. The action bar will
124         // automatically handle clicks on the Home/Up button, so long
125         // as you specify a parent activity in AndroidManifest.xml.
126         int id = item.getItemId();
127         if(id==R.id.recupera)//routine di gestione di recupero password
128         {
129             EditText txt = (EditText) findViewById(R.id.userId);
130             String testo = txt.getText().toString();
131             if(testo.isEmpty())
132                 Toast.makeText(getApplicationContext(),"inserisci l'indirizzo email", Toast.LENGTH_SHORT).show();
133             else {
134                 try {
135                     serverComunication connect = new serverComunication();
136                     String request = connect.connessioneMain("2/" + testo);
137                     Toast.makeText(getApplicationContext(), request, Toast.LENGTH_SHORT).show();
138                 } catch (Exception e) {
139                     e.printStackTrace();
140                 }
141             }
142         }
143         if(id==R.id.reimposta)
144         {
145             Intent i = new Intent(getApplicationContext(), recuperaPass.class);
146             i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
147             getApplicationContext().startActivity(i);
148         }
149         return super.onOptionsItemSelected(item);
150     }
151 }