--- a/res/layout/chat.xml Tue Aug 10 01:46:51 2010 +0200
+++ b/res/layout/chat.xml Tue Aug 10 20:36:16 2010 +0200
@@ -35,8 +35,8 @@
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1" android:transcriptMode="normal"
android:stackFromBottom="true"
+ android:fadingEdge="none" android:padding="4px"
android:fastScrollEnabled="true" android:smoothScrollbar="false"
- android:layout_marginBottom="20sp" android:padding="4px"
android:focusable="true"/>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
--- a/res/menu/contact_list.xml Tue Aug 10 01:46:51 2010 +0200
+++ b/res/menu/contact_list.xml Tue Aug 10 20:36:16 2010 +0200
@@ -6,6 +6,9 @@
<item android:id="@+id/menu_change_status"
android:visible="true"
android:title="@string/contact_list_menu_status"/>
+ <item android:id="@+id/contact_list_menu_chatlist"
+ android:visible="true" android:icon="@drawable/ic_menu_chat_dashboard"
+ android:title="@string/chat_menu_change_chat"/>
<item android:id="@+id/contact_list_menu_settings"
android:visible="true"
android:title="@string/contact_list_menu_settings"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/res/values-es/strings.xml Tue Aug 10 20:36:16 2010 +0200
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+<!-- Generic terms -->
+<string name="app_name">Beem</string>
+<string name="OkButton">Aceptar</string>
+<string name="ClearButton">Limpiar</string>
+<string name="CancelButton">Cancelar</string>
+<string name="AcceptButton">Autorizar</string>
+<string name="RefuseButton">Denegar</string>
+<string name="JabberID">JabberID</string>
+<string name="Password">Contraseña</string>
+<string name="Continue">Continuar</string>
+
+<!-- AccountConfigure class -->
+<string name="AccountConfigureManualConfiguration">Configuración manual</string>
+
+<!-- Beem class -->
+<string name="BeemJabberID">JabberID</string>
+
+<!-- BeemApplication class -->
+<string name="BeemApplicationConnect">Conectando...</string>
+
+<!-- BeemService class -->
+<string name="BeemServiceDescription">Usa el servicio Beem</string>
+<string name="BeemServiceCreated">Servicio Beem creado</string>
+<string name="BeemServiceDestroyed">Servicio Beem suprimido</string>
+
+<!-- ContactDialog class -->
+<string name="CDChat">Chat</string>
+<string name="CDCall">Llamada</string>
+<string name="CDInfos">Gestión de usuario</string>
+
+<!-- AddContact class -->
+<string name="AddCActTitle">Beem - Añadir contacto</string>
+
+<string name="AddCLogin">Usuario</string>
+<string name="AddCAlias">Alias</string>
+<string name="AddCGroup">Grupo</string>
+<string name="AddCOkButton">Añadir</string>
+<string name="AddCContactAdded">Contacto añadido</string>
+<string name="AddCContactAddedError">Error añadiendo contacto</string>
+<string name="AddCContactAddedLoginError">Error en el login</string>
+<string name="AddCBadForm">Formulario incorrecto</string>
+<string name="AddCContactAlready">Contacto ya existe</string>
+
+<!-- ChangeStatus class -->
+<string name="ChangeStatusActTitle">Beem - Cambiar mi estado</string>
+<string name="ChangeStatusType">Mi estado</string>
+<string name="ChangeStatusMessage">Mi mensaje personal</string>
+<string name="OpenContactList">Abrir lista de contactos</string>
+
+<string name="MenuAddContact">Añadir contacto</string>
+<string name="MenuAccountAbout">Proyecto Beem</string>
+<string name="MenuAccountCreate">Crear cuenta</string>
+<string name="MenuConnection">Editar cuenta</string>
+<string name="ChangeStatusOk">Actualizando estado</string>
+<string name="ChangeStatusNoChange">Nada que cambiar</string>
+
+<!-- Settings class -->
+<string name="SettingsText">Editar su usuario</string>
+<string name="SettingsPassword">Editar su contraseña</string>
+<string name="SettingsProxy">Proxy</string>
+<string name="SettingsProxyProxy">Usar un servidor proxy</string>
+<string name="SettingsProxySummary">Iniciar a traves de un servidor proxy</string>
+<string name="SettingsProxyType">Protocolo</string>
+<string name="SettingsProxyTypeSummary">Escoja el tipo de servidor proxy</string>
+<string name="SettingsProxyServer">Editar direccion del servidor proxy</string>
+<string name="SettingsProxyPort">Editar puerto del servidor proxy</string>
+<string name="SettingsProxyUser">Opcional, permitir auto-autentificarse en el server proxy.</string>
+<string name="SettingsProxyPassword">Opcional, permitir auto-autentificarse en el server proxy.</string>
+<string name="SettingsAdvanced">Avanzado</string>
+<string name="SettingsAdvancedOptions">Opciones especificas del server</string>
+<string name="SettingsAdvancedRecoDelay">Modificar retraso de conexion</string>
+<string name="SettingsAdvancedSpecOpt">Marca esta casilla si deseas usar un servidor especifico para esta conexion</string>
+<string name="SettingsAdvancedAddOpt">Editar direccion del server</string>
+<string name="SettingsAdvancedPortOpt">Editar puerto del server</string>
+<string name="SettingsResourceTitle">Recurso</string>
+<string name="SettingsPriorityTitle">Prioridad</string>
+<string name="SettingsResourceSummary">Establecer recursosXMPP</string>
+<string name="SettingsPrioritySummary">Establecer prioridades</string>
+<string name="contact_list_preferences">Lista de Amigos</string>
+<string name="contact_list_preferences_sum">A set of display options for your buddy list
+</string>
+<string name="CLP_hide_groups">Ocultar grupos</string>
+<string name="CLP_hide_groups_sum">Opciones de ocultar grupos</string>
+<string name="CLP_hidden_contact">Ocultar amigos</string>
+<string name="CLP_hidden_contact_sum">Check this option to hide unconnected buddies
+</string>
+<string name="settings_account_username">Nombre de usuario</string>
+<string name="login_username_info_default">beem@beem-project.com</string>
+<string name="settings_account_password">Contraseña</string>
+<string name="settings_account_server">Servidor</string>
+<string name="settings_account_port">Puerto</string>
+<string name="settings_advanced_service_behaviour">Servicio de comportamiento</string>
+<string name="settings_advanced_sum">Opciones de usuarios abanzados</string>
+<string name="settings_xmpp_server">Dirección del servidor XMPP</string>
+<string name="comments_xmpp_server">Comentgarios del servidor XMPP</string>
+<string name="settings_xmpp_port">Puerto XMPP</string>
+<string name="settings_xmpp_use_tls">Establecer SSL/TTL en XMPP</string>
+<string name="settings_reco_delay">Tiempo de reconexión</string>
+<string name="comments_xmpp_port">Puerto por defecto: 5222</string>
+<string name="settings_proxy_sum">Establecer uso de servidor Proxy</string>
+<string name="settings_proxy_use">Conectar mediante servidor proxy</string>
+<string name="settings_proxy_type_prompt">Seleccionar tipo de servidor proxy</string>
+<string name="settings_proxy_server">Servidor proxy</string>
+<string name="settings_proxy_port">Puerto proxy</string>
+<string name="comments_proxy_port">Puerto proxy por defecto 1080</string>
+<string name="settings_proxy_username">Nombre de usuario proxy</string>
+<string name="settings_proxy_password">Contraseña de usuario proxy</string>
+<string name="away_chk_title">Habilitar auto-ausente</string>
+<string name="away_chk_sum">Cambiar estado a ausente cuando la pantalla se apage</string>
+<string name="away_message_title">Mensaje ausente</string>
+<string name="away_message_sum">El mensaje de ausente que sera mostrado</string>
+<string name="away_message_hint">Ausente, my pantalla esta apagada</string>
+<string name="notification_preferences">Configuracion de notificaciones</string>
+<string name="notification_enable_vibrate_title">Habilitar vibracion</string>
+<string name="notification_enable_vibrate_sum">Habilitar vibracion en mensajes entrantes</string>
+<string name="notification_snd_title">Tono de mensaje entrante</string>
+<string name="notification_snd_sum">Configurar tono de mensaje entrante</string>
+
+
+<!-- Subscription class -->
+<string name="SubscriptAccept">Suscripcion aceptada</string>
+<string name="SubscriptError">Error de suscripcion</string>
+<string name="SubscriptRefused">Suscripcion rechazada</string>
+<string name="SubscriptText">%s desea agregarlo a su lista de contactos. Desea autorizarlo/a ?</string>
+<string name="SubscriptTitle">Autorizar contacto ?</string>
+
+<!-- BeemChatManager -->
+<string name="BeemChatManagerNewMessage">Tienes un nuevo mensaje</string>
+
+<!-- BeemBroadcastReceiver class -->
+<string name="BeemBroadcastReceiverDisconnect">BEEM: Ha sido desconectado</string>
+
+<!-- XmppConnectionAdapter class -->
+<string name="AcceptContactRequest">%s le agrego en su lista de contactos.</string>
+<string name="AcceptContactRequestFrom">Autoriza %s para que lo contacte.</string>
+
+<!-- Activities -->
+<string name="login_tag">Beem - Actividad inicio</string>
+<string name="edit_settings_name">Beem - Configuracion</string>
+<string name="edit_settings_tag">Beem - Actividad editar configuracion</string>
+<string name="create_account_name">Beem - Crear una cuenta</string>
+<string name="create_account_tag"></string>
+<string name="contact_list_name">Beem - Contactos</string>
+<string name="contact_list_tag">Beem - Actividad lista contactos</string>
+<string name="user_info_name">Beem - Informacion usuario</string>
+
+<!-- Buttons -->
+<string name="button_create_account">Crear esta cuenta</string>
+<string name="button_create_login_account">Crear y usar esta cuenta</string>
+
+<!-- LogAs Activity -->
+<string name="login_username">Usuario</string>
+<string name="login_password">Contraseña</string>
+<string name="login_error_dialog_title">Inicio sesion - Error</string>
+<string name="login_close_dialog_button">Cerrar</string>
+<string name="login_menu_create_account">Crear una cuenta</string>
+<string name="login_menu_settings">Configuracion</string>
+<string name="login_menu_about">Acerca</string>
+<string name="login_about_title">Beem %s - Acerca</string>
+<string name="login_about_msg">
+Beem is an EPITECH Innovative Project. Visit us at
+http://www.beem-project.com !
+</string>
+<string name="login_about_button">Cerrar</string>
+<string name="login_settings_button">Configuracion</string>
+<string name="login_login_button">Inicio</string>
+<string name="login_login_progress">Conectando. Espere por favor ...</string>
+<string name="login_error_msg">Unfortunately, an error occured.\n\nError
+detail:\n%s</string>
+<string name="login_menu_login">Iniciar sesion</string>
+<string name="login_no_connectivity">No se detecto conexion a internet</string>
+<string name="login_start_msg">Configuracion de parametros en menu</string>
+
+<!-- LoginAnim activity -->
+<string name="loganim_connecting">Conectando ...</string>
+<string name="loganim_authenticating">Autentificando ...</string>
+<string name="loganim_login_success">Inicio correcto</string>
+<string name="loganim_login_failed">Inicio fallido</string>
+
+<!-- EditSettings Activity -->
+<string name="settings_menu_create_account">Crear una cuenta</string>
+<string name="settings_menu_privacy_lists">Administrar mis listas de privacidad</string>
+<string name="settings_saved_ok">Los cambios han sido guardados correctamente.</string>
+
+
+
+<!-- EditSettings Activity Categories -->
+<string name="general_preferences">Preferencias generales</string>
+<string name="user_preferences">Configuracion de usuario (requerido)</string>
+<string name="user_preferences_advanced">Configuracion avanzada de usuario (opcional)</string>
+<string name="network_preferences">Opciones de red</string>
+<string name="proxy_proxy_settings">Configuracion Proxy</string>
+<string name="proxy_user_settings">Configuracion Proxy</string>
+
+<!-- EditSettings Activity Tabs -->
+<string name="settings_tab_tag_account">editar_configuracion_pestaña_cuenta</string>
+<string name="settings_tab_label_account">Cuenta</string>
+<string name="settings_tab_tag_xmpp">editar_configuracion_pestaña_xmpp</string>
+<string name="settings_tab_label_xmpp">XMPP</string>
+<string name="settings_tab_tag_proxy">editar_configuracion_pestaña_proxy</string>
+<string name="settings_tab_label_proxy">Proxy</string>
+
+
+<!-- wizard activities -->
+<string name="account_wizard_text1"><b>Bienvenido a BEEM.</b>\n\nNo ha configurado su cuenta XMPP(Jabber) todavia.\nEscoja una de las siguientes opciones:</string>
+<string name="account_wizard_configure_text"><b>Por favor complete con su cuenta existente</b></string>
+<string name="account_wizard_configure_account">Ya tengo una cuenta y deseo usarla</string>
+<string name="account_wizard_create_account">Deseo crear una nueva cuenta</string>
+
+<!-- Create an account Activity -->
+<string name="create_account_instr_dialog_title">Instrucciones - Crear una cuenta</string>
+<string name="create_account_err_dialog_title">Error - Creando una cuenta</string>
+<string name="create_account_err_dialog_settings_button">Cambiar mi configuracion</string>
+<string name="create_account_close_dialog_button">Cerrar</string>
+<string name="create_account_successfull_after">cuenta %s fue creada correctamente</string>
+<string name="create_account_err_username">Incorrecto JabberID</string>
+<string name="create_account_err_passwords">La clave no coincide</string>
+<string name="create_account_username">Usuario</string>
+<string name="create_account_password">Contraseña</string>
+<string name="create_account_confirm_password">Confirmar Contraseña</string>
+
+<!-- ContactList Activity -->
+<string name="contact_list_menu_add_contact">Añadir a Contacto</string>
+<string name="contact_list_menu_status">Cambiar Estado</string>
+<string name="contact_list_menu_settings">Configuracion</string>
+<string name="contact_list_menu_disconnect">Desconectar</string>
+<string name="contact_list_all_contact">Todos Contactos</string>
+<string name="contact_list_no_group">Sin Grupo</string>
+
+<!-- UserInfo dialog -->
+<string name="userinfo_label_alias">Alias</string>
+<string name="userinfo_label_chg_group">Manten. Grupos</string>
+<string name="userinfo_label_re_subscription">Reenviar Invitacion</string>
+<string name="userinfo_label_block">Bloquear</string>
+<string name="userinfo_label_delete">Borrar</string>
+<string name="userinfo_resend">Reenviar Suscripcion</string>
+<string name="userinfo_sure2delete">Are you sure you want to delete this contact ?
+</string>
+<string name="userinfo_yes">Sí</string>
+<string name="userinfo_no">No</string>
+<string name="userinfo_sureresend">Estas Seguro de Reenviar Invitacion?</string>
+
+<string name="chat_name">Beem - Chat</string>
+<string name="chat_input_default_value">Escribe tu Mensaje</string>
+<string name="chat_self">Yo</string>
+<string name="chat_error">Error</string>
+<string name="chat_send_message">Enviar</string>
+<string name="chat_menu_contacts_list">Lista de Contactos</string>
+<string name="chat_menu_change_chat">Cambiar chat</string>
+<string name="chat_dialog_change_chat_title">Chats abiertos</string>
+<string name="chat_menu_close_chat">Cerrar Chat</string>
+<string name="chat_no_more_chats">No más chats activos</string>
+<string name="chat_state_composing">componiendo un mensaje</string>
+<string name="chat_state_gone">ha dejado la conversación</string>
+<string name="chat_state_active">presta atención a la conversación</string>
+<string name="chat_state_inactive">esta haciendo otra cosa</string>
+
+<string name="contact_status_msg_available">Disponible</string>
+<string name="contact_status_msg_available_chat">Disponible para chatear</string>
+<string name="contact_status_msg_dnd">No interumpir</string>
+<string name="contact_status_msg_away">Fuera</string>
+<string name="contact_status_msg_xa">No Disponibles</string>
+<string name="contact_status_msg_offline">Desconectado</string>
+
+<string name="privacy_list_name">Beem - Manten. mi lista privada</string>
+<string name="privacy_list_no_data">No existe ninguna lista privada registrada</string>
+<string name="privacy_list_menu_create">Crear lista privada</string>
+<string name="privacy_list_create_dialog_title">Crear lista privada</string>
+<string name="privacy_list_create_dialog_list_name_label">Titulo</string>
+<string name="privacy_list_create_dialog_create_button">Crear</string>
+<string name="privacy_list_select_dialog_buddies">Contactos</string>
+<string name="privacy_list_select_dialog_groups">Grupos</string>
+<string name="privacy_list_select_dialog_delete">Borrar</string>
+<string name="privacy_list_delete_dialog_msg">Borrar la lista privada \'%s\' ?</string>
+<string name="privacy_list_delete_dialog_yes">Sí</string>
+<string name="privacy_list_delete_dialog_no">No</string>
+
+<string name="UpdateButton">Actualizar</string>
+
+<!-- Error messages -->
+
+<string name="error_login_authentication">Error Autenticando, mal usuario y contraseña.</string>
+
+<string name="interna_server_error">Error Servidor remoto</string>
+<string name="bad_request">mala pregunta</string>
+<string name="forbidden">prohibido</string>
+<string name="item_not_found">elemento no encontrado</string>
+<string name="conflict">conflicto</string>
+<string name="feature_not_implemented">caracteristica no implementada</string>
+<string name="gone">ir</string>
+<string name="jid_malformed">jid-malformado</string>
+<string name="no_acceptable">no-aceptable</string>
+<string name="not_allowed">no permitido</string>
+<string name="not_authorized">no autorizado</string>
+<string name="payment_required">pago requerido</string>
+<string name="recipient_unavailable">recibidor no disponible</string>
+<string name="redirect">redireccionar</string>
+<string name="registration_required">registro requerido</string>
+<string name="remote_server_not_found">servidor remoto no encontrado</string>
+<string name="remote_server_timeout">Sin respuesta del servidor</string>
+<string name="remote_server_error">Error en servidor remoto</string>
+<string name="resource_constraint">restriccion en recurso</string>
+<string name="service_unavailable">servicio no disponible</string>
+<string name="subscription_required">suscripcion requerida</string>
+<string name="undefined_condition">condicion indefinida</string>
+<string name="unexpected_condition">condicion inesperada</string>
+<string name="request_timeout">tiempo de espera de solicitud </string>
+</resources>
--- a/src/com/beem/project/beem/ui/Chat.java Tue Aug 10 01:46:51 2010 +0200
+++ b/src/com/beem/project/beem/ui/Chat.java Tue Aug 10 20:36:16 2010 +0200
@@ -43,19 +43,18 @@
*/
package com.beem.project.beem.ui;
+import java.text.DateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Date;
-import java.text.DateFormat;
import org.jivesoftware.smack.util.StringUtils;
import android.app.Activity;
-import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.ComponentName;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
@@ -74,9 +73,9 @@
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
+import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
@@ -91,10 +90,11 @@
import com.beem.project.beem.service.aidl.IBeemRosterListener;
import com.beem.project.beem.service.aidl.IChat;
import com.beem.project.beem.service.aidl.IChatManager;
+import com.beem.project.beem.service.aidl.IChatManagerListener;
import com.beem.project.beem.service.aidl.IMessageListener;
-import com.beem.project.beem.service.aidl.IChatManagerListener;
import com.beem.project.beem.service.aidl.IRoster;
import com.beem.project.beem.service.aidl.IXmppFacade;
+import com.beem.project.beem.ui.dialogs.builders.ChatList;
import com.beem.project.beem.utils.BeemBroadcastReceiver;
import com.beem.project.beem.utils.Status;
@@ -272,10 +272,8 @@
try {
final List<Contact> openedChats = mChatManager.getOpenedChatList();
Log.d(TAG, "opened chats = " + openedChats);
- if (openedChats.size() > 0)
- createChatSwitcherDialog(openedChats);
- else
- createNoActiveChatsDialog();
+ Dialog chatList = new ChatList(Chat.this, openedChats).create();
+ chatList.show();
} catch (RemoteException e) {
Log.e(TAG, e.getMessage());
}
@@ -295,41 +293,6 @@
}
/**
- * Create the change chat dialog.
- * @param openedChats A list containing the JID of participants of the opened chats.
- */
- private void createChatSwitcherDialog(final List<Contact> openedChats) {
- CharSequence[] items = new CharSequence[openedChats.size()];
-
- int i = 0;
- for (Contact c : openedChats) {
- items[i++] = c.getName();
- }
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(getString(R.string.chat_dialog_change_chat_title));
- builder.setItems(items, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- Intent chatIntent = new Intent(getApplicationContext(), com.beem.project.beem.ui.Chat.class);
- chatIntent.setData((openedChats.get(item)).toUri());
- startActivity(chatIntent);
- }
- });
- AlertDialog chatSwitcherDialog = builder.create();
- chatSwitcherDialog.show();
- }
-
- /**
- * Create a dialog which notify the user that there're not another one active chat.
- */
- private void createNoActiveChatsDialog() {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(getString(R.string.chat_no_more_chats));
- AlertDialog noActiveChatsDialog = builder.create();
- noActiveChatsDialog.show();
- }
-
- /**
* Change the displayed chat.
* @param contact the targeted contact of the new chat
* @throws RemoteException If a Binder remote-invocation error occurred.
--- a/src/com/beem/project/beem/ui/ContactList.java Tue Aug 10 01:46:51 2010 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Tue Aug 10 20:36:16 2010 +0200
@@ -43,13 +43,12 @@
package com.beem.project.beem.ui;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import org.jivesoftware.smack.util.StringUtils;
@@ -76,6 +75,8 @@
import android.view.ViewGroup;
import android.view.ViewStub;
import android.widget.AdapterView;
+import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
@@ -83,21 +84,21 @@
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
-import android.widget.AdapterView.AdapterContextMenuInfo;
-import android.widget.AdapterView.OnItemClickListener;
import com.beem.project.beem.R;
import com.beem.project.beem.service.Contact;
import com.beem.project.beem.service.PresenceAdapter;
import com.beem.project.beem.service.aidl.IBeemRosterListener;
+import com.beem.project.beem.service.aidl.IChatManager;
import com.beem.project.beem.service.aidl.IRoster;
import com.beem.project.beem.service.aidl.IXmppFacade;
import com.beem.project.beem.ui.dialogs.builders.Alias;
+import com.beem.project.beem.ui.dialogs.builders.ChatList;
import com.beem.project.beem.ui.dialogs.builders.DeleteContact;
import com.beem.project.beem.ui.dialogs.builders.ResendSubscription;
import com.beem.project.beem.utils.BeemBroadcastReceiver;
+import com.beem.project.beem.utils.SortedList;
import com.beem.project.beem.utils.Status;
-import com.beem.project.beem.utils.SortedList;
/**
* The contact list activity displays the roster of the user.
@@ -130,6 +131,7 @@
private IRoster mRoster;
private Contact mSelectedContact;
private IXmppFacade mXmppFacade;
+ private IChatManager mChatManager;
private SharedPreferences mSettings;
private LayoutInflater mInflater;
private BeemBanner mAdapterBanner;
@@ -166,10 +168,20 @@
case R.id.menu_change_status:
startActivity(new Intent(ContactList.this, ChangeStatus.class));
return true;
+ case R.id.contact_list_menu_chatlist:
+ List<Contact> openedChats;
+ try {
+ openedChats = mChatManager.getOpenedChatList();
+ Log.d(TAG, "opened chats = " + openedChats);
+ Dialog chatList = new ChatList(ContactList.this, openedChats).create();
+ chatList.show();
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
+ return true;
case R.id.menu_disconnect:
stopService(SERVICE_INTENT);
finish();
- return true;
default:
return false;
}
@@ -235,7 +247,7 @@
break;
case R.id.contact_list_context_menu_userinfo_subscription:
Dialog subscription = new ResendSubscription(ContactList.this,
- mXmppFacade, mSelectedContact).create();
+ mXmppFacade, mSelectedContact).create();
subscription.show();
result = true;
break;
@@ -456,7 +468,7 @@
if (!mListGroup.contains(group)) {
mListGroup.add(mListGroup.size() - 1, group);
List<Contact> tmplist = new SortedList<Contact>(
- new LinkedList<Contact>(), mComparator);
+ new LinkedList<Contact>(), mComparator);
mContactOnGroup.put(group, tmplist);
}
mContactOnGroup.get(group).remove(contact);
@@ -539,11 +551,11 @@
String noGroup = getString(R.string.contact_list_no_group);
String allGroup = getString(R.string.contact_list_all_contact);
final boolean add = ((!hideDisconnected || Status.statusOnline(contact.getStatus())) && // must show and
- (
- (listName.equals(noGroup) && groups.isEmpty()) || // in no group
- groups.contains(listName) || // or in current
- listName.equals(allGroup) // or in all
- ));
+ (
+ (listName.equals(noGroup) && groups.isEmpty()) || // in no group
+ groups.contains(listName) || // or in current
+ listName.equals(allGroup) // or in all
+ ));
mHandler.post(new Runnable() {
public void run() {
mListContact.remove(contact);
@@ -642,7 +654,7 @@
if (curContact != null) {
TextView v = (TextView) view.findViewById(R.id.contactlistpseudo);
LevelListDrawable mStatusDrawable = (LevelListDrawable) getResources()
- .getDrawable(R.drawable.status_icon);
+ .getDrawable(R.drawable.status_icon);
mStatusDrawable.setLevel(curContact.getStatus());
v.setCompoundDrawablesWithIntrinsicBounds(mStatusDrawable, null, null, null);
v.setText(curContact.getName());
@@ -748,7 +760,6 @@
try {
mRoster = mXmppFacade.getRoster();
if (mRoster != null) {
- List<Contact> tmpContactList = mRoster.getContactList();
List<String> tmpGroupList = mRoster.getGroupsNames();
Collections.sort(tmpGroupList);
mListGroup.clear();
@@ -764,7 +775,8 @@
String group = getString(R.string.contact_list_all_contact);
buildContactList(group);
mRoster.addRosterListener(mBeemRosterListener);
- Log.d(TAG, "add rester listneer");
+ Log.d(TAG, "add roster listener");
+ mChatManager = mXmppFacade.getChatManager();
}
} catch (RemoteException e) {
e.printStackTrace();
@@ -779,6 +791,7 @@
e.printStackTrace();
}
mXmppFacade = null;
+ mChatManager = null;
mRoster = null;
mListContact.clear();
mListGroup.clear();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/ui/dialogs/builders/ChatList.java Tue Aug 10 20:36:16 2010 +0200
@@ -0,0 +1,90 @@
+/*
+ BEEM is a videoconference application on the Android Platform.
+
+ Copyright (C) 2009 by Frederic-Charles Barthelery,
+ Jean-Manuel Da Silva,
+ Nikita Kozlov,
+ Philippe Lago,
+ Jean Baptiste Vergely,
+ Vincent Veronis.
+
+ This file is part of BEEM.
+
+ BEEM is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ BEEM is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with BEEM. If not, see <http://www.gnu.org/licenses/>.
+
+ Please send bug reports with examples or suggestions to
+ contact@beem-project.com or http://dev.beem-project.com/
+
+ Epitech, hereby disclaims all copyright interest in the program "Beem"
+ written by Frederic-Charles Barthelery,
+ Jean-Manuel Da Silva,
+ Nikita Kozlov,
+ Philippe Lago,
+ Jean Baptiste Vergely,
+ Vincent Veronis.
+
+ Nicolas Sadirac, November 26, 2009
+ President of Epitech.
+
+ Flavien Astraud, November 26, 2009
+ Head of the EIP Laboratory.
+
+*/
+package com.beem.project.beem.ui.dialogs.builders;
+
+import java.util.List;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+
+import com.beem.project.beem.R;
+import com.beem.project.beem.service.Contact;
+
+/**
+ * Create the change chat dialog.
+ */
+public class ChatList extends AlertDialog.Builder {
+
+ //private static final String TAG = "Dialogs.Builders > Chat list";
+
+ /**
+ * Constructor.
+ * @param context context activity.
+ * @param openedChats A list containing the JID of participants of the opened chats.
+ */
+ public ChatList(final Context context, final List<Contact> openedChats) {
+ super(context);
+
+ if (openedChats.size() > 0) {
+ CharSequence[] items = new CharSequence[openedChats.size()];
+
+ int i = 0;
+ for (Contact c : openedChats) {
+ items[i++] = c.getName();
+ }
+ setTitle(R.string.chat_dialog_change_chat_title);
+ setItems(items, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int item) {
+ Intent chatIntent = new Intent(context, com.beem.project.beem.ui.Chat.class);
+ chatIntent.setData((openedChats.get(item)).toUri());
+ context.startActivity(chatIntent);
+ }
+ });
+ } else {
+ setMessage(R.string.chat_no_more_chats);
+ }
+ }
+}