Premier jet de l'activite chat, devant remplacer par la suite SendIM.
--- a/AndroidManifest.xml Fri Oct 30 16:24:59 2009 +0100
+++ b/AndroidManifest.xml Fri Oct 30 17:04:52 2009 +0100
@@ -28,6 +28,12 @@
android:name="com.beem.project.beem.service.XmppConnectionAdapter.CONNECTION_CLOSED" />
</intent-filter>
</activity>
+ <activity android:name=".ui.Chat" android:label="@string/chat_name"
+ android:launchMode="singleTop">
+ <intent-filter android:label="Beem Connection">
+ <action android:name="com.beem.project.beem.service.XmppConnectionAdapter.CONNECTION_CLOSED" />
+ </intent-filter>
+ </activity>
<activity android:name=".ui.ChangeStatus" android:label="@string/ChangeStatusActTitle">
<intent-filter android:label="Beem Connection">
<action
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/res/layout/chat.xml Fri Oct 30 17:04:52 2009 +0100
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content">
+ <ImageView android:id="@+id/chat_contact_status_icon"
+ android:adjustViewBounds="true" android:maxWidth="15dip"
+ android:maxHeight="12px" android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:gravity="center_vertical" />
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <TextView android:id="@+id/chat_contact_name"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:lines="1" android:singleLine="true" android:paddingLeft="15sp"
+ android:textSize="14sp" android:textStyle="bold" android:textColor="#FFFFFF" />
+ <TextView android:id="@+id/chat_contact_status_msg"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:lines="1"
+ android:paddingLeft="15sp"
+ android:autoLink="all" android:textSize="12sp" android:textColor="#FFFFFF" />
+ </LinearLayout>
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content">
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content">
+ <EditText android:id="@+id/chat_input"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:cursorVisible="false" android:hint="@string/chat_input_default_value" />
+ </LinearLayout>
+</LinearLayout>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/res/values-en/strings.xml Fri Oct 30 17:04:52 2009 +0100
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Beem</string>
+ <string name="OkButton">Ok</string>
+ <string name="ClearButton">Clear</string>
+ <string name="CancelButton">Cancel</string>
+ <string name="AcceptButton">Accept</string>
+ <string name="RefuseButton">Refuse</string>
+
+ <!-- Beem class -->
+ <string name="BeemJabberID">Jabber ID</string>
+
+ <!-- BeemApplication class -->
+ <string name="BeemApplicationConnect">Connecting...</string>
+
+ <!-- BeemService class -->
+ <string name="BeemServiceDescription">Use Beem Service</string>
+ <string name="BeemServiceCreated">Beem Service Created</string>
+ <string name="BeemServiceDestroyed">Beem Service Destroyed</string>
+
+ <!-- Preferences informations -->
+ <string name="PreferenceStatus">Status</string>
+ <string name="PreferenceStatusText">status_text</string>
+ <string name="PreferenceIsConfigured">preference_is_configured
+ </string>
+
+ <!-- ContactListSettings class -->
+ <string name="CLSServerConnection">Server connection</string>
+ <string name="CLSUserid">User id:</string>
+ <string name="CLSPassword">Password:</string>
+ <string name="CLSService">Service:</string>
+ <string name="CLSHostPort">Port:</string>
+ <string name="CLSProxyInfo">Proxy informations</string>
+ <string name="CLSLogin">Login:</string>
+ <string name="CLSOkButton">Ok</string>
+
+ <!-- ContactDialog class -->
+ <string name="CDChat">Chat</string>
+ <string name="CDCall">Call</string>
+ <string name="CDInfos">Manage User</string>
+
+ <!-- AddContact class -->
+ <string name="AddCActTitle">Beem - Add contact</string>
+
+ <string name="AddCLogin">Login :</string>
+ <string name="AddCAlias">Alias :</string>
+ <string name="AddCGroup">Group :</string>
+ <string name="AddCOkButton">Ok</string>
+ <string name="AddCContactAdded">Contact added</string>
+ <string name="AddCContactAddedError">Error Contact not added</string>
+ <string name="AddCContactAddedLoginError">Error Login</string>
+ <string name="AddCBadForm">Bad form</string>
+ <string name="AddCContactAlready">Contact already exist</string>
+
+ <!-- SendIM class -->
+ <string name="SendIMActTitle">Beem - Chat</string>
+
+ <string name="SendIMSays"> %s says :\n%s\n</string>
+ <string name="SendIMYouSay">You say :\n%s\n</string>
+ <string name="SendIMSameSpeaker">%s\n</string>
+ <string name="SendIMToSendHint">Tip text here</string>
+ <string name="SendIMState">Is : </string>
+ <string name="SendIMErrorMsg">Error : %s\n</string>
+ <string name="SendIMFrom">and is speaking from : </string>
+ <string name="SendIMSmiley">Insert a smiley</string>
+ <string name="SendIMLoginHint">login</string>
+ <string name="SendIMNoStatusSet">No status set</string>
+
+ <!-- ChangeStatus class -->
+ <string name="ChangeStatusText">Type here your status message :</string>
+
+ <string name="ChangeStatusActTitle">Beem - Change status</string>
+ <string name="MenuAddContact">Add new contact</string>
+ <string name="MenuAccountAbout">Beem Project</string>
+ <string name="MenuAccountCreate">Create account</string>
+ <string name="MenuConnection">Edit account</string>
+ <string name="ChangeStatusOk">Updating status</string>
+ <string name="ChangeStatusNoChange">Nothing to change</string>
+
+ <!-- Settings class -->
+ <string name="SettingsText">Modify my username</string>
+ <string name="SettingsPassword">Modify my password</string>
+ <string name="SettingsCheckboxText">Using Gmail</string>
+ <string name="SettingsGmail">Use my Gmail account</string>
+ <string name="SettingsProxy">Proxy</string>
+ <string name="SettingsProxyProxy">Use a proxy server</string>
+ <string name="SettingsProxySummary">Check this box if you\'re behind a proxy server</string>
+ <string name="SettingsProxyType">Protocol</string>
+ <string name="SettingsProxyTypeSummary">Choose the proxy server type</string>
+ <string name="SettingsProxyServer">Address definition of the proxy server</string>
+ <string name="SettingsProxyPort">Port definition of the proxy server</string>
+ <string name="SettingsProxyUser">Optional, allow to authenticate yourself on the proxy server</string>
+ <string name="SettingsProxyPassword">Optional, allow to authenticate yourself on the proxy server</string>
+ <string name="SettingsAdvanced">Advanced</string>
+ <string name="SettingsAdvancedOptions">Use specific server option</string>
+ <string name="SettingsAdvancedRecoDelay">Modify reconnection delay</string>
+ <string name="SettingsAdvancedSpecOpt">Check this box if you want to use a specific server for your connection</string>
+ <string name="SettingsAdvancedAddOpt">Allow to edit the server address</string>
+ <string name="SettingsAdvancedPortOpt">Allow to edit the server port</string>
+
+ <!-- Subscription class -->
+ <string name="SubscriptAccept">Subscription accepted</string>
+ <string name="SubscriptError">Subscription error</string>
+ <string name="SubscriptRefused">Subscription refused</string>
+ <string name="SubscriptText">You have received a request for add by %s. Do you want to accept it ?</string>
+
+ <!-- ContactList class -->
+ <string name="ConListNotConnected">Not connected</string>
+
+ <!-- BeemChatManager -->
+ <string name="BeemChatManagerNewMessage">You\'ve got a new message</string>
+
+ <!-- BeemBroadcastReceiver class -->
+ <string name="BeemBroadcastReceiverDisconnect">You have been disconnected</string>
+
+ <!-- XmppConnectionAdapter class -->
+ <string name="AcceptContactRequest">Accept contact request</string>
+ <string name="AcceptContactRequestFrom">Accept contact request from </string>
+
+ <!--
+ Services
+ -->
+
+ <!--
+ Activities
+ -->
+ <string name="login_tag">Beem - Login Activity</string>
+ <string name="edit_settings_name">Beem - Settings</string>
+ <string name="edit_settings_tag">Beem - EditSettings Activity</string>
+ <string name="create_account_name">Beem - Create an account</string>
+ <string name="create_account_tag">Beem - CreateAccount Activity</string>
+ <string name="contact_list_name">Beem - Contacts</string>
+ <string name="contact_list_tag">Beem - ContactList Activity</string>
+ <string name="user_info_name">Beem - User Info</string>
+
+
+ <!--
+ Buttons
+ -->
+ <string name="button_reset">Reset</string>
+ <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>
+
+
+ <!--
+ LogAs Activity
+ -->
+ <string name="login_username">Username</string>
+ <string name="login_password">Password</string>
+ <string name="login_error_dialog_title">Login - Error</string>
+ <string name="login_close_dialog_button">Close</string>
+ <string name="login_menu_create_account">Create an account</string>
+ <string name="login_menu_settings">Settings</string>
+ <string name="login_menu_about">About</string>
+ <string name="login_about_title">About</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">Close</string>
+ <string name="login_settings_button">Settings</string>
+ <string name="login_login_button">Log in</string>
+ <string name="login_login_progress">Connecting. Please wait...</string>
+ <string name="login_error_msg">Unfortunately, an error occured.\n\nError detail:\n%s</string>
+
+ <!--
+ EditSettings Activity
+ -->
+ <string name="settings_menu_create_account">Create an account</string>
+ <string name="settings_menu_login">Login</string>
+ <string name="settings_saved_ok">The settings have been saved successfully.</string>
+ <string name="settings_filename">beem_settings</string>
+ <string name="settings_reco_delay">Reconnection delay</string>
+ <string name="settings_key_account_username">beem_account_username</string>
+ <string name="settings_key_account_password">beem_account_password</string>
+ <string name="settings_key_xmpp_server">beem_xmpp_server</string>
+ <string name="settings_key_xmpp_port">beem_xmpp_port</string>
+ <string name="settings_key_xmpp_tls_use">beem_xmpp_tls_use</string>
+ <string name="settings_key_proxy_use">beem_xmpp_proxy_use</string>
+ <string name="settings_key_proxy_server">beem_xmpp_proxy_server</string>
+ <string name="settings_key_proxy_port">beem_xmpp_proxy_port</string>
+ <string name="settings_key_proxy_username">beem_xmpp_proxy_username</string>
+ <string name="settings_key_proxy_password">beem_xmpp_proxy_password</string>
+ <string name="settings_key_proxy_type">beem_xmpp_proxy_type</string>
+
+ <!-- EditSettings Activity tabs -->
+ <string name="settings_tab_tag_account">edit_settings_tab_account</string>
+ <string name="settings_tab_label_account">Account</string>
+ <string name="settings_tab_tag_xmpp">edit_settings_tab_xmpp</string>
+ <string name="settings_tab_label_xmpp">XMPP</string>
+ <string name="settings_tab_tag_proxy">edit_settings_tab_proxy</string>
+ <string name="settings_tab_label_proxy">Proxy</string>
+
+ <!-- EditSettings Activity Account tab -->
+ <string name="settings_account_username">Username</string>
+ <string name="settings_account_password">Password</string>
+ <string name="settings_account_server">Server</string>
+ <string name="settings_account_port">Port</string>
+
+ <!-- EditSettings Activity XMPP tab -->
+ <string name="settings_xmpp_server">Server</string>
+ <string name="settings_xmpp_port">Port</string>
+ <string name="settings_xmpp_use_tls">Require SSL/TLS</string>
+
+ <!-- EditSettings Activity Proxy tab -->
+ <string name="settings_proxy_use">Connect using a proxy</string>
+ <string name="settings_proxy_type_prompt">Choose a type of proxy</string>
+ <string name="settings_proxy_server">Server</string>
+ <string name="settings_proxy_port">Port</string>
+ <string name="settings_proxy_username">Username</string>
+ <string name="settings_proxy_password">Password</string>
+
+ <!--
+ Create an account Activity
+ -->
+ <string name="create_account_instr_dialog_title">Create an account - Instructions</string>
+ <string name="create_account_err_dialog_title">Create an account - Error</string>
+ <string name="create_account_err_dialog_settings_button">Change my settings</string>
+ <string name="create_account_close_dialog_button">Close</string>
+ <string name="create_account_successfull_after">has been created successfully</string>
+ <string name="create_account_err_username">Bad JabberID</string>
+ <string name="create_account_err_passwords">Passwords do not match.</string>
+ <string name="create_account_username">Username</string>
+ <string name="create_account_password">Password</string>
+ <string name="create_account_confirm_password">Confirm password</string>
+
+ <!--
+ ContactList Activity
+ -->
+ <string name="contact_list_menu_add_contact">Add a contact</string>
+ <string name="contact_list_menu_settings">Settings</string>
+ <string name="contact_list_all_contact">All contacts</string>
+ <string name="contact_list_no_group">No group</string>
+
+ <!--
+ UserInfo Activity
+ -->
+ <string name="userinfo_label_alias">Alias</string>
+ <string name="userinfo_label_chg_group">Manage groups</string>
+ <string name="userinfo_label_re_suscription">Resend invit</string>
+ <string name="userinfo_label_block">Block</string>
+ <string name="userinfo_label_delete">Delete</string>
+ <string name="userinfo_resend">Suscription resend</string>
+ <string name="userinfo_sure2delete">Are you sure you want to delete this contact?</string>
+ <string name="userinfo_yes">Yes</string>
+ <string name="userinfo_no">No</string>
+ <string name="userinfo_sureresend">Are you sure you want to resend invit?</string>
+
+<string name="chat_name">Beem - Chat</string>
+<string name="chat_input_default_value">Type your message</string>
+</resources>
--- a/res/values-fr/strings.xml Fri Oct 30 16:24:59 2009 +0100
+++ b/res/values-fr/strings.xml Fri Oct 30 17:04:52 2009 +0100
@@ -246,4 +246,6 @@
<string name="userinfo_yes">Oui</string>
<string name="userinfo_no">Non</string>
<string name="userinfo_sureresend">Etes vous sûr de vouloir renvoyer l\'invitation ?</string>
+<string name="chat_input_default_value">Saisissez votre message</string>
+<string name="chat_name">Beem - Chat</string>
</resources>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/ui/Chat.java Fri Oct 30 17:04:52 2009 +0100
@@ -0,0 +1,180 @@
+package com.beem.project.beem.ui;
+
+import java.util.List;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.beem.project.beem.R;
+import com.beem.project.beem.service.Contact;
+import com.beem.project.beem.service.Message;
+import com.beem.project.beem.service.PresenceAdapter;
+import com.beem.project.beem.service.aidl.IBeemRosterListener;
+import com.beem.project.beem.service.aidl.IChat;
+import com.beem.project.beem.service.aidl.IMessageListener;
+import com.beem.project.beem.service.aidl.IRoster;
+import com.beem.project.beem.service.aidl.IXmppFacade;
+import com.beem.project.beem.utils.BeemBroadcastReceiver;
+
+public class Chat extends Activity {
+
+ private static final String TAG = "Chat";
+ private static final Intent SERVICE_INTENT = new Intent();
+ static {
+ SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
+ }
+
+ private Handler _handler = new Handler();
+
+ private IRoster _roster;
+ private Contact _contact;
+
+ private TextView _contactNameTextView;
+ private TextView _contactStatusMsgTextView;
+ private EditText _input;
+
+ private final ServiceConnection _conn = new BeemServiceConnection();
+ private BeemBroadcastReceiver _broadcastReceiver;
+
+
+ /**
+ * Constructor.
+ */
+ public Chat() {
+ super();
+ }
+
+ /**
+ * {@inheritDoc}.
+ */
+ protected void onCreate(Bundle savedBundle) {
+ super.onCreate(savedBundle);
+
+ _contactNameTextView = (TextView) findViewById(R.id.chat_contact_name);
+ _contactStatusMsgTextView = (TextView) findViewById(R.id.chat_contact_status_msg);
+
+ setContentView(R.layout.chat);
+
+ _broadcastReceiver = new BeemBroadcastReceiver(_conn);
+ this.registerReceiver(_broadcastReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
+ }
+
+ /**
+ * {@inheritDoc}.
+ */
+ protected void onDestroy() {
+ super.onDestroy();
+ this.unregisterReceiver(_broadcastReceiver);
+ }
+
+ /**
+ * {@inheritDoc}.
+ */
+ protected void onStart() {
+ super.onStart();
+ }
+
+ /**
+ * {@inheritDoc}.
+ */
+ protected void onStop() {
+ super.onStop();
+ }
+
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+
+ _contact = new Contact(intent.getData());
+ }
+
+ /**
+ *
+ * @author Jamu
+ *
+ */
+ private final class BeemServiceConnection implements ServiceConnection {
+
+ private IXmppFacade _xmppFacade;
+
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ _xmppFacade = IXmppFacade.Stub.asInterface(service);
+ _broadcastReceiver.setBinded(true);
+ try {
+ _roster = _xmppFacade.getRoster();
+ } catch (RemoteException e) {
+ Log.e(TAG, e.getMessage());
+ }
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ _xmppFacade = null;
+ _broadcastReceiver.setBinded(false);
+ }
+ }
+
+
+ /**
+ *
+ * @author Jamu
+ *
+ */
+ private class BeemRosterListener extends IBeemRosterListener.Stub {
+
+ @Override
+ public void onEntriesAdded(List<String> addresses) throws RemoteException {
+ // Nothing to do
+ }
+
+ @Override
+ public void onEntriesDeleted(List<String> addresses) throws RemoteException {
+ // Nothing to do
+ }
+
+ @Override
+ public void onEntriesUpdated(List<String> addresses) throws RemoteException {
+ // Nothing to do
+ }
+
+ @Override
+ public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
+ // Nothing to do
+ }
+
+ @Override
+ public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+ }
+
+ /**
+ *
+ * @author Jamu
+ *
+ */
+ private class OnMessageListener extends IMessageListener.Stub {
+
+ @Override
+ public void processMessage(IChat chat, Message msg) throws RemoteException {
+ // TODO Auto-generated method stub
+ }
+
+ @Override
+ public void stateChanged(IChat chat) throws RemoteException {
+ // TODO Auto-generated method stub
+
+ }
+ }
+}