Premier jet de l'activite chat, devant remplacer par la suite SendIM.
authordasilvj
Fri, 30 Oct 2009 17:04:52 +0100
changeset 480 eb6f1fbea903
parent 479 7782f6193322
child 481 3be6014b6cf4
Premier jet de l'activite chat, devant remplacer par la suite SendIM.
AndroidManifest.xml
res/layout/chat.xml
res/values-en/strings.xml
res/values-fr/strings.xml
src/com/beem/project/beem/ui/Chat.java
--- 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
+	    
+	}
+    }
+}