Feature #143
Debut de l'implémentation de la feature.
D'apres marseille il y a des trucs qui doivent changer au niveau de la
connection donc je pause a ce stade la.
--- a/AndroidManifest.xml Sat Jun 20 22:42:26 2009 +0200
+++ b/AndroidManifest.xml Mon Jun 22 15:59:18 2009 +0200
@@ -16,16 +16,11 @@
<activity android:name=".ui.SendIM" android:label="@string/SendIMActTitle"
android:launchMode="singleTop" />
<activity android:name=".ui.ChangeStatus" android:label="@string/ChangeStatusActTitle" />
- <activity android:name=".ui.AccountCreation" android:label="@string/app_name" />
<activity android:name=".ui.AddContact" android:label="@string/AddCActTitle" />
<activity android:name=".ui.Subscription" android:label="@string/app_name" />
- <activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name">
- </activity>
- <activity android:name=".ui.CreateAccount" android:label="@string/create_account_name">
- </activity>
- <activity android:name=".ui.ContactList" android:label="@string/contact_list_name"
- android:launchMode="singleTask">
- </activity>
+ <activity android:name=".ui.EditSettings" android:label="@string/edit_settings_name" />
+ <activity android:name=".ui.CreateAccount" android:label="@string/create_account_name" />
+ <activity android:name=".ui.ContactList" android:label="@string/contact_list_name" android:launchMode="singleTask" />
<service android:name="BeemService" android:enabled="true"
android:label="Beem Service" android:permission="com.beem.project.beem.BEEM_SERVICE">
<intent-filter>
@@ -40,6 +35,6 @@
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="com.beem.project.beem.BEEM_SERVICE"></uses-permission>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission>
- <uses-sdk android:minSdkVersion="3"></uses-sdk>
+ <uses-sdk android:minSdkVersion="2"></uses-sdk>
</manifest>
--- a/res/layout/accountcreation.xml Sat Jun 20 22:42:26 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:orientation="horizontal"
- android:layout_width="fill_parent" android:layout_height="wrap_content">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="@string/ACLogin"
- android:minWidth="70dp" />
-
- <EditText android:id="@+id/ac_login" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:singleLine="true"
- android:textSize="16sp" android:autoText="false" android:capitalize="none"
- android:minWidth="150dp" android:scrollHorizontally="true" />
- </LinearLayout>
-
- <LinearLayout android:orientation="horizontal"
- android:layout_width="fill_parent" android:layout_height="wrap_content">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="@string/ACEmail"
- android:minWidth="70dp" />
- <EditText android:id="@+id/ac_email" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:singleLine="true"
- android:textSize="16sp" android:autoText="false" android:minWidth="250dp"
- android:capitalize="none" android:scrollHorizontally="true" />
- </LinearLayout>
- <LinearLayout android:orientation="horizontal"
- android:layout_width="fill_parent" android:layout_height="wrap_content">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="@string/ACPassword"
- android:minWidth="70dp" />
- <EditText android:id="@+id/ac_password" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:singleLine="true"
- android:password="true" android:textSize="16sp" android:autoText="false"
- android:minWidth="250dp" android:capitalize="none"
- android:scrollHorizontally="true" />
- </LinearLayout>
- <LinearLayout android:orientation="horizontal"
- android:layout_width="fill_parent" android:layout_height="wrap_content">
- <TextView android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="@string/ACRepeat"
- android:minWidth="70dp" />
- <EditText android:id="@+id/ac_password2"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:singleLine="true" android:password="true" android:textSize="16sp"
- android:autoText="false" android:minWidth="250dp" android:capitalize="none"
- android:scrollHorizontally="true" />
- </LinearLayout>
-
- <Button android:id="@+id/ac_ok" android:layout_width="fill_parent"
- android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
- android:text="@string/ACOkButton">
- <requestFocus />
- </Button>
-</LinearLayout>
\ No newline at end of file
--- a/res/layout/create_account.xml Sat Jun 20 22:42:26 2009 +0200
+++ b/res/layout/create_account.xml Mon Jun 22 15:59:18 2009 +0200
@@ -1,48 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
+ android:orientation="vertical" android:layout_width="fill_parent"
+ android:layout_height="fill_parent">
+ <LinearLayout android:layout_width="fill_parent"
+ android:layout_height="fill_parent" android:orientation="vertical"
android:padding="10dip">
- <TextView android:id="@+id/create_account_label_username"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/create_account_username"
- style="@style/Label" />
+ <TextView android:id="@+id/create_account_label_username"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:text="@string/create_account_username" style="@style/Label" />
<EditText android:id="@+id/create_account_username"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
android:singleLine="true" />
- <TextView android:id="@+id/create_account_label_password"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/create_account_password"
- style="@style/Label" />
+ <TextView android:id="@+id/create_account_label_password"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:text="@string/create_account_password" style="@style/Label" />
<EditText android:id="@+id/create_account_password"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:password="true"
- android:singleLine="true" />
- <TextView android:id="@+id/create_account_label_confirm_password"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/create_account_confirm_password"
- style="@style/Label" />
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:password="true" android:singleLine="true" />
+ <TextView android:id="@+id/create_account_label_confirm_password"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:text="@string/create_account_confirm_password" style="@style/Label" />
<EditText android:id="@+id/create_account_confirm_password"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:password="true"
- android:singleLine="true" />
- <View
- android:layout_height="21dp"
- android:layout_width="fill_parent" />
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:password="true" android:singleLine="true" />
+ <View android:layout_height="21dp" android:layout_width="fill_parent" />
<Button android:id="@+id/create_account_button"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
+ android:layout_width="fill_parent" android:layout_height="fill_parent"
android:text="@string/button_create_account" />
+ <Button android:id="@+id/create_account_login_button"
+ android:layout_width="fill_parent" android:layout_height="fill_parent"
+ android:text="@string/button_create_login_account" />
</LinearLayout>
</ScrollView>
--- a/res/values/strings.xml Sat Jun 20 22:42:26 2009 +0200
+++ b/res/values/strings.xml Mon Jun 22 15:59:18 2009 +0200
@@ -65,6 +65,7 @@
<string name="ACPassword">Password:</string>
<string name="ACRepeat">Repeat:</string>
<string name="ACOkButton">Ok</string>
+ <string name="ACOkLoginButton">Log with</string>
<string name="ACBadForm">Bad form</string>
<string name="ACCreated">Account created</string>
@@ -140,6 +141,7 @@
<string name="button_login">Login</string>
<string name="button_save">Save</string>
<string name="button_create_account">Create this account</string>
+ <string name="button_create_login_account">Create and log</string>
<!--
--- a/src/com/beem/project/beem/ui/AccountCreation.java Sat Jun 20 22:42:26 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/**
- *
- */
-package com.beem.project.beem.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jivesoftware.smack.AccountManager;
-import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-
-import android.app.Activity;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Toast;
-
-import com.beem.project.beem.R;
-
-/**
- * @author nikita
- */
-public class AccountCreation extends Activity {
-
- protected static final String TAG = "AccountCreation";
- private SharedPreferences mSettings;
- Map<String, String> mAttributes = new HashMap<String, String>();
-
- private OnClickListener mOkListener = new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- boolean valid = true;
- if (getWidgetText(R.id.ac_login).length() == 0) {
- valid = false;
- } else {
- mAttributes.put("login", getWidgetText(R.id.ac_login));
- mAttributes.put("name", getWidgetText(R.id.ac_login));
- }
- if (getWidgetText(R.id.ac_password).length() == 0
- || !getWidgetText(R.id.ac_password).contains(
- getWidgetText(R.id.ac_password2))) {
- valid = false;
-
- } else {
- mAttributes.put("password", getWidgetText(R.id.ac_password));
- }
- if (getWidgetText(R.id.ac_email).length() == 0) {
- valid = false;
- } else {
- mAttributes.put("email", getWidgetText(R.id.ac_email));
- }
-
- if (valid) {
- setResult(RESULT_OK);
- try {
- createAccount();
- Toast
- .makeText(AccountCreation.this,
- getString(R.string.ACCreated),
- Toast.LENGTH_SHORT).show();
- finish();
- } catch (XMPPException e) {
- Log.e(TAG, "Account creation failed", e);
- Toast.makeText(AccountCreation.this, e.getMessage(),
- Toast.LENGTH_SHORT).show();
- e.printStackTrace();
- }
- } else {
- Toast.makeText(AccountCreation.this,
- getString(R.string.ACBadForm), Toast.LENGTH_SHORT)
- .show();
- setResult(RESULT_CANCELED);
- }
-
- }
- };
-
- protected void createAccount() throws XMPPException {
- String mHost = mSettings.getString(getString(R.string.PreferenceHostKey), "");
- XMPPConnection xmmpCo = new XMPPConnection(new ConnectionConfiguration(mHost));
- xmmpCo.connect();
- AccountManager accM = new AccountManager(xmmpCo);
- accM.createAccount(mAttributes.get("login"), mAttributes.get("password"), mAttributes);
- xmmpCo.disconnect();
- SharedPreferences.Editor editor = mSettings.edit();
-
- editor.putString(getString(R.string.PreferenceLoginKey), mAttributes.get("login"));
- editor.putString(getString(R.string.PreferencePasswordKey), mAttributes.get("password"));
- editor.commit();
- }
-
- private String getWidgetText(int id) {
- EditText widget = (EditText) this.findViewById(id);
- return widget.getText().toString();
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.accountcreation);
- Button ok = (Button) findViewById(R.id.ac_ok);
- mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE);
- ok.setOnClickListener(mOkListener);
- }
-}
--- a/src/com/beem/project/beem/ui/AddContact.java Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/AddContact.java Mon Jun 22 15:59:18 2009 +0200
@@ -28,81 +28,81 @@
*/
public class AddContact extends Activity {
- protected static final String TAG = "AddContact";
- private String mLogin;
- private String mAlias;
- private final List<String> mGroup = new ArrayList<String>();
- private IXmppFacade xmppFacade;
- private final ServiceConnection mServConn = new BeemServiceConnection();
+ protected static final String TAG = "AddContact";
+ private String mLogin;
+ private String mAlias;
+ private final List<String> mGroup = new ArrayList<String>();
+ private IXmppFacade xmppFacade;
+ private final ServiceConnection mServConn = new BeemServiceConnection();
- private final OnClickListener mOkListener = new OnClickListener() {
+ private final OnClickListener mOkListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- boolean valid = true;
- if (getWidgetText(R.id.addc_login).length() == 0) {
- valid = false;
- } else {
- mLogin = getWidgetText(R.id.addc_login);
- }
- if (getWidgetText(R.id.addc_alias).length() == 0) {
- valid = false;
- } else {
- mAlias = getWidgetText(R.id.addc_alias);
- }
- if (getWidgetText(R.id.addc_group).length() == 0) {
- valid = false;
- } else {
- mGroup.add(getWidgetText(R.id.addc_group));
- }
- if (valid) {
- try {
- xmppFacade.getRoster().addContact(mLogin, mAlias, mGroup.toArray(new String[mGroup.size()]));
- Toast.makeText(AddContact.this, getString(R.string.AddCContactAdded), Toast.LENGTH_SHORT).show();
- finish();
- } catch (RemoteException e) {
- Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show();
- e.printStackTrace();
- }
- setResult(RESULT_OK);
- } else {
- Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show();
- setResult(RESULT_CANCELED);
- }
+ @Override
+ public void onClick(View v) {
+ boolean valid = true;
+ if (getWidgetText(R.id.addc_login).length() == 0) {
+ valid = false;
+ } else {
+ mLogin = getWidgetText(R.id.addc_login);
+ }
+ if (getWidgetText(R.id.addc_alias).length() == 0) {
+ valid = false;
+ } else {
+ mAlias = getWidgetText(R.id.addc_alias);
+ }
+ if (getWidgetText(R.id.addc_group).length() == 0) {
+ valid = false;
+ } else {
+ mGroup.add(getWidgetText(R.id.addc_group));
+ }
+ if (valid) {
+ try {
+ xmppFacade.getRoster().addContact(mLogin, mAlias, mGroup.toArray(new String[mGroup.size()]));
+ Toast.makeText(AddContact.this, getString(R.string.AddCContactAdded), Toast.LENGTH_SHORT).show();
+ finish();
+ } catch (RemoteException e) {
+ Toast.makeText(AddContact.this, e.getMessage(), Toast.LENGTH_SHORT).show();
+ e.printStackTrace();
+ }
+ setResult(RESULT_OK);
+ } else {
+ Toast.makeText(AddContact.this, getString(R.string.AddCBadForm), Toast.LENGTH_SHORT).show();
+ setResult(RESULT_CANCELED);
+ }
- }
- };
+ }
+ };
+
+ private String getWidgetText(int id) {
+ EditText widget = (EditText) this.findViewById(id);
+ return widget.getText().toString();
+ }
- private String getWidgetText(int id) {
- EditText widget = (EditText) this.findViewById(id);
- return widget.getText().toString();
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.addcontact);
+ Button ok = (Button) findViewById(R.id.addc_ok);
+ ok.setOnClickListener(mOkListener);
+ bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ unbindService(mServConn);
+ }
+
+ private class BeemServiceConnection implements ServiceConnection {
+
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ xmppFacade = IXmppFacade.Stub.asInterface(service);
}
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.addcontact);
- Button ok = (Button) findViewById(R.id.addc_ok);
- ok.setOnClickListener(mOkListener);
- bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- unbindService(mServConn);
+ public void onServiceDisconnected(ComponentName name) {
+ xmppFacade = null;
}
-
- private class BeemServiceConnection implements ServiceConnection {
-
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- xmppFacade = IXmppFacade.Stub.asInterface(service);
- }
-
- @Override
- public void onServiceDisconnected(ComponentName name) {
- xmppFacade = null;
- }
- }
+ }
}
--- a/src/com/beem/project/beem/ui/ContactDialog.java Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java Mon Jun 22 15:59:18 2009 +0200
@@ -23,107 +23,107 @@
public class ContactDialog extends Dialog {
- public static final String TAG = "Option Dialog";
- private final Contact mContact;
- private final Context mContext;
- private IXmppFacade xmppFacade = null;
- private final ServiceConnection mServConn = new BeemServiceConnection();
+ public static final String TAG = "Option Dialog";
+ private final Contact mContact;
+ private final Context mContext;
+ private IXmppFacade xmppFacade = null;
+ private final ServiceConnection mServConn = new BeemServiceConnection();
- public ContactDialog(final Context context, Contact curContact) {
- super(context);
- mContext = context;
+ public ContactDialog(final Context context, Contact curContact) {
+ super(context);
+ mContext = context;
+
+ setContentView(R.layout.contactdialog);
+ mContact = curContact;
+ setTitle(curContact.getJID());
- setContentView(R.layout.contactdialog);
- mContact = curContact;
- setTitle(curContact.getJID());
+ Button button = (Button) findViewById(R.id.CDChat);
+ button.setOnClickListener(new chatListener());
+ button = (Button) findViewById(R.id.CDAlias);
+ button.setOnClickListener(new aliasListener());
+ button = (Button) findViewById(R.id.CDGroup);
+ button.setOnClickListener(new groupListener());
+ button = (Button) findViewById(R.id.CDResend);
+ button.setOnClickListener(new resendListener());
+ button = (Button) findViewById(R.id.CDInfos);
+ button.setOnClickListener(new infosListener());
- Button button = (Button) findViewById(R.id.CDChat);
- button.setOnClickListener(new chatListener());
- button = (Button) findViewById(R.id.CDAlias);
- button.setOnClickListener(new aliasListener());
- button = (Button) findViewById(R.id.CDGroup);
- button.setOnClickListener(new groupListener());
- button = (Button) findViewById(R.id.CDResend);
- button.setOnClickListener(new resendListener());
- button = (Button) findViewById(R.id.CDInfos);
- button.setOnClickListener(new infosListener());
+ mContext.bindService(new Intent(mContext, BeemService.class), mServConn, Service.BIND_AUTO_CREATE);
+ }
+
+ class aliasListener implements View.OnClickListener {
- mContext.bindService(new Intent(mContext, BeemService.class), mServConn, Service.BIND_AUTO_CREATE);
+ @Override
+ public void onClick(View v) {
+
+ ContactDialogAliasDialog dialog = new ContactDialogAliasDialog(mContext, mContact);
+ dialog.setOwnerActivity(ContactDialog.this.getOwnerActivity());
+ dialog.initService(xmppFacade);
+ dialog.show();
}
- class aliasListener implements View.OnClickListener {
+ }
- @Override
- public void onClick(View v) {
+ class chatListener implements View.OnClickListener {
- ContactDialogAliasDialog dialog = new ContactDialogAliasDialog(mContext, mContact);
- dialog.setOwnerActivity(ContactDialog.this.getOwnerActivity());
- dialog.initService(xmppFacade);
- dialog.show();
- }
-
+ @Override
+ public void onClick(View v) {
+ Activity a = ContactDialog.this.getOwnerActivity();
+ Intent i = new Intent(mContext, SendIM.class);
+ i.setData(mContact.toUri());
+ a.startActivity(i);
+ dismiss();
}
- class chatListener implements View.OnClickListener {
+ }
+
+ class groupListener implements View.OnClickListener {
- @Override
- public void onClick(View v) {
- Activity a = ContactDialog.this.getOwnerActivity();
- Intent i = new Intent(mContext, SendIM.class);
- i.setData(mContact.toUri());
- a.startActivity(i);
- dismiss();
- }
-
+ @Override
+ public void onClick(View v) {
+ // TODO Auto-generated method stub
+ dismiss();
}
- class groupListener implements View.OnClickListener {
+ }
+
+ class infosListener implements View.OnClickListener {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- dismiss();
- }
-
+ @Override
+ public void onClick(View v) {
+ // TODO Auto-generated method stub
+ dismiss();
}
- class infosListener implements View.OnClickListener {
+ }
+
+ class resendListener implements View.OnClickListener {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- dismiss();
- }
-
+ @Override
+ public void onClick(View v) {
+ Presence presencePacket = new Presence(Presence.Type.subscribe);
+ presencePacket.setTo(mContact.getJID());
+ try {
+ xmppFacade.sendPresencePacket(new PresenceAdapter(presencePacket));
+ } catch (RemoteException e) {
+ Log.e(TAG, "resend subscription error", e);
+ }
+ dismiss();
}
- class resendListener implements View.OnClickListener {
+ }
+
+ private class BeemServiceConnection implements ServiceConnection {
- @Override
- public void onClick(View v) {
- Presence presencePacket = new Presence(Presence.Type.subscribe);
- presencePacket.setTo(mContact.getJID());
- try {
- xmppFacade.sendPresencePacket(new PresenceAdapter(presencePacket));
- } catch (RemoteException e) {
- Log.e(TAG, "resend subscription error", e);
- }
- dismiss();
- }
-
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ xmppFacade = IXmppFacade.Stub.asInterface(service);
}
- private class BeemServiceConnection implements ServiceConnection {
-
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- xmppFacade = IXmppFacade.Stub.asInterface(service);
- }
-
- @Override
- public void onServiceDisconnected(ComponentName name) {
- xmppFacade = null;
- }
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ xmppFacade = null;
}
+ }
}
--- a/src/com/beem/project/beem/ui/ContactDialogAliasDialog.java Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialogAliasDialog.java Mon Jun 22 15:59:18 2009 +0200
@@ -20,38 +20,37 @@
*/
public class ContactDialogAliasDialog extends Dialog {
- protected static final String TAG = "CAlias";
- //private String mName;
- private Contact mContact;
- private IXmppFacade mService;
+ protected static final String TAG = "CAlias";
+ private Contact mContact;
+ private IXmppFacade mService;
- public ContactDialogAliasDialog(Context context, Contact contact) {
- super(context);
- setContentView(R.layout.contactdialogaliasdialog);
- setTitle("Alias");
- mContact = contact;
- EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
- nameText.setText(mContact.getName());
+ public ContactDialogAliasDialog(Context context, Contact contact) {
+ super(context);
+ setContentView(R.layout.contactdialogaliasdialog);
+ setTitle("Alias");
+ mContact = contact;
+ EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
+ nameText.setText(mContact.getName());
- Button ok = (Button) findViewById(R.id.CDAliasDialogOk);
- ok.setOnClickListener(new View.OnClickListener() {
+ Button ok = (Button) findViewById(R.id.CDAliasDialogOk);
+ ok.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
- try {
- Log.d(TAG, mContact.getJID() + nameText.getText().toString());
- mService.getRoster().setContactName(mContact.getJID(), nameText.getText().toString());
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- dismiss();
- }
+ @Override
+ public void onClick(View v) {
+ EditText nameText = (EditText) findViewById(R.id.CDAliasDialogName);
+ try {
+ Log.d(TAG, mContact.getJID() + nameText.getText().toString());
+ mService.getRoster().setContactName(mContact.getJID(), nameText.getText().toString());
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
+ dismiss();
+ }
- });
- }
+ });
+ }
- public void initService(IXmppFacade service) {
- mService = service;
- }
+ public void initService(IXmppFacade service) {
+ mService = service;
+ }
}
--- a/src/com/beem/project/beem/ui/CreateAccount.java Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/CreateAccount.java Mon Jun 22 15:59:18 2009 +0200
@@ -38,6 +38,18 @@
private SharedPreferences settings = null;
private Button createAccountButton = null;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.create_account);
+ initCreateAccountButton();
+ settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
+ }
+
/**
* Check if the fields password and confirm password match
*
@@ -46,7 +58,7 @@
private boolean checkPasswords() {
final String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText().toString();
final String passwordConfirmFielddValue = ((EditText) findViewById(R.id.create_account_confirm_password))
- .getText().toString();
+ .getText().toString();
if (passwordFieldValue.equals(passwordConfirmFielddValue))
return (true);
@@ -56,13 +68,13 @@
/**
* Create an account on the XMPP server specified in settings
*/
- private void createAccount(String username, String password) {
+ private boolean createAccount(String username, String password) {
XMPPConnection xmppConnection = null;
ConnectionConfiguration connectionConfiguration = null;
if (getRegisteredProxy() != null) {
connectionConfiguration = new ConnectionConfiguration(getRegisteredXMPPServer(), getRegisteredXMPPPort(),
- getRegisteredProxy());
+ getRegisteredProxy());
} else {
connectionConfiguration = new ConnectionConfiguration(getRegisteredXMPPServer(), getRegisteredXMPPPort());
}
@@ -75,13 +87,15 @@
AccountManager accountManager = new AccountManager(xmppConnection);
accountManager.createAccount(username, password);
Toast toast = Toast.makeText(getApplicationContext(), "Account " + username + " "
- + getString(R.string.create_account_successfull_after), NOTIFICATION_DURATION);
+ + getString(R.string.create_account_successfull_after), NOTIFICATION_DURATION);
toast.show();
} catch (XMPPException e) {
Log.e(getString(R.string.create_account_tag), e.getMessage());
createErrorDialog(e.getMessage());
+ return false;
}
xmppConnection.disconnect();
+ return true;
}
/**
@@ -113,7 +127,7 @@
private ProxyInfo getRegisteredProxy() {
if (getRegisteredProxyUse()) {
ProxyInfo proxyInfo = new ProxyInfo(getRegisteredProxyType(), getRegisteredProxyServer(),
- getRegisteredProxyPort(), getRegisteredProxyUsername(), getRegisteredProxyPassword());
+ getRegisteredProxyPort(), getRegisteredProxyUsername(), getRegisteredProxyPassword());
return (proxyInfo);
}
return (null);
@@ -153,15 +167,15 @@
*/
private ProxyInfo.ProxyType getRegisteredProxyType() {
switch (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE)) {
- case 0:
- return ProxyInfo.ProxyType.HTTP;
- case 1:
- return ProxyInfo.ProxyType.SOCKS4;
- case 2:
- Log.i(getString(R.string.create_account_tag), "SOCKS5 PROXY");
- return ProxyInfo.ProxyType.SOCKS5;
- default:
- return ProxyInfo.ProxyType.NONE;
+ case 0:
+ return ProxyInfo.ProxyType.HTTP;
+ case 1:
+ return ProxyInfo.ProxyType.SOCKS4;
+ case 2:
+ Log.i(getString(R.string.create_account_tag), "SOCKS5 PROXY");
+ return ProxyInfo.ProxyType.SOCKS5;
+ default:
+ return ProxyInfo.ProxyType.NONE;
}
}
@@ -216,12 +230,11 @@
private void initCreateAccountButton() {
createAccountButton = (Button) findViewById(R.id.create_account_button);
createAccountButton.setOnClickListener(new View.OnClickListener() {
-
public void onClick(View v) {
String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
- .toString();
+ .toString();
String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
- .toString();
+ .toString();
if (!checkPasswords())
createErrorDialog(getString(R.string.create_account_err_passwords));
@@ -229,16 +242,26 @@
createAccount(usernameFieldValue, passwordFieldValue);
}
});
- }
+ Button createAccountLoginButton = (Button) findViewById(R.id.create_account_login_button);
+ createAccountLoginButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ String usernameFieldValue = ((EditText) findViewById(R.id.create_account_username)).getText()
+ .toString();
+ String passwordFieldValue = ((EditText) findViewById(R.id.create_account_password)).getText()
+ .toString();
- /**
- * {@inheritDoc}
- */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.create_account);
- initCreateAccountButton();
- settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
- }
+ if (!checkPasswords())
+ createErrorDialog(getString(R.string.create_account_err_passwords));
+ else {
+ if (createAccount(usernameFieldValue, passwordFieldValue)) {
+ SharedPreferences.Editor settingsEditor = settings.edit();
+ settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
+ settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
+ settingsEditor.commit();
+ finish();
+ }
+ }
+ }
+ });
+ }
}
--- a/src/com/beem/project/beem/ui/EditSettings.java Sat Jun 20 22:42:26 2009 +0200
+++ b/src/com/beem/project/beem/ui/EditSettings.java Mon Jun 22 15:59:18 2009 +0200
@@ -30,485 +30,485 @@
*/
public class EditSettings extends Activity {
- private final static String LOG_MSG_SETTINGS_SAVED = "Settings saved successfully.";
- private final static String LOG_MSG_XMPP_SETTINGS_REGISTERED = "XMPP Settings has been registered.";
- private final static String LOG_MSG_ACCOUNT_SETTINGS_REGISTERED = "Account Settings has been registered.";
- private final static String LOG_MSG_PROXY_SETTINGS_REGISTERED = "Proxy Settings has been registered.";
-
- private final static boolean DEFAULT_BOOLEAN_VALUE = false;
- private final static String DEFAULT_STRING_VALUE = "";
- private final static int DEFAULT_INT_VALUE = 0;
-
- private final static String DEFAULT_XMPP_PORT = "5222";
+ private final static String LOG_MSG_SETTINGS_SAVED = "Settings saved successfully.";
+ private final static String LOG_MSG_XMPP_SETTINGS_REGISTERED = "XMPP Settings has been registered.";
+ private final static String LOG_MSG_ACCOUNT_SETTINGS_REGISTERED = "Account Settings has been registered.";
+ private final static String LOG_MSG_PROXY_SETTINGS_REGISTERED = "Proxy Settings has been registered.";
- private final static int NOTIFICATION_DURATION = Toast.LENGTH_SHORT;
-
- private SharedPreferences settings = null;
+ private final static boolean DEFAULT_BOOLEAN_VALUE = false;
+ private final static String DEFAULT_STRING_VALUE = "";
+ private final static int DEFAULT_INT_VALUE = 0;
- private EditText accUsernameField = null;
- private EditText accPasswordField = null;
-
- private EditText xmppServerField = null;
- private EditText xmppPortField = null;
- private CheckBox xmppUseTLSCheckBox = null;
+ private final static String DEFAULT_XMPP_PORT = "5222";
- private CheckBox proxyUseCheckBox = null;
- private Spinner proxyTypeSpinner = null;
- private EditText proxyServerField = null;
- private EditText proxyPortField = null;
- private EditText proxyUsernameField = null;
- private EditText proxyPasswordField = null;
+ private final static int NOTIFICATION_DURATION = Toast.LENGTH_SHORT;
+
+ private SharedPreferences settings = null;
- /**
- * Add a labeled "Account" tab on the tabbed window view passed by parameter
- *
- * @param tHost
- * a tabbed window view
- */
- private void addAccountTab(TabHost tHost) {
- TabHost.TabSpec accountTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_account));
- accountTab.setIndicator(getString(R.string.settings_tab_label_account));
- accountTab.setContent(R.id.settings_account);
- tHost.addTab(accountTab);
- }
+ private EditText accUsernameField = null;
+ private EditText accPasswordField = null;
- /**
- * Add a labeled "Proxy" tab on the tabbed window view passed by parameter
- *
- * @param tHost
- * a tabbed window view
- */
- private void addProxyTab(TabHost tHost) {
- TabHost.TabSpec proxyTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_proxy));
- proxyTab.setIndicator(getString(R.string.settings_tab_label_proxy));
- proxyTab.setContent(R.id.settings_proxy);
- tHost.addTab(proxyTab);
- }
+ private EditText xmppServerField = null;
+ private EditText xmppPortField = null;
+ private CheckBox xmppUseTLSCheckBox = null;
- /**
- * Add a labeled "XMPP" tab on the tabbed window view passed by parameter
- *
- * @param tHost
- * a tabbed window view
- */
- private void addXMPPTab(TabHost tHost) {
- TabHost.TabSpec personalTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_xmpp));
- personalTab.setIndicator(getString(R.string.settings_tab_label_xmpp));
- personalTab.setContent(R.id.settings_xmpp);
- tHost.addTab(personalTab);
- }
-
- /**
- * Disable proxy parameters fields
- */
- private void disableProxyParameters() {
- proxyTypeSpinner.setEnabled(false);
- proxyServerField.setEnabled(false);
- proxyPortField.setEnabled(false);
- proxyUsernameField.setEnabled(false);
- proxyPasswordField.setEnabled(false);
- }
-
- private void displayNotification(CharSequence msg) {
- Toast toast = Toast.makeText(getApplicationContext(), msg, NOTIFICATION_DURATION);
- toast.show();
- }
+ private CheckBox proxyUseCheckBox = null;
+ private Spinner proxyTypeSpinner = null;
+ private EditText proxyServerField = null;
+ private EditText proxyPortField = null;
+ private EditText proxyUsernameField = null;
+ private EditText proxyPasswordField = null;
- /**
- * Enable proxy parameters fields
- */
- private void enableProxyParameters() {
- proxyTypeSpinner.setEnabled(true);
- proxyServerField.setEnabled(true);
- proxyPortField.setEnabled(true);
- proxyUsernameField.setEnabled(true);
- proxyPasswordField.setEnabled(true);
- }
+ /**
+ * Add a labeled "Account" tab on the tabbed window view passed by parameter
+ *
+ * @param tHost
+ * a tabbed window view
+ */
+ private void addAccountTab(TabHost tHost) {
+ TabHost.TabSpec accountTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_account));
+ accountTab.setIndicator(getString(R.string.settings_tab_label_account));
+ accountTab.setContent(R.id.settings_account);
+ tHost.addTab(accountTab);
+ }
- /**
- * Retrieve the value of a CheckBox
- *
- * @param viewId
- * @return true if the CheckBox is checked, else false
- */
- private boolean getCheckBoxValue(int viewId) {
- final CheckBox checkBox = (CheckBox) findViewById(viewId);
- if (checkBox.isChecked())
- return (true);
- return (false);
- }
-
- /**
- * Retrieve account password from the preferences
- *
- * @return Registered account password
- */
- private String getRegisteredAccountPassword() {
- return (settings.getString(getString(R.string.settings_key_account_password), DEFAULT_STRING_VALUE));
- }
+ /**
+ * Add a labeled "Proxy" tab on the tabbed window view passed by parameter
+ *
+ * @param tHost
+ * a tabbed window view
+ */
+ private void addProxyTab(TabHost tHost) {
+ TabHost.TabSpec proxyTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_proxy));
+ proxyTab.setIndicator(getString(R.string.settings_tab_label_proxy));
+ proxyTab.setContent(R.id.settings_proxy);
+ tHost.addTab(proxyTab);
+ }
- /**
- * Retrieve account username from the preferences
- *
- * @return Registered account username
- */
- private String getRegisteredAccountUsername() {
- return (settings.getString(getString(R.string.settings_key_account_username), DEFAULT_STRING_VALUE));
- }
-
- /**
- * Retrieve proxy password from the preferences
- *
- * @return Registered proxy password
- */
- private String getRegisteredProxyPassword() {
- return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
- }
-
- /**
- * Retrieve proxy port from the preferences
- *
- * @return Registered proxy port
- */
- private String getRegisteredProxyPort() {
- return (settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE));
- }
+ /**
+ * Add a labeled "XMPP" tab on the tabbed window view passed by parameter
+ *
+ * @param tHost
+ * a tabbed window view
+ */
+ private void addXMPPTab(TabHost tHost) {
+ TabHost.TabSpec personalTab = tHost.newTabSpec(getString(R.string.settings_tab_tag_xmpp));
+ personalTab.setIndicator(getString(R.string.settings_tab_label_xmpp));
+ personalTab.setContent(R.id.settings_xmpp);
+ tHost.addTab(personalTab);
+ }
- /**
- * Retrieve proxy server from the preferences
- *
- * @return Registered proxy server
- */
- private String getRegisteredProxyServer() {
- return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
- }
+ /**
+ * Disable proxy parameters fields
+ */
+ private void disableProxyParameters() {
+ proxyTypeSpinner.setEnabled(false);
+ proxyServerField.setEnabled(false);
+ proxyPortField.setEnabled(false);
+ proxyUsernameField.setEnabled(false);
+ proxyPasswordField.setEnabled(false);
+ }
- /**
- * Retrieve proxy type from the preferences
- *
- * @return Registered proxy type
- */
- private int getRegisteredProxyType() {
- return (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE));
- }
-
- /**
- * Retrieve proxy use from the preferences
- *
- * @return Registered proxy use
- */
- private boolean getRegisteredProxyUse() {
- return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
- }
+ private void displayNotification(CharSequence msg) {
+ Toast toast = Toast.makeText(getApplicationContext(), msg, NOTIFICATION_DURATION);
+ toast.show();
+ }
- /**
- * Retrieve proxy username from the preferences
- *
- * @return Registered proxy username
- */
- private String getRegisteredProxyUsername() {
- return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
- }
-
- /**
- * Retrieve xmpp port from the preferences
- *
- * @return Registered xmpp port
- */
- private String getRegisteredXMPPPort() {
- return (settings.getString(getString(R.string.settings_key_xmpp_port), DEFAULT_XMPP_PORT));
- }
-
- /**
- * Retrieve xmpp server from the preferences
- *
- * @return Registered xmpp server
- */
- private String getRegisteredXMPPServer() {
- return (settings.getString(getString(R.string.settings_key_xmpp_server), DEFAULT_STRING_VALUE));
- }
+ /**
+ * Enable proxy parameters fields
+ */
+ private void enableProxyParameters() {
+ proxyTypeSpinner.setEnabled(true);
+ proxyServerField.setEnabled(true);
+ proxyPortField.setEnabled(true);
+ proxyUsernameField.setEnabled(true);
+ proxyPasswordField.setEnabled(true);
+ }
- /**
- * Retrieve TLS use from the preferences
- *
- * @return Registered TLS use
- */
- private boolean getRegisteredXMPPTLSUse() {
- return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
- }
-
- /**
- * Initialize Account tab fields
- */
- private void initAccountFields() {
- accUsernameField = (EditText) findViewById(R.id.settings_account_username);
- accPasswordField = (EditText) findViewById(R.id.settings_account_password);
- }
+ /**
+ * Retrieve the value of a CheckBox
+ *
+ * @param viewId
+ * @return true if the CheckBox is checked, else false
+ */
+ private boolean getCheckBoxValue(int viewId) {
+ final CheckBox checkBox = (CheckBox) findViewById(viewId);
+ if (checkBox.isChecked())
+ return (true);
+ return (false);
+ }
- /**
- * Initialize all of the components displayed in tabs (EditText fields, CheckBoxes, Spinners...)
- */
- private void initFields() {
- initAccountFields();
- initXMPPFields();
- initProxyFields();
- }
-
- /**
- * Initialize Proxy tab fields
- */
- private void initProxyFields() {
- proxyUseCheckBox = (CheckBox) findViewById(R.id.settings_proxy_use);
- proxyTypeSpinner = (Spinner) findViewById(R.id.settings_proxy_type);
- proxyServerField = (EditText) findViewById(R.id.settings_proxy_server);
- proxyPortField = (EditText) findViewById(R.id.settings_proxy_port);
- proxyUsernameField = (EditText) findViewById(R.id.settings_proxy_username);
- proxyPasswordField = (EditText) findViewById(R.id.settings_proxy_password);
- }
+ /**
+ * Retrieve account password from the preferences
+ *
+ * @return Registered account password
+ */
+ private String getRegisteredAccountPassword() {
+ return (settings.getString(getString(R.string.settings_key_account_password), DEFAULT_STRING_VALUE));
+ }
- /**
- * Initialize proxy's types spinner of the proxy tab
- */
- private void initProxyTypesSpinner() {
- ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
- android.R.layout.simple_spinner_item);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- proxyTypeSpinner.setAdapter(adapter);
- }
-
- /**
- * Initialize the checkbox allowing user to use a proxy
- */
- private void initProxyUseCheckBox() {
- proxyUseCheckBox.setOnClickListener(new OnClickListener() {
+ /**
+ * Retrieve account username from the preferences
+ *
+ * @return Registered account username
+ */
+ private String getRegisteredAccountUsername() {
+ return (settings.getString(getString(R.string.settings_key_account_username), DEFAULT_STRING_VALUE));
+ }
- public void onClick(View v) {
- if (proxyUseCheckBox.isChecked()) {
- enableProxyParameters();
- } else {
- disableProxyParameters();
- }
- }
- });
- }
+ /**
+ * Retrieve proxy password from the preferences
+ *
+ * @return Registered proxy password
+ */
+ private String getRegisteredProxyPassword() {
+ return (settings.getString(getString(R.string.settings_key_proxy_password), DEFAULT_STRING_VALUE));
+ }
- /**
- * Initialize "save" buttons allowing user to save settings
- */
- private void initSaveButtons() {
- final ArrayList<Integer> views = new ArrayList<Integer>();
- Button saveButton = null;
-
- views.add(R.id.settings_account_button_save);
- views.add(R.id.settings_proxy_button_save);
- views.add(R.id.settings_xmpp_button_save);
-
- for (int i = 0; i < views.size(); i++) {
- saveButton = (Button) findViewById(views.get(i));
- saveButton.setFocusable(true);
- saveButton.setOnClickListener(new View.OnClickListener() {
-
- public void onClick(View v) {
- saveSettings();
- }
- });
+ /**
+ * Retrieve proxy port from the preferences
+ *
+ * @return Registered proxy port
+ */
+ private String getRegisteredProxyPort() {
+ return (settings.getString(getString(R.string.settings_key_proxy_port), DEFAULT_STRING_VALUE));
}
- }
- /**
- * Initialize tabbed window view by adding tabs and setting the default tab
- */
- private void initTabbedWindow() {
- TabHost tHost = (TabHost) this.findViewById(R.id.settings_tab_host);
- tHost.setup();
- addAccountTab(tHost);
- addXMPPTab(tHost);
- addProxyTab(tHost);
- tHost.setCurrentTab(0);
- }
-
- /**
- * Initialize XMPP tab fields
- */
- private void initXMPPFields() {
- xmppServerField = (EditText) findViewById(R.id.settings_xmpp_server);
- xmppPortField = (EditText) findViewById(R.id.settings_xmpp_port);
- xmppUseTLSCheckBox = (CheckBox) findViewById(R.id.settings_xmpp_use_tls);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.edit_settings);
- initTabbedWindow();
- initFields();
- settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
- }
+ /**
+ * Retrieve proxy server from the preferences
+ *
+ * @return Registered proxy server
+ */
+ private String getRegisteredProxyServer() {
+ return (settings.getString(getString(R.string.settings_key_proxy_server), DEFAULT_STRING_VALUE));
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater mInflater = getMenuInflater();
- mInflater.inflate(R.menu.edit_settings, menu);
- return true;
- }
+ /**
+ * Retrieve proxy type from the preferences
+ *
+ * @return Registered proxy type
+ */
+ private int getRegisteredProxyType() {
+ return (settings.getInt(getString(R.string.settings_key_proxy_type), DEFAULT_INT_VALUE));
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- Intent i = null;
- switch (item.getItemId()) {
- case R.id.settings_menu_create_account:
- i = new Intent(this, CreateAccount.class);
- startActivity(i);
- return true;
- case R.id.settings_menu_login:
- finish();
- return true;
+ /**
+ * Retrieve proxy use from the preferences
+ *
+ * @return Registered proxy use
+ */
+ private boolean getRegisteredProxyUse() {
+ return (settings.getBoolean(getString(R.string.settings_key_proxy_use), DEFAULT_BOOLEAN_VALUE));
}
- return false;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onResume() {
- super.onResume();
- refreshAccountTabFields();
- refreshXMPPTabFields();
- refreshProxyTabFields();
- if (!proxyUseCheckBox.isChecked())
- disableProxyParameters();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onStart() {
- super.onStart();
- initProxyTypesSpinner();
- initProxyUseCheckBox();
- initSaveButtons();
- }
-
- /**
- * Refresh values of "Account" tab fields
- */
- private void refreshAccountTabFields() {
- accUsernameField.setText(getRegisteredAccountUsername());
- accPasswordField.setText(getRegisteredAccountPassword());
- }
+ /**
+ * Retrieve proxy username from the preferences
+ *
+ * @return Registered proxy username
+ */
+ private String getRegisteredProxyUsername() {
+ return (settings.getString(getString(R.string.settings_key_proxy_username), DEFAULT_STRING_VALUE));
+ }
- /**
- * Refresh values of "Account" tab fields
- */
- private void refreshProxyTabFields() {
- proxyUseCheckBox.setChecked(getRegisteredProxyUse());
- proxyTypeSpinner.setSelection(getRegisteredProxyType());
- proxyServerField.setText(getRegisteredProxyServer());
- proxyPortField.setText(getRegisteredProxyPort());
- proxyUsernameField.setText(getRegisteredProxyUsername());
- proxyPasswordField.setText(getRegisteredProxyPassword());
- }
+ /**
+ * Retrieve xmpp port from the preferences
+ *
+ * @return Registered xmpp port
+ */
+ private String getRegisteredXMPPPort() {
+ return (settings.getString(getString(R.string.settings_key_xmpp_port), DEFAULT_XMPP_PORT));
+ }
- /**
- * Refresh values of "Account" tab fields
- */
- private void refreshXMPPTabFields() {
- xmppServerField.setText(getRegisteredXMPPServer());
- xmppPortField.setText(getRegisteredXMPPPort());
- xmppUseTLSCheckBox.setChecked(getRegisteredXMPPTLSUse());
- }
-
- /**
- * Register account settings changes in SharedPreferences.Editor object passed by parameter
- *
- * @param settingsEditor
- */
- private void registerAccountSettingsChanges(SharedPreferences.Editor settingsEditor) {
- final String usernameFieldValue = accUsernameField.getText().toString();
- final String passwordFieldValue = accPasswordField.getText().toString();
-
- if (getRegisteredAccountUsername().equals(usernameFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
- if (getRegisteredAccountPassword().equals(passwordFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
- Log.i(getString(R.string.edit_settings_tag), LOG_MSG_ACCOUNT_SETTINGS_REGISTERED);
- }
+ /**
+ * Retrieve xmpp server from the preferences
+ *
+ * @return Registered xmpp server
+ */
+ private String getRegisteredXMPPServer() {
+ return (settings.getString(getString(R.string.settings_key_xmpp_server), DEFAULT_STRING_VALUE));
+ }
- /**
- * Register proxy settings changes in SharedPreferences.Editor object passed by parameter
- *
- * @param settingsEditor
- */
- private void registerProxySettingsChanges(SharedPreferences.Editor settingsEditor) {
- final int proxyTypeFieldValue = proxyTypeSpinner.getSelectedItemPosition();
- final String serverFieldValue = proxyServerField.getText().toString();
- final String portFieldValue = proxyPortField.getText().toString();
- final String usernameFieldValue = proxyUsernameField.getText().toString();
- final String passwordFieldValue = proxyPasswordField.getText().toString();
+ /**
+ * Retrieve TLS use from the preferences
+ *
+ * @return Registered TLS use
+ */
+ private boolean getRegisteredXMPPTLSUse() {
+ return (settings.getBoolean(getString(R.string.settings_key_xmpp_tls_use), DEFAULT_BOOLEAN_VALUE));
+ }
- if (getRegisteredProxyType() != proxyTypeFieldValue)
- settingsEditor.putInt(getString(R.string.settings_key_proxy_type), proxyTypeFieldValue);
- if (getRegisteredProxyServer().equals(serverFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_proxy_server), serverFieldValue);
- if (getRegisteredProxyPort().equals(portFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_proxy_port), portFieldValue);
- if (getRegisteredProxyUsername().equals(usernameFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_proxy_username), usernameFieldValue);
- if (getRegisteredProxyPassword().equals(passwordFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_proxy_password), passwordFieldValue);
- Log.i(getString(R.string.edit_settings_tag), LOG_MSG_PROXY_SETTINGS_REGISTERED);
- }
+ /**
+ * Initialize Account tab fields
+ */
+ private void initAccountFields() {
+ accUsernameField = (EditText) findViewById(R.id.settings_account_username);
+ accPasswordField = (EditText) findViewById(R.id.settings_account_password);
+ }
- /**
- * Register XMPP settings changes in SharedPreferences.Editor object passed by parameter
- *
- * @param settingsEditor
- */
- private void registerXMPPSettingsChanges(SharedPreferences.Editor settingsEditor) {
- final boolean tlsUseCheckBoxValue = getCheckBoxValue(R.id.settings_xmpp_use_tls);
- final String serverFieldValue = xmppServerField.getText().toString();
- final String portFieldValue = xmppPortField.getText().toString();
+ /**
+ * Initialize all of the components displayed in tabs (EditText fields, CheckBoxes, Spinners...)
+ */
+ private void initFields() {
+ initAccountFields();
+ initXMPPFields();
+ initProxyFields();
+ }
- if (getRegisteredXMPPTLSUse() != tlsUseCheckBoxValue)
- settingsEditor.putBoolean(getString(R.string.settings_key_xmpp_tls_use), tlsUseCheckBoxValue);
- if (getRegisteredXMPPServer().equals(serverFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_xmpp_server), serverFieldValue);
- if (getRegisteredXMPPPort().equals(portFieldValue) == false)
- settingsEditor.putString(getString(R.string.settings_key_xmpp_port), portFieldValue);
- Log.i(getString(R.string.edit_settings_tag), LOG_MSG_XMPP_SETTINGS_REGISTERED);
- }
-
- /**
- * Save settings in shared preferences
- */
- private void saveSettings() {
- final SharedPreferences.Editor settingsEditor = settings.edit();
- final boolean proxyUseCheckBoxValue = getCheckBoxValue(R.id.settings_proxy_use);
-
- if (getRegisteredProxyUse() != proxyUseCheckBoxValue)
- settingsEditor.putBoolean(getString(R.string.settings_key_proxy_use), proxyUseCheckBoxValue);
- if (proxyUseCheckBoxValue)
- registerProxySettingsChanges(settingsEditor);
- registerAccountSettingsChanges(settingsEditor);
- registerXMPPSettingsChanges(settingsEditor);
-
- if (settingsEditor.commit()) {
- displayNotification(getText(R.string.settings_saved_ok));
- Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
+ /**
+ * Initialize Proxy tab fields
+ */
+ private void initProxyFields() {
+ proxyUseCheckBox = (CheckBox) findViewById(R.id.settings_proxy_use);
+ proxyTypeSpinner = (Spinner) findViewById(R.id.settings_proxy_type);
+ proxyServerField = (EditText) findViewById(R.id.settings_proxy_server);
+ proxyPortField = (EditText) findViewById(R.id.settings_proxy_port);
+ proxyUsernameField = (EditText) findViewById(R.id.settings_proxy_username);
+ proxyPasswordField = (EditText) findViewById(R.id.settings_proxy_password);
}
- stopService(new Intent(this, BeemService.class));
- }
+ /**
+ * Initialize proxy's types spinner of the proxy tab
+ */
+ private void initProxyTypesSpinner() {
+ ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
+ android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ proxyTypeSpinner.setAdapter(adapter);
+ }
+
+ /**
+ * Initialize the checkbox allowing user to use a proxy
+ */
+ private void initProxyUseCheckBox() {
+ proxyUseCheckBox.setOnClickListener(new OnClickListener() {
+
+ public void onClick(View v) {
+ if (proxyUseCheckBox.isChecked()) {
+ enableProxyParameters();
+ } else {
+ disableProxyParameters();
+ }
+ }
+ });
+ }
+
+ /**
+ * Initialize "save" buttons allowing user to save settings
+ */
+ private void initSaveButtons() {
+ final ArrayList<Integer> views = new ArrayList<Integer>();
+ Button saveButton = null;
+
+ views.add(R.id.settings_account_button_save);
+ views.add(R.id.settings_proxy_button_save);
+ views.add(R.id.settings_xmpp_button_save);
+
+ for (int i = 0; i < views.size(); i++) {
+ saveButton = (Button) findViewById(views.get(i));
+ saveButton.setFocusable(true);
+ saveButton.setOnClickListener(new View.OnClickListener() {
+
+ public void onClick(View v) {
+ saveSettings();
+ }
+ });
+ }
+ }
+
+ /**
+ * Initialize tabbed window view by adding tabs and setting the default tab
+ */
+ private void initTabbedWindow() {
+ TabHost tHost = (TabHost) this.findViewById(R.id.settings_tab_host);
+ tHost.setup();
+ addAccountTab(tHost);
+ addXMPPTab(tHost);
+ addProxyTab(tHost);
+ tHost.setCurrentTab(0);
+ }
+
+ /**
+ * Initialize XMPP tab fields
+ */
+ private void initXMPPFields() {
+ xmppServerField = (EditText) findViewById(R.id.settings_xmpp_server);
+ xmppPortField = (EditText) findViewById(R.id.settings_xmpp_port);
+ xmppUseTLSCheckBox = (CheckBox) findViewById(R.id.settings_xmpp_use_tls);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.edit_settings);
+ initTabbedWindow();
+ initFields();
+ settings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater mInflater = getMenuInflater();
+ mInflater.inflate(R.menu.edit_settings, menu);
+ return true;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ Intent i = null;
+ switch (item.getItemId()) {
+ case R.id.settings_menu_create_account:
+ i = new Intent(this, CreateAccount.class);
+ startActivity(i);
+ return true;
+ case R.id.settings_menu_login:
+ finish();
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onResume() {
+ super.onResume();
+ refreshAccountTabFields();
+ refreshXMPPTabFields();
+ refreshProxyTabFields();
+
+ if (!proxyUseCheckBox.isChecked())
+ disableProxyParameters();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onStart() {
+ super.onStart();
+ initProxyTypesSpinner();
+ initProxyUseCheckBox();
+ initSaveButtons();
+ }
+
+ /**
+ * Refresh values of "Account" tab fields
+ */
+ private void refreshAccountTabFields() {
+ accUsernameField.setText(getRegisteredAccountUsername());
+ accPasswordField.setText(getRegisteredAccountPassword());
+ }
+
+ /**
+ * Refresh values of "Account" tab fields
+ */
+ private void refreshProxyTabFields() {
+ proxyUseCheckBox.setChecked(getRegisteredProxyUse());
+ proxyTypeSpinner.setSelection(getRegisteredProxyType());
+ proxyServerField.setText(getRegisteredProxyServer());
+ proxyPortField.setText(getRegisteredProxyPort());
+ proxyUsernameField.setText(getRegisteredProxyUsername());
+ proxyPasswordField.setText(getRegisteredProxyPassword());
+ }
+
+ /**
+ * Refresh values of "Account" tab fields
+ */
+ private void refreshXMPPTabFields() {
+ xmppServerField.setText(getRegisteredXMPPServer());
+ xmppPortField.setText(getRegisteredXMPPPort());
+ xmppUseTLSCheckBox.setChecked(getRegisteredXMPPTLSUse());
+ }
+
+ /**
+ * Register account settings changes in SharedPreferences.Editor object passed by parameter
+ *
+ * @param settingsEditor
+ */
+ private void registerAccountSettingsChanges(SharedPreferences.Editor settingsEditor) {
+ final String usernameFieldValue = accUsernameField.getText().toString();
+ final String passwordFieldValue = accPasswordField.getText().toString();
+
+ if (getRegisteredAccountUsername().equals(usernameFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_account_username), usernameFieldValue);
+ if (getRegisteredAccountPassword().equals(passwordFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_account_password), passwordFieldValue);
+ Log.i(getString(R.string.edit_settings_tag), LOG_MSG_ACCOUNT_SETTINGS_REGISTERED);
+ }
+
+ /**
+ * Register proxy settings changes in SharedPreferences.Editor object passed by parameter
+ *
+ * @param settingsEditor
+ */
+ private void registerProxySettingsChanges(SharedPreferences.Editor settingsEditor) {
+ final int proxyTypeFieldValue = proxyTypeSpinner.getSelectedItemPosition();
+ final String serverFieldValue = proxyServerField.getText().toString();
+ final String portFieldValue = proxyPortField.getText().toString();
+ final String usernameFieldValue = proxyUsernameField.getText().toString();
+ final String passwordFieldValue = proxyPasswordField.getText().toString();
+
+ if (getRegisteredProxyType() != proxyTypeFieldValue)
+ settingsEditor.putInt(getString(R.string.settings_key_proxy_type), proxyTypeFieldValue);
+ if (getRegisteredProxyServer().equals(serverFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_proxy_server), serverFieldValue);
+ if (getRegisteredProxyPort().equals(portFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_proxy_port), portFieldValue);
+ if (getRegisteredProxyUsername().equals(usernameFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_proxy_username), usernameFieldValue);
+ if (getRegisteredProxyPassword().equals(passwordFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_proxy_password), passwordFieldValue);
+ Log.i(getString(R.string.edit_settings_tag), LOG_MSG_PROXY_SETTINGS_REGISTERED);
+ }
+
+ /**
+ * Register XMPP settings changes in SharedPreferences.Editor object passed by parameter
+ *
+ * @param settingsEditor
+ */
+ private void registerXMPPSettingsChanges(SharedPreferences.Editor settingsEditor) {
+ final boolean tlsUseCheckBoxValue = getCheckBoxValue(R.id.settings_xmpp_use_tls);
+ final String serverFieldValue = xmppServerField.getText().toString();
+ final String portFieldValue = xmppPortField.getText().toString();
+
+ if (getRegisteredXMPPTLSUse() != tlsUseCheckBoxValue)
+ settingsEditor.putBoolean(getString(R.string.settings_key_xmpp_tls_use), tlsUseCheckBoxValue);
+ if (getRegisteredXMPPServer().equals(serverFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_xmpp_server), serverFieldValue);
+ if (getRegisteredXMPPPort().equals(portFieldValue) == false)
+ settingsEditor.putString(getString(R.string.settings_key_xmpp_port), portFieldValue);
+ Log.i(getString(R.string.edit_settings_tag), LOG_MSG_XMPP_SETTINGS_REGISTERED);
+ }
+
+ /**
+ * Save settings in shared preferences
+ */
+ private void saveSettings() {
+ final SharedPreferences.Editor settingsEditor = settings.edit();
+ final boolean proxyUseCheckBoxValue = getCheckBoxValue(R.id.settings_proxy_use);
+
+ if (getRegisteredProxyUse() != proxyUseCheckBoxValue)
+ settingsEditor.putBoolean(getString(R.string.settings_key_proxy_use), proxyUseCheckBoxValue);
+ if (proxyUseCheckBoxValue)
+ registerProxySettingsChanges(settingsEditor);
+ registerAccountSettingsChanges(settingsEditor);
+ registerXMPPSettingsChanges(settingsEditor);
+
+ if (settingsEditor.commit()) {
+ displayNotification(getText(R.string.settings_saved_ok));
+ Log.i(getString(R.string.edit_settings_tag), LOG_MSG_SETTINGS_SAVED);
+ }
+
+ stopService(new Intent(this, BeemService.class));
+ }
}