src/com/beem/project/beem/ui/CreateAccount.java
author Marseille
Wed, 01 Jul 2009 17:51:06 +0200
changeset 326 c5f000965df8
parent 325 cb5293558d3c
child 327 eb633aedfdba
permissions -rw-r--r--
Reconnection
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
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
     3
import java.util.regex.Pattern;
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
     4
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     5
import org.jivesoftware.smack.AccountManager;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     6
import org.jivesoftware.smack.ConnectionConfiguration;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     7
import org.jivesoftware.smack.XMPPConnection;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     8
import org.jivesoftware.smack.XMPPException;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
     9
import org.jivesoftware.smack.proxy.ProxyInfo;
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    10
import org.jivesoftware.smack.util.StringUtils;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    11
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    12
import android.app.Activity;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    13
import android.app.AlertDialog;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    14
import android.content.DialogInterface;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    15
import android.content.SharedPreferences;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    16
import android.os.Bundle;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    17
import android.util.Log;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    18
import android.view.View;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    19
import android.widget.Button;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    20
import android.widget.EditText;
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    21
import android.widget.TextView;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    22
import android.widget.Toast;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    23
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    24
import com.beem.project.beem.R;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    25
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    26
/**
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    27
 * This class represents an activity which allows the user to create an account on the XMPP server saved in settings
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    28
 * @author dasilvj
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    29
 */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    30
public class CreateAccount extends Activity {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    31
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    32
    private final static boolean DEFAULT_BOOLEAN_VALUE = false;
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    33
    private final static String DEFAULT_STRING_VALUE = "";
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    34
    private final static int DEFAULT_INT_VALUE = 0;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    35
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    36
    private final static String DEFAULT_XMPP_PORT = "5222";
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    37
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    38
    private final static int NOTIFICATION_DURATION = Toast.LENGTH_SHORT;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    39
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    40
    private SharedPreferences settings = null;
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    41
    private Button createAccountButton = null;
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    42
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    43
    /**
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    44
     * {@inheritDoc}
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    45
     */
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    46
    @Override
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    47
    public void onCreate(Bundle savedInstanceState) {
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    48
	super.onCreate(savedInstanceState);
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    49
	setContentView(R.layout.create_account);
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    50
	initCreateAccountButton();
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    51
	settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    52
    }
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    53
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    54
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    55
     * Create an account on the XMPP server specified in settings
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    56
     */
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    57
    private boolean createAccount(String username, String password) {
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    58
	XMPPConnection xmppConnection = null;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    59
	ConnectionConfiguration connectionConfiguration = null;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    60
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    61
	if (getRegisteredProxy() != null) {
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    62
	    connectionConfiguration = new ConnectionConfiguration(getXMPPServer(), 5222, getRegisteredProxy());
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    63
	} else {
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    64
	    connectionConfiguration = new ConnectionConfiguration(getXMPPServer(), 5222);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    65
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    66
	if (getRegisteredXMPPTLSUse())
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    67
	    connectionConfiguration.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    68
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    69
	xmppConnection = new XMPPConnection(connectionConfiguration);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    70
	try {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    71
	    xmppConnection.connect();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    72
	    AccountManager accountManager = new AccountManager(xmppConnection);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    73
	    accountManager.createAccount(username, password);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    74
	    Toast toast = Toast.makeText(getApplicationContext(), "Account " + username + " "
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    75
		+ getString(R.string.create_account_successfull_after), NOTIFICATION_DURATION);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    76
	    toast.show();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    77
	} catch (XMPPException e) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    78
	    Log.e(getString(R.string.create_account_tag), e.getMessage());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    79
	    createErrorDialog(e.getMessage());
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    80
	    return false;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    81
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    82
	xmppConnection.disconnect();
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
    83
	return true;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    84
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    85
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    86
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    87
     * Create a dialog containing an error message
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
    88
     * @param errMsg the error message
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    89
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    90
    private void createErrorDialog(String errMsg) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    91
	Log.v(getString(R.string.create_account_tag), errMsg);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    92
	AlertDialog.Builder builder = new AlertDialog.Builder(this);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    93
	builder.setTitle(R.string.create_account_err_dialog_title).setMessage(errMsg).setCancelable(false);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    94
	builder.setNeutralButton(R.string.create_account_close_dialog_button, new DialogInterface.OnClickListener() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    95
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    96
	    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    97
	    public void onClick(DialogInterface dialog, int which) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    98
		dialog.cancel();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
    99
	    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   100
	});
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   101
	AlertDialog settingsErrDialog = builder.create();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   102
	settingsErrDialog.show();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   103
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   104
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   105
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   106
     * Retrive proxy informations from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   107
     * @return Registered proxy informations
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   108
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   109
    private ProxyInfo getRegisteredProxy() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   110
	if (getRegisteredProxyUse()) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   111
	    ProxyInfo proxyInfo = new ProxyInfo(getRegisteredProxyType(), getRegisteredProxyServer(),
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   112
		getRegisteredProxyPort(), getRegisteredProxyUsername(), getRegisteredProxyPassword());
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   113
	    return (proxyInfo);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   114
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   115
	return (null);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   116
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   117
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   118
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   119
     * Retrieve proxy password from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   120
     * @return Registered proxy password
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   121
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   122
    private String getRegisteredProxyPassword() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   123
	return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   124
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   125
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   126
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   127
     * Retrieve proxy port from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   128
     * @return Registered proxy port
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   129
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   130
    private int getRegisteredProxyPort() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   131
	return (Integer.parseInt(settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE)));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   132
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   133
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   134
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   135
     * Retrieve proxy server from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   136
     * @return Registered proxy server
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   137
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   138
    private String getRegisteredProxyServer() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   139
	return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   140
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   141
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   142
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   143
     * Retrieve proxy type from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   144
     * @return Registered proxy type
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   145
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   146
    private ProxyInfo.ProxyType getRegisteredProxyType() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   147
	switch (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE)) {
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   148
	    case 0:
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   149
		return ProxyInfo.ProxyType.HTTP;
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   150
	    case 1:
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   151
		return ProxyInfo.ProxyType.SOCKS4;
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   152
	    case 2:
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   153
		Log.i(getString(R.string.create_account_tag), "SOCKS5 PROXY");
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   154
		return ProxyInfo.ProxyType.SOCKS5;
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   155
	    default:
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   156
		return ProxyInfo.ProxyType.NONE;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   157
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   158
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   159
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   160
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   161
     * Retrieve proxy use from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   162
     * @return Registered proxy use
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   163
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   164
    private boolean getRegisteredProxyUse() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   165
	return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   166
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   167
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   168
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   169
     * Retrieve proxy username from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   170
     * @return Registered proxy username
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   171
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   172
    private String getRegisteredProxyUsername() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   173
	return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   174
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   175
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   176
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   177
     * Retrieve xmpp server from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   178
     * @return Registered xmpp server
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   179
     */
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   180
    private String getXMPPServer() {
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   181
	TextView xmppServerTextView = (TextView) findViewById(R.id.create_account_username);
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   182
	String xmppServer = StringUtils.parseServer(xmppServerTextView.getText().toString());
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   183
	return xmppServer;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   184
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   185
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   186
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   187
     * Retrieve TLS use from the preferences
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   188
     * @return Registered TLS use
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   189
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   190
    private boolean getRegisteredXMPPTLSUse() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   191
	return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   192
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   193
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   194
    /**
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   195
     * Check if the fields password and confirm password match
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   196
     * @return return true if password & confirm password fields match, else false
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   197
     */
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   198
    private boolean checkPasswords() {
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   199
	final String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText().toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   200
	final String passwordConfirmFielddValue = ((EditText) findViewById(R.id.create_account_confirm_password))
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   201
	    .getText().toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   202
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   203
	if (passwordFieldValue.equals(passwordConfirmFielddValue))
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   204
	    return (true);
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   205
	return (false);
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   206
    }
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   207
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   208
    private boolean checkEmail() {
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   209
	String email = ((TextView) findViewById(R.id.create_account_username)).getText().toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   210
	return (Pattern.matches("[a-zA-Z0-9._%+-]+@(?:[a-zA-Z0-9-]+.)+[a-zA-Z]{2,4}", email));
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   211
    }
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   212
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   213
    /**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   214
     * Initialize the "Create this account" button which allows the user to create an account
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   215
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   216
    private void initCreateAccountButton() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   217
	createAccountButton = (Button) findViewById(R.id.create_account_button);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   218
	createAccountButton.setOnClickListener(new View.OnClickListener() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   219
	    public void onClick(View v) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   220
		String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   221
		    .toString();
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   222
		String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   223
		    .toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   224
		String username = StringUtils.parseName(usernameFieldValue);
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   225
		if (!checkEmail())
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   226
		    createErrorDialog(getString(R.string.create_account_err_username));
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   227
		else if (!checkPasswords())
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   228
		    createErrorDialog(getString(R.string.create_account_err_passwords));
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   229
		else {
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   230
		    if (createAccount(username, passwordFieldValue))
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   231
			finish();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   232
		}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   233
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   234
	    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   235
	});
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   236
	Button createAccountLoginButton = (Button) findViewById(R.id.create_account_login_button);
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   237
	createAccountLoginButton.setOnClickListener(new View.OnClickListener() {
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   238
	    public void onClick(View v) {
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   239
		String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   240
		    .toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   241
		String username = StringUtils.parseName(usernameFieldValue);
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   242
		String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   243
		    .toString();
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   244
		if (!checkEmail())
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   245
		    createErrorDialog(getString(R.string.create_account_err_username));
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   246
		else if (!checkPasswords())
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   247
		    createErrorDialog(getString(R.string.create_account_err_passwords));
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   248
		else {
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   249
		    if (createAccount(username, passwordFieldValue)) {
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   250
			SharedPreferences.Editor settingsEditor = settings.edit();
326
c5f000965df8 Reconnection
Marseille
parents: 325
diff changeset
   251
			settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
256
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   252
			settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   253
			settingsEditor.commit();
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   254
			finish();
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   255
		    }
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   256
		}
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   257
	    }
35f81983d351 Feature #143
nikita@localhost
parents: 212
diff changeset
   258
	});
325
cb5293558d3c MIse en place du JID dans createaccount
Marseille
parents: 264
diff changeset
   259
    }
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents:
diff changeset
   260
}