src/com/beem/project/beem/ui/EditSettings.java
author marseille@marseille-desktop
Mon, 22 Jun 2009 19:16:38 +0200
changeset 263 ff0b4790a5ed
parent 260 0ce1e306fdd3
child 319 517e80eedfd8
permissions -rw-r--r--
La gestion de la connection et des changement de settings a ete revu.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     1
package com.beem.project.beem.ui;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     2
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     3
import java.util.ArrayList;
234
b539dc53b9c7 Reoganisation login + contact list sans utiliser beemapplication.
marseille@marseille-desktop
parents: 232
diff changeset
     4
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     5
import android.app.Activity;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     6
import android.content.Intent;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     7
import android.content.SharedPreferences;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     8
import android.os.Bundle;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     9
import android.util.Log;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    10
import android.view.Menu;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    11
import android.view.MenuInflater;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    12
import android.view.MenuItem;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    13
import android.view.View;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    14
import android.view.View.OnClickListener;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    15
import android.widget.ArrayAdapter;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    16
import android.widget.Button;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    17
import android.widget.CheckBox;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    18
import android.widget.EditText;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    19
import android.widget.Spinner;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    20
import android.widget.TabHost;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    21
import android.widget.Toast;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    22
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    23
import com.beem.project.beem.R;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    24
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    25
/**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    26
 * This class represents an activity which allows the user to change his account or proxy parameters
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    27
 * @author dasilvj
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    28
 */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    29
public class EditSettings extends Activity {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    30
259
marseille@marseille-desktop
parents: 234
diff changeset
    31
    private final static String LOG_MSG_SETTINGS_SAVED = "Settings saved successfully.";
marseille@marseille-desktop
parents: 234
diff changeset
    32
    private final static String LOG_MSG_XMPP_SETTINGS_REGISTERED = "XMPP Settings has been registered.";
marseille@marseille-desktop
parents: 234
diff changeset
    33
    private final static String LOG_MSG_ACCOUNT_SETTINGS_REGISTERED = "Account Settings has been registered.";
marseille@marseille-desktop
parents: 234
diff changeset
    34
    private final static String LOG_MSG_PROXY_SETTINGS_REGISTERED = "Proxy Settings has been registered.";
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    35
259
marseille@marseille-desktop
parents: 234
diff changeset
    36
    private final static boolean DEFAULT_BOOLEAN_VALUE = false;
marseille@marseille-desktop
parents: 234
diff changeset
    37
    private final static String DEFAULT_STRING_VALUE = "";
marseille@marseille-desktop
parents: 234
diff changeset
    38
    private final static int DEFAULT_INT_VALUE = 0;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    39
259
marseille@marseille-desktop
parents: 234
diff changeset
    40
    private final static String DEFAULT_XMPP_PORT = "5222";
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    41
259
marseille@marseille-desktop
parents: 234
diff changeset
    42
    private final static int NOTIFICATION_DURATION = Toast.LENGTH_SHORT;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    43
259
marseille@marseille-desktop
parents: 234
diff changeset
    44
    private SharedPreferences settings = null;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    45
259
marseille@marseille-desktop
parents: 234
diff changeset
    46
    private EditText accUsernameField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    47
    private EditText accPasswordField = null;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    48
259
marseille@marseille-desktop
parents: 234
diff changeset
    49
    private EditText xmppServerField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    50
    private EditText xmppPortField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    51
    private CheckBox xmppUseTLSCheckBox = null;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    52
259
marseille@marseille-desktop
parents: 234
diff changeset
    53
    private CheckBox proxyUseCheckBox = null;
marseille@marseille-desktop
parents: 234
diff changeset
    54
    private Spinner proxyTypeSpinner = null;
marseille@marseille-desktop
parents: 234
diff changeset
    55
    private EditText proxyServerField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    56
    private EditText proxyPortField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    57
    private EditText proxyUsernameField = null;
marseille@marseille-desktop
parents: 234
diff changeset
    58
    private EditText proxyPasswordField = null;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    59
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    60
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    61
     * Add a labeled "Account" tab on the tabbed window view passed by parameter
259
marseille@marseille-desktop
parents: 234
diff changeset
    62
     * @param tHost a tabbed window view
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    63
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    64
    private void addAccountTab(TabHost tHost) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    65
	TabHost.TabSpec accountTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_account));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    66
	accountTab.setIndicator(getString(R.string.settings_tab_label_account));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    67
	accountTab.setContent(R.id.settings_account);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    68
	tHost.addTab(accountTab);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    69
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    70
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    71
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    72
     * Add a labeled "Proxy" tab on the tabbed window view passed by parameter
259
marseille@marseille-desktop
parents: 234
diff changeset
    73
     * @param tHost a tabbed window view
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    74
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    75
    private void addProxyTab(TabHost tHost) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    76
	TabHost.TabSpec proxyTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_proxy));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    77
	proxyTab.setIndicator(getString(R.string.settings_tab_label_proxy));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    78
	proxyTab.setContent(R.id.settings_proxy);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    79
	tHost.addTab(proxyTab);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    80
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    81
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    82
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    83
     * Add a labeled "XMPP" tab on the tabbed window view passed by parameter
259
marseille@marseille-desktop
parents: 234
diff changeset
    84
     * @param tHost a tabbed window view
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    85
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    86
    private void addXMPPTab(TabHost tHost) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    87
	TabHost.TabSpec personalTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_xmpp));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    88
	personalTab.setIndicator(getString(R.string.settings_tab_label_xmpp));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    89
	personalTab.setContent(R.id.settings_xmpp);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    90
	tHost.addTab(personalTab);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    91
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    92
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    93
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    94
     * Disable proxy parameters fields
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    95
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    96
    private void disableProxyParameters() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    97
	proxyTypeSpinner.setEnabled(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    98
	proxyServerField.setEnabled(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    99
	proxyPortField.setEnabled(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   100
	proxyUsernameField.setEnabled(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   101
	proxyPasswordField.setEnabled(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   102
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   103
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   104
    private void displayNotification(CharSequence msg) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   105
	Toast toast = Toast.makeText(getApplicationContext(), msg, NOTIFICATION_DURATION);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   106
	toast.show();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   107
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   108
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   109
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   110
     * Enable proxy parameters fields
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   111
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   112
    private void enableProxyParameters() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   113
	proxyTypeSpinner.setEnabled(true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   114
	proxyServerField.setEnabled(true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   115
	proxyPortField.setEnabled(true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   116
	proxyUsernameField.setEnabled(true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   117
	proxyPasswordField.setEnabled(true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   118
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   119
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   120
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   121
     * Retrieve the value of a CheckBox
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   122
     * @param viewId
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   123
     * @return true if the CheckBox is checked, else false
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   124
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   125
    private boolean getCheckBoxValue(int viewId) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   126
	final CheckBox checkBox = (CheckBox) findViewById(viewId);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   127
	if (checkBox.isChecked())
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   128
	    return (true);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   129
	return (false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   130
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   131
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   132
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   133
     * Retrieve account password from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   134
     * @return Registered account password
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   135
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   136
    private String getRegisteredAccountPassword() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   137
	return (settings.getString(getString(R.string.settings_key_account_password), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   138
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   139
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   140
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   141
     * Retrieve account username from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   142
     * @return Registered account username
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   143
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   144
    private String getRegisteredAccountUsername() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   145
	return (settings.getString(getString(R.string.settings_key_account_username), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   146
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   147
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   148
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   149
     * Retrieve proxy password from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   150
     * @return Registered proxy password
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   151
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   152
    private String getRegisteredProxyPassword() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   153
	return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   154
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   155
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   156
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   157
     * Retrieve proxy port from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   158
     * @return Registered proxy port
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   159
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   160
    private String getRegisteredProxyPort() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   161
	return (settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   162
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   163
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   164
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   165
     * Retrieve proxy server from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   166
     * @return Registered proxy server
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   167
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   168
    private String getRegisteredProxyServer() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   169
	return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   170
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   171
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   172
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   173
     * Retrieve proxy type from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   174
     * @return Registered proxy type
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   175
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   176
    private int getRegisteredProxyType() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   177
	return (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   178
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   179
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   180
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   181
     * Retrieve proxy use from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   182
     * @return Registered proxy use
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   183
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   184
    private boolean getRegisteredProxyUse() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   185
	return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   186
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   187
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   188
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   189
     * Retrieve proxy username from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   190
     * @return Registered proxy username
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   191
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   192
    private String getRegisteredProxyUsername() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   193
	return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   194
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   195
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   196
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   197
     * Retrieve xmpp port from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   198
     * @return Registered xmpp port
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   199
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   200
    private String getRegisteredXMPPPort() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   201
	return (settings.getString(getString(R.string.settings_key_xmpp_port), DEFAULT_XMPP_PORT));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   202
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   203
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   204
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   205
     * Retrieve xmpp server from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   206
     * @return Registered xmpp server
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   207
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   208
    private String getRegisteredXMPPServer() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   209
	return (settings.getString(getString(R.string.settings_key_xmpp_server), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   210
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   211
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   212
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   213
     * Retrieve TLS use from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   214
     * @return Registered TLS use
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   215
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   216
    private boolean getRegisteredXMPPTLSUse() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   217
	return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   218
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   219
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   220
    /**
230
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   221
     * Initialize Account tab fields
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   222
     */
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   223
    private void initAccountFields() {
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   224
	accUsernameField = (EditText) findViewById(R.id.settings_account_username);
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   225
	accPasswordField = (EditText) findViewById(R.id.settings_account_password);
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   226
    }
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   227
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   228
    /**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   229
     * Initialize all of the components displayed in tabs (EditText fields, CheckBoxes, Spinners...)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   230
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   231
    private void initFields() {
230
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   232
	initAccountFields();
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   233
	initXMPPFields();
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   234
	initProxyFields();
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   235
    }
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   236
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   237
    /**
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   238
     * Initialize Proxy tab fields
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   239
     */
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   240
    private void initProxyFields() {
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   241
	proxyUseCheckBox = (CheckBox) findViewById(R.id.settings_proxy_use);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   242
	proxyTypeSpinner = (Spinner) findViewById(R.id.settings_proxy_type);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   243
	proxyServerField = (EditText) findViewById(R.id.settings_proxy_server);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   244
	proxyPortField = (EditText) findViewById(R.id.settings_proxy_port);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   245
	proxyUsernameField = (EditText) findViewById(R.id.settings_proxy_username);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   246
	proxyPasswordField = (EditText) findViewById(R.id.settings_proxy_password);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   247
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   248
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   249
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   250
     * Initialize proxy's types spinner of the proxy tab
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   251
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   252
    private void initProxyTypesSpinner() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   253
	ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
259
marseille@marseille-desktop
parents: 234
diff changeset
   254
	    android.R.layout.simple_spinner_item);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   255
	adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   256
	proxyTypeSpinner.setAdapter(adapter);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   257
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   258
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   259
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   260
     * Initialize the checkbox allowing user to use a proxy
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   261
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   262
    private void initProxyUseCheckBox() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   263
	proxyUseCheckBox.setOnClickListener(new OnClickListener() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   264
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   265
	    public void onClick(View v) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   266
		if (proxyUseCheckBox.isChecked()) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   267
		    enableProxyParameters();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   268
		} else {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   269
		    disableProxyParameters();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   270
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   271
	    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   272
	});
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   273
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   274
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   275
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   276
     * Initialize "save" buttons allowing user to save settings
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   277
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   278
    private void initSaveButtons() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   279
	final ArrayList<Integer> views = new ArrayList<Integer>();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   280
	Button saveButton = null;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   281
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   282
	views.add(R.id.settings_account_button_save);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   283
	views.add(R.id.settings_proxy_button_save);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   284
	views.add(R.id.settings_xmpp_button_save);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   285
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   286
	for (int i = 0; i < views.size(); i++) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   287
	    saveButton = (Button) findViewById(views.get(i));
230
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   288
	    saveButton.setFocusable(true);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   289
	    saveButton.setOnClickListener(new View.OnClickListener() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   290
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   291
		public void onClick(View v) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   292
		    saveSettings();
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   293
		    setResult(69);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   294
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   295
	    });
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   296
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   297
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   298
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   299
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   300
     * Initialize tabbed window view by adding tabs and setting the default tab
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   301
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   302
    private void initTabbedWindow() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   303
	TabHost tHost = (TabHost) this.findViewById(R.id.settings_tab_host);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   304
	tHost.setup();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   305
	addAccountTab(tHost);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   306
	addXMPPTab(tHost);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   307
	addProxyTab(tHost);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   308
	tHost.setCurrentTab(0);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   309
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   310
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   311
    /**
230
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   312
     * Initialize XMPP tab fields
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   313
     */
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   314
    private void initXMPPFields() {
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   315
	xmppServerField = (EditText) findViewById(R.id.settings_xmpp_server);
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   316
	xmppPortField = (EditText) findViewById(R.id.settings_xmpp_port);
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   317
	xmppUseTLSCheckBox = (CheckBox) findViewById(R.id.settings_xmpp_use_tls);
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   318
    }
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   319
21d91ef67e97 Bug #166 - Passage des différents EditText de l'activité Settings en SingleLine. Correction d'un bug poussant le champs Port en dehors de la zone de vue dans les tabs Proxy et XMPP.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 227
diff changeset
   320
    /**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   321
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   322
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   323
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   324
    public void onCreate(Bundle savedInstanceState) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   325
	super.onCreate(savedInstanceState);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   326
	setContentView(R.layout.edit_settings);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   327
	initTabbedWindow();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   328
	initFields();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   329
	settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   330
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   331
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   332
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   333
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   334
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   335
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   336
    public boolean onCreateOptionsMenu(Menu menu) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   337
	MenuInflater mInflater = getMenuInflater();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   338
	mInflater.inflate(R.menu.edit_settings, menu);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   339
	return true;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   340
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   341
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   342
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   343
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   344
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   345
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   346
    public boolean onOptionsItemSelected(MenuItem item) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   347
	Intent i = null;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   348
	switch (item.getItemId()) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   349
	case R.id.settings_menu_create_account:
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   350
	    i = new Intent(this, CreateAccount.class);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   351
	    startActivity(i);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   352
	    return true;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   353
	case R.id.settings_menu_login:
227
586bbd6b647d Bug #149 -- Rectification de l'empilement des activités de settings, en terminant l'activité lors du retour sur l'activité Login.
dasilvj@jean-manuel-da-silvas-macbook.local
parents: 212
diff changeset
   354
	    finish();
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   355
	    return true;
256
35f81983d351 Feature #143
nikita@localhost
parents: 234
diff changeset
   356
	}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   357
	return false;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   358
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   359
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   360
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   361
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   362
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   363
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   364
    public void onResume() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   365
	super.onResume();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   366
	refreshAccountTabFields();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   367
	refreshXMPPTabFields();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   368
	refreshProxyTabFields();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   369
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   370
	if (!proxyUseCheckBox.isChecked())
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   371
	    disableProxyParameters();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   372
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   373
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   374
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   375
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   376
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   377
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   378
    public void onStart() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   379
	super.onStart();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   380
	initProxyTypesSpinner();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   381
	initProxyUseCheckBox();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   382
	initSaveButtons();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   383
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   384
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   385
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   386
     * Refresh values of "Account" tab fields
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   387
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   388
    private void refreshAccountTabFields() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   389
	accUsernameField.setText(getRegisteredAccountUsername());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   390
	accPasswordField.setText(getRegisteredAccountPassword());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   391
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   392
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   393
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   394
     * Refresh values of "Account" tab fields
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   395
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   396
    private void refreshProxyTabFields() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   397
	proxyUseCheckBox.setChecked(getRegisteredProxyUse());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   398
	proxyTypeSpinner.setSelection(getRegisteredProxyType());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   399
	proxyServerField.setText(getRegisteredProxyServer());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   400
	proxyPortField.setText(getRegisteredProxyPort());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   401
	proxyUsernameField.setText(getRegisteredProxyUsername());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   402
	proxyPasswordField.setText(getRegisteredProxyPassword());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   403
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   404
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   405
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   406
     * Refresh values of "Account" tab fields
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   407
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   408
    private void refreshXMPPTabFields() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   409
	xmppServerField.setText(getRegisteredXMPPServer());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   410
	xmppPortField.setText(getRegisteredXMPPPort());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   411
	xmppUseTLSCheckBox.setChecked(getRegisteredXMPPTLSUse());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   412
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   413
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   414
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   415
     * Register account settings changes in SharedPreferences.Editor object passed by parameter
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   416
     * @param settingsEditor
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   417
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   418
    private void registerAccountSettingsChanges(SharedPreferences.Editor settingsEditor) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   419
	final String usernameFieldValue = accUsernameField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   420
	final String passwordFieldValue = accPasswordField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   421
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   422
	if (getRegisteredAccountUsername().equals(usernameFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   423
	    settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   424
	if (getRegisteredAccountPassword().equals(passwordFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   425
	    settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   426
	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_ACCOUNT_SETTINGS_REGISTERED);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   427
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   428
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   429
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   430
     * Register proxy settings changes in SharedPreferences.Editor object passed by parameter
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   431
     * @param settingsEditor
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   432
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   433
    private void registerProxySettingsChanges(SharedPreferences.Editor settingsEditor) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   434
	final int proxyTypeFieldValue = proxyTypeSpinner.getSelectedItemPosition();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   435
	final String serverFieldValue = proxyServerField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   436
	final String portFieldValue = proxyPortField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   437
	final String usernameFieldValue = proxyUsernameField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   438
	final String passwordFieldValue = proxyPasswordField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   439
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   440
	if (getRegisteredProxyType() != proxyTypeFieldValue)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   441
	    settingsEditor.putInt(getString(R.string.settings_key_proxy_type), proxyTypeFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   442
	if (getRegisteredProxyServer().equals(serverFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   443
	    settingsEditor.putString(getString(R.string.settings_key_proxy_server), serverFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   444
	if (getRegisteredProxyPort().equals(portFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   445
	    settingsEditor.putString(getString(R.string.settings_key_proxy_port), portFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   446
	if (getRegisteredProxyUsername().equals(usernameFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   447
	    settingsEditor.putString(getString(R.string.settings_key_proxy_username), usernameFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   448
	if (getRegisteredProxyPassword().equals(passwordFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   449
	    settingsEditor.putString(getString(R.string.settings_key_proxy_password), passwordFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   450
	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_PROXY_SETTINGS_REGISTERED);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   451
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   452
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   453
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   454
     * Register XMPP settings changes in SharedPreferences.Editor object passed by parameter
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   455
     * @param settingsEditor
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   456
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   457
    private void registerXMPPSettingsChanges(SharedPreferences.Editor settingsEditor) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   458
	final boolean tlsUseCheckBoxValue = getCheckBoxValue(R.id.settings_xmpp_use_tls);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   459
	final String serverFieldValue = xmppServerField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   460
	final String portFieldValue = xmppPortField.getText().toString();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   461
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   462
	if (getRegisteredXMPPTLSUse() != tlsUseCheckBoxValue)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   463
	    settingsEditor.putBoolean(getString(R.string.settings_key_xmpp_tls_use), tlsUseCheckBoxValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   464
	if (getRegisteredXMPPServer().equals(serverFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   465
	    settingsEditor.putString(getString(R.string.settings_key_xmpp_server), serverFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   466
	if (getRegisteredXMPPPort().equals(portFieldValue) == false)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   467
	    settingsEditor.putString(getString(R.string.settings_key_xmpp_port), portFieldValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   468
	Log.i(getString(R.string.edit_settings_tag), LOG_MSG_XMPP_SETTINGS_REGISTERED);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   469
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   470
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   471
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   472
     * Save settings in shared preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   473
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   474
    private void saveSettings() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   475
	final SharedPreferences.Editor settingsEditor = settings.edit();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   476
	final boolean proxyUseCheckBoxValue = getCheckBoxValue(R.id.settings_proxy_use);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   477
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   478
	if (getRegisteredProxyUse() != proxyUseCheckBoxValue)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   479
	    settingsEditor.putBoolean(getString(R.string.settings_key_proxy_use), proxyUseCheckBoxValue);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   480
	if (proxyUseCheckBoxValue)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   481
	    registerProxySettingsChanges(settingsEditor);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   482
	registerAccountSettingsChanges(settingsEditor);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   483
	registerXMPPSettingsChanges(settingsEditor);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   484
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   485
	if (settingsEditor.commit()) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   486
	    displayNotification(getText(R.string.settings_saved_ok));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   487
	    Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   488
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   489
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   490
}