src/com/beem/project/beem/ui/Settings.java
author Nikita Kozlov <nikita@beem-project.com>
Sun, 27 Sep 2009 19:08:01 +0200
changeset 412 5031fb756b29
parent 404 3c8ca2a1a327
child 450 fe0ba62ee3ff
permissions -rw-r--r--
gestion de ConnectionClosedOnError
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     1
package com.beem.project.beem.ui;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     2
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     3
import android.content.BroadcastReceiver;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     4
import android.content.ComponentName;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     5
import android.content.Context;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     6
import android.content.Intent;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     7
import android.content.IntentFilter;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     8
import android.content.SharedPreferences;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
     9
import android.os.Bundle;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    10
import android.preference.PreferenceActivity;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    11
import android.view.Menu;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    12
import android.view.MenuInflater;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    13
import android.view.MenuItem;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    14
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    15
import com.beem.project.beem.R;
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    16
import com.beem.project.beem.utils.BeemBroadcastReceiver;
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    17
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    18
/**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    19
 * This class represents an activity which allows the user to change his account or proxy parameters.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    20
 * @author nikita
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    21
 */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    22
public class Settings extends PreferenceActivity {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    23
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    24
    private static final Intent SERVICE_INTENT = new Intent();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    25
    private SettingsBroadcastReceiver mReceiver;
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    26
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    27
    static {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    28
	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    29
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    30
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    31
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    32
     * Constructor.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    33
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    34
    public Settings() {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    35
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    36
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    37
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    38
    public void onCreate(Bundle savedInstanceState) {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    39
	super.onCreate(savedInstanceState);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    40
	addPreferencesFromResource(R.layout.preferences);
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    41
	mReceiver = new SettingsBroadcastReceiver();
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    42
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    43
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    44
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    45
     * {@inheritDoc}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    46
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    47
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    48
    protected void onPause() {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    49
	super.onPause();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    50
	this.unregisterReceiver(mReceiver);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    51
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    52
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    53
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    54
     * {@inheritDoc}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    55
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    56
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    57
    public void onResume() {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    58
	super.onResume();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    59
	this.registerReceiver(mReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    60
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    61
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    62
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    63
     * {@inheritDoc}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    64
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    65
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    66
    public void onStop() {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    67
	super.onStop();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    68
	SharedPreferences settings = getPreferenceManager().getSharedPreferences();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    69
	settings.edit().putBoolean("PreferenceIsConfigured",
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    70
	    !"".equals(settings.getString("settings_key_account_username", ""))
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    71
	    || !"".equals(settings.getString("settings_key_account_password", ""))).commit();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    72
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    73
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    74
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    75
     * {@inheritDoc}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    76
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    77
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    78
    public boolean onCreateOptionsMenu(Menu menu) {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    79
	MenuInflater mInflater = getMenuInflater();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    80
	mInflater.inflate(R.menu.edit_settings, menu);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    81
	return true;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    82
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    83
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    84
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    85
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    86
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    87
     * {@inheritDoc}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    88
     */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    89
    @Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    90
    public boolean onOptionsItemSelected(MenuItem item) {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    91
	Intent i = null;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    92
	switch (item.getItemId()) {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    93
	    case R.id.settings_menu_create_account:
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    94
		i = new Intent(this, CreateAccount.class);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    95
		startActivity(i);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    96
		return true;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    97
	    case R.id.settings_menu_login:
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    98
		setResult(69);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
    99
		SharedPreferences settings = getPreferenceManager().getSharedPreferences();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   100
		settings.edit().putBoolean("PreferenceIsConfigured",
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   101
		    !"".equals(settings.getString("settings_key_account_username", ""))
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   102
		    || !"".equals(settings.getString("settings_key_account_password", ""))).commit();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   103
		this.stopService(SERVICE_INTENT);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   104
		finish();
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   105
		return true;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   106
	    default:
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   107
		return false;
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   108
	}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   109
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   110
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   111
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   112
     * disconnect Broadcast receiver.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   113
     */
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
   114
    private class SettingsBroadcastReceiver extends BroadcastReceiver {
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   115
	/**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   116
	 * Constructor.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   117
	 */
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
   118
	public SettingsBroadcastReceiver() {
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   119
	}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   120
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   121
	@Override
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   122
	public void onReceive(Context context, Intent intent) {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   123
	    Settings.this.setResult(69);
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   124
	}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   125
    }
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents:
diff changeset
   126
}