]> matita.cs.unibo.it Git - logicplayer.git/blobdiff - mainActivity/app/src/main/java/com/example/furt/myapplication/mainActivity.java
Ported to latest version of Android SDK
[logicplayer.git] / mainActivity / app / src / main / java / com / example / furt / myapplication / mainActivity.java
diff --git a/mainActivity/app/src/main/java/com/example/furt/myapplication/mainActivity.java b/mainActivity/app/src/main/java/com/example/furt/myapplication/mainActivity.java
new file mode 100644 (file)
index 0000000..3f456a5
--- /dev/null
@@ -0,0 +1,153 @@
+package com.example.furt.myapplication;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/*possiamo chiavare la mainActiviti in due casi, il primo è aprendo l'applicazione, il secondo è effettuando il
+* logout. nel primo caso viene controllato se sono state memorizzate delle credenziali e nel caso, il login viene
+* efetttuato direttamente. nel caso in cui si effettua il logout o non sono state memorizzate le credenziali,
+* viene data la possibilità di registrarsi o loggarsi, è possibile tramite il menù recuperare la password o aggiornarla
+* una volta effettuato il login viene passato il controllo ad "aggiorna.java"*/
+
+public class mainActivity extends Activity {
+
+    static TextView t;
+    public static final String PREFS_NAME = "MyPrefsFile";
+    private static final String PREF_USERNAME = "username";
+    private static final String PREF_PASSWORD = "password";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_login);
+        t = (TextView) findViewById(R.id.login);
+        SharedPreferences pref = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);//recupero le ultime credenziali valide inserite
+        String username = pref.getString(PREF_USERNAME, null);
+        String password = pref.getString(PREF_PASSWORD, null);
+        String logout=null;
+        Bundle dati=getIntent().getExtras();
+        if(dati!=null)//controllo se la mainActivity è stata chiamata dopo un logout
+            logout=dati.getString("logout");
+        if(logout!=null)
+        {
+            username=null;
+            password=null;
+        }
+
+        if (username == null && password == null) {//viene effettuato solo se ci sono delle credenziali memorizzate e se mainActivity non è stata chiamata da un logout
+            Button b = (Button) findViewById(R.id.logout);
+            b.setOnClickListener(new View.OnClickListener() {//routin di gestione del login
+                @Override
+                public void onClick(View v) {
+                    try {
+                        EditText txt = (EditText) findViewById(R.id.userId);//recupero username inserito
+                        EditText txt2 = (EditText) findViewById(R.id.oldPass);//recupero la password inserita
+                        String testo = txt.getText().toString();
+                        String testo2 = txt2.getText().toString();
+                        if(testo.contains("/") || testo2.contains("/"))//controllo che non siano inseriti valori vietati
+                            Toast.makeText(getApplicationContext(),"il carattere '/' non è consentito", Toast.LENGTH_SHORT).show();
+                        else if(testo.isEmpty() || testo2.isEmpty())//controllo che tutti i campi siano completati
+                            Toast.makeText(getApplicationContext(),"riempi i campi", Toast.LENGTH_SHORT).show();
+                        else {//login effettuato con successo
+                            String request = serverComunication.connessioneMain("1/" + testo + "/" + testo2);//richiedo il login al server
+                            if (!request.contains("error")) {
+                                getSharedPreferences(PREFS_NAME, MODE_PRIVATE)//salvo username e password per i prossimi accessi
+                                        .edit()
+                                        .putString(PREF_USERNAME, testo)
+                                        .putString(PREF_PASSWORD, testo2)
+                                        .commit();
+                                Intent i = new Intent(getApplicationContext(), aggiornamento.class);
+                                i.putExtra("user", testo);
+                                i.putExtra("pass", testo2);
+                                i.putExtra("sessionKey", request);
+                                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                getApplicationContext().startActivity(i);//avvio la "aggiornamento.class"
+                            }
+                            else
+                                Toast.makeText(getApplicationContext(),"credenziali errate", Toast.LENGTH_SHORT).show();
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            });
+            Button b2 = (Button) findViewById(R.id.button2);
+            b2.setOnClickListener(new View.OnClickListener() {//routine di gestione della registrazione
+                @Override
+                public void onClick(View v) {
+
+                    EditText txt = (EditText) findViewById(R.id.userId);
+                    EditText txt2 = (EditText) findViewById(R.id.oldPass);
+                    String testo = txt.getText().toString();
+                    String testo2 = txt2.getText().toString();
+                    if(testo.isEmpty() || testo2.isEmpty())
+                        Toast.makeText(getApplicationContext(),"riempi i campi", Toast.LENGTH_SHORT).show();
+                    else {
+                        try {
+                            serverComunication connect = new serverComunication();
+                            String request = connect.connessioneMain("0/" + testo + "/" + testo2);
+                            Toast.makeText(getApplicationContext(), request, Toast.LENGTH_SHORT).show();
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            });
+        } else {
+            Intent i = new Intent(getApplicationContext(), aggiornamento.class);
+            i.putExtra("user", username);
+            i.putExtra("pass", password);
+            i.putExtra("sessionKey", "000000000");
+            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            getApplicationContext().startActivity(i);
+        }
+    }
+
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        getMenuInflater().inflate(R.menu.login_set, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        int id = item.getItemId();
+        if(id==R.id.recupera)//routine di gestione di recupero password
+        {
+            EditText txt = (EditText) findViewById(R.id.userId);
+            String testo = txt.getText().toString();
+            if(testo.isEmpty())
+                Toast.makeText(getApplicationContext(),"inserisci l'indirizzo email", Toast.LENGTH_SHORT).show();
+            else {
+                try {
+                    serverComunication connect = new serverComunication();
+                    String request = connect.connessioneMain("2/" + testo);
+                    Toast.makeText(getApplicationContext(), request, Toast.LENGTH_SHORT).show();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        if(id==R.id.reimposta)
+        {
+            Intent i = new Intent(getApplicationContext(), recuperaPass.class);
+            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            getApplicationContext().startActivity(i);
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}