src/com/beem/project/beem/ui/Login.java
author Nikita Kozlov <nikita@beem-project.com>
Fri, 04 Dec 2009 14:25:30 +0100
changeset 559 99c587773311
parent 552 a560f82d48b0
child 567 896533b277d5
permissions -rw-r--r--
feature #221: Ajout d'une classe pour verifier la connection. On verifie si on a le net au moment d'appuyer sur login.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
package com.beem.project.beem.ui;
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     2
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     3
import android.app.Activity;
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
     4
import android.app.AlertDialog;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
     5
import android.content.DialogInterface;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     6
import android.content.Intent;
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
     7
import android.content.SharedPreferences;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
import android.os.Bundle;
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
     9
import android.preference.PreferenceManager;
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    10
import android.view.Menu;
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    11
import android.view.MenuInflater;
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    12
import android.view.MenuItem;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    13
import android.widget.TextView;
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    14
import android.widget.Toast;
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    15
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    16
import com.beem.project.beem.R;
559
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
    17
import com.beem.project.beem.utils.BeemConnectivity;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    19
/**
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    20
 * This class is the main Activity for the Beem project.
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    21
 * @author Da Risk <darisk972@gmai.com>
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    22
 */
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    23
public class Login extends Activity {
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    24
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    25
    private SharedPreferences mSettings;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    26
    private TextView mTextView;
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    27
    private boolean mIsConfigured;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    28
    private boolean mIsResult;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    29
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
    /**
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
     * Constructor.
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    32
     */
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    33
    public Login() {
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    34
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
    @Override
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
    protected void onCreate(Bundle savedInstanceState) {
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
	super.onCreate(savedInstanceState);
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    39
	setContentView(R.layout.login);
552
Vincent Veronis <veroni_v@epitech.net>
parents: 522 551
diff changeset
    40
	mTextView = (TextView) findViewById(R.id.log_as_msg);
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    41
	mSettings = PreferenceManager.getDefaultSharedPreferences(this);
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    42
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    43
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
    @Override
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    45
    protected void onStart() {
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
	super.onStart();
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    47
	mIsConfigured = mSettings.getBoolean("PreferenceIsConfigured", false);
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    48
	// TODO utiliser une options des preference plutot.
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    49
	if (mIsConfigured && !mIsResult) {
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    50
	    mTextView.setText("");
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    51
	    Intent i = new Intent(this, LoginAnim.class);
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    52
	    startActivityForResult(i, 42);
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    53
	    mIsResult = false;
548
9b0d1638a6e6 Gestion de la touche BACK lors d'un login. et connection automatique si on est
Da Risk <darisk972@gmail.com>
parents: 546
diff changeset
    54
	}
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    55
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    56
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    57
    @Override
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    58
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    59
	if (requestCode == 42) {
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    60
	    mIsResult = true;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    61
	    if (resultCode == Activity.RESULT_OK) {
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    62
		startActivity(new Intent(this, ContactList.class));
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    63
		finish();
552
Vincent Veronis <veroni_v@epitech.net>
parents: 522 551
diff changeset
    64
	    } else if (resultCode == Activity.RESULT_CANCELED) {
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    65
		if (data != null) {
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    66
		    String tmp = data.getExtras().getString("message");
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    67
		    Toast.makeText(Login.this, tmp, Toast.LENGTH_SHORT).show();
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    68
		    mTextView.setText(tmp);
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    69
		}
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    70
	    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    71
	}
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    72
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    73
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    74
    @Override
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    75
    public boolean onCreateOptionsMenu(Menu menu) {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    76
	super.onCreateOptionsMenu(menu);
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    77
	MenuInflater inflater = getMenuInflater();
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    78
	inflater.inflate(R.menu.login, menu);
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    79
	return true;
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    80
    }
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    81
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    82
    @Override
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    83
    public final boolean onOptionsItemSelected(MenuItem item) {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    84
	switch (item.getItemId()) {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    85
	    case R.id.login_menu_settings:
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    86
		mTextView.setText("");
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    87
		startActivity(new Intent(Login.this, Settings.class));
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    88
		return true;
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    89
	    case R.id.login_menu_about:
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    90
		createAboutDialog();
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    91
		return true;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    92
	    case R.id.login_menu_login:
559
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
    93
		if (testConnectivity()) {
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
    94
		    Intent i = new Intent(this, LoginAnim.class);
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
    95
		    startActivityForResult(i, 42);
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
    96
		}
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 548
diff changeset
    97
		return true;
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    98
	    default:
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
    99
		return false;
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   100
	}
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   101
    }
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   102
559
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   103
    private boolean testConnectivity() {
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   104
	if (!BeemConnectivity.isConnected(getApplicationContext())) {
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   105
	    Toast.makeText(Login.this, R.string.login_no_connectivity, Toast.LENGTH_SHORT).show();
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   106
	    return false;
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   107
	}
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   108
	return true;
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   109
    }
99c587773311 feature #221:
Nikita Kozlov <nikita@beem-project.com>
parents: 552
diff changeset
   110
546
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   111
    /**
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   112
     * Create an about "BEEM" dialog.
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   113
     */
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   114
    private void createAboutDialog() {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   115
	AlertDialog.Builder builder = new AlertDialog.Builder(this);
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   116
	builder.setTitle(R.string.login_about_title).setMessage(R.string.login_about_msg).setCancelable(false);
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   117
	builder.setNeutralButton(R.string.login_about_button, new DialogInterface.OnClickListener() {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   118
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   119
	    public void onClick(DialogInterface dialog, int whichButton) {
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   120
		dialog.cancel();
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   121
	    }
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   122
	});
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   123
	AlertDialog aboutDialog = builder.create();
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   124
	aboutDialog.show();
97ae7bcc219a Add menu for new Login activity
Da Risk <darisk972@gmail.com>
parents: 545
diff changeset
   125
    }
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   126
}