--- a/.classpath Mon Feb 15 23:37:25 2010 +0100
+++ b/.classpath Wed Feb 17 02:29:11 2010 +0100
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
- <classpathentry kind="lib" path="libs/asmack-jse.jar" sourcepath="/home/nikita/devel/smack/source"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
- <classpathentry kind="lib" path="libs/jlibrtp.jar"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+ <classpathentry kind="lib" path="libs/asmack-jse.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
--- a/AndroidManifest.xml Mon Feb 15 23:37:25 2010 +0100
+++ b/AndroidManifest.xml Wed Feb 17 02:29:11 2010 +0100
@@ -76,6 +76,8 @@
android:label="Beem Service" android:permission="com.beem.project.beem.BEEM_SERVICE">
<intent-filter>
<action android:name="com.beem.project.beem.BeemService"></action>
+ <action android:name="android.intent.action.SCREEN_OFF"></action>
+ <action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</service>
</application>
--- a/res/layout/preferences.xml Mon Feb 15 23:37:25 2010 +0100
+++ b/res/layout/preferences.xml Wed Feb 17 02:29:11 2010 +0100
@@ -10,6 +10,13 @@
<CheckBoxPreference android:title="@string/CLP_hide_groups"
android:defaultValue="false" android:summary="@string/CLP_hide_groups_sum"
android:key="settings_key_hide_groups" />
+ <CheckBoxPreference android:title="@string/away_chk_title"
+ android:defaultValue="true" android:summary="@string/away_chk_sum"
+ android:key="settings_away_chk" />
+ <EditTextPreference android:dependency="settings_away_chk" android:singleLine="true"
+ android:summary="@string/away_message_sum" android:title="@string/away_message_title"
+ android:key="settings_away_message"
+ android:hint="@string/away_message_hint" />
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="@string/user_preferences">
--- a/res/values-fr/strings.xml Mon Feb 15 23:37:25 2010 +0100
+++ b/res/values-fr/strings.xml Wed Feb 17 02:29:11 2010 +0100
@@ -83,8 +83,6 @@
<!-- Settings class -->
<string name="SettingsText">Saisissez votre identifiant de connexion</string>
<string name="SettingsPassword">Saisissez votre mot de passe</string>
- <string name="SettingsCheckboxText">Utilisation de Gmail</string>
- <string name="SettingsGmail">Cochez cette option si vous souhaitez utiliser votre compte Gmail</string>
<string name="SettingsProxy">Proxy</string>
<string name="SettingsProxyProxy">Utiliser un proxy</string>
<string name="SettingsProxySummary">Connectez vous à travers un serveur proxy</string>
@@ -104,6 +102,39 @@
<string name="SettingsPriorityTitle">Priorité</string>
<string name="SettingsResourceSummary">Saisissez la resource à partir de laquelle vous vous connectez</string>
<string name="SettingsPrioritySummary">Saisissez la priorité de votre client</string>
+ <string name="contact_list_preferences">Liste d\'ami(e)s</string>
+ <string name="contact_list_preferences_sum">Une série d\'options d\'affichage de votre liste
+ d\'ami(e)s</string>
+ <string name="CLP_hide_groups">Cachez les groupes</string>
+ <string name="CLP_hide_groups_sum">Cochez cette option pour cacher les groupes</string>
+ <string name="CLP_hidden_contact">Cachez les contacts</string>
+ <string name="CLP_hidden_contact_sum">Cochez cette option pour cacher les contacts déconnectés</string>
+ <string name="settings_account_username">Nom d\'utilisateur</string>
+ <string name="login_username_info_default">beem@beem-project.com</string>
+ <string name="settings_account_password">Mot de passe</string>
+ <string name="settings_account_server">Serveur</string>
+ <string name="settings_account_port">Port</string>
+ <string name="settings_advanced_service_behaviour">Comportement du service</string>
+ <string name="settings_advanced_sum">Une série d\'options pour les utilisateurs avertis</string>
+ <string name="settings_xmpp_server">Serveur</string>
+ <string name="comments_xmpp_server">example.com</string>
+ <string name="settings_xmpp_port">Port</string>
+ <string name="comments_xmpp_port">Default: 5222</string>
+ <string name="settings_xmpp_use_tls">SSL/TLS obligatoire</string>
+ <string name="settings_reco_delay">Délai de reconnexion</string>
+ <string name="settings_proxy_sum">Paramètrez un serveur proxy</string>
+ <string name="settings_proxy_use">Utiliser un proxy</string>
+ <string name="settings_proxy_type_prompt">Choisir un type de proxy</string>
+ <string name="settings_proxy_server">Serveur</string>
+ <string name="settings_proxy_port">Port</string>
+ <string name="comments_proxy_port">Default: 1080</string>
+ <string name="settings_proxy_username">Nom d\'utilisateur</string>
+ <string name="settings_proxy_password">Mot de passe</string>
+ <string name="away_chk_title">away_chk_title</string>
+ <string name="away_chk_sum">away_chk_sum</string>
+ <string name="away_message_title">away_message_title</string>
+ <string name="away_message_sum">away_message_sum</string>
+ <string name="away_message_hint">away_message_hint</string>
<!-- Subscription class -->
<string name="SubscriptAccept">Inscription acceptée</string>
@@ -199,44 +230,6 @@
<string name="settings_tab_tag_proxy">edit_settings_tab_proxy</string>
<string name="settings_tab_label_proxy">Proxy</string>
- <!-- EditSettings Activity General Preferences Tabs -->
- <string name="contact_list_preferences">Liste d\'ami(e)s</string>
- <string name="contact_list_preferences_sum">Une série d\'options d\'affichage de votre liste
- d\'ami(e)s</string>
-
- <string name="CLP_hide_groups">Cachez les groupes</string>
- <string name="CLP_hide_groups_sum">Cochez cette option pour cacher les groupes</string>
- <string name="CLP_hidden_contact">Cachez les contacts</string>
- <string name="CLP_hidden_contact_sum">Cochez cette option pour cacher les contacts déconnectés</string>
-
- <!-- EditSettings Activity Account tab -->
- <string name="settings_account_username">Nom d\'utilisateur</string>
- <string name="login_username_info_default">beem@beem-project.com</string>
- <string name="settings_account_password">Mot de passe</string>
- <string name="settings_account_server">Serveur</string>
- <string name="settings_account_port">Port</string>
-
- <!-- EditSettings Activity Advanced Options tab -->
- <string name="settings_advanced_service_behaviour">Comportement du service</string>
- <string name="settings_advanced_sum">Une série d\'options pour les utilisateurs avertis</string>
- <string name="settings_xmpp_server">Serveur</string>
- <string name="comments_xmpp_server">example.com</string>
- <string name="settings_xmpp_port">Port</string>
- <string name="comments_xmpp_port">Default: 5222</string>
- <string name="settings_xmpp_use_tls">SSL/TLS obligatoire</string>
- <string name="settings_reco_delay">Délai de reconnexion</string>
-
-
- <!-- EditSettings Activity Proxy tab -->
- <string name="settings_proxy_sum">Paramètrez un serveur proxy</string>
- <string name="settings_proxy_use">Utiliser un proxy</string>
- <string name="settings_proxy_type_prompt">Choisir un type de proxy</string>
- <string name="settings_proxy_server">Serveur</string>
- <string name="settings_proxy_port">Port</string>
- <string name="comments_proxy_port">Default: 1080</string>
- <string name="settings_proxy_username">Nom d\'utilisateur</string>
- <string name="settings_proxy_password">Mot de passe</string>
-
<!--
Create an account Activity
-->
--- a/res/values/strings.xml Mon Feb 15 23:37:25 2010 +0100
+++ b/res/values/strings.xml Wed Feb 17 02:29:11 2010 +0100
@@ -71,7 +71,6 @@
<string name="ChangeStatusType">My status</string>
<string name="ChangeStatusMessage">My personal message</string>
<string name="OpenContactList">Open contact list</string>
-
<string name="MenuAddContact">Add new contact</string>
<string name="MenuAccountAbout">Beem Project</string>
@@ -83,8 +82,6 @@
<!-- Settings class -->
<string name="SettingsText">Edit your username</string>
<string name="SettingsPassword">Edit your 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">Login through a proxy server</string>
@@ -104,6 +101,40 @@
<string name="SettingsPriorityTitle">Priority</string>
<string name="SettingsResourceSummary">Set the XMPP resource of your client </string>
<string name="SettingsPrioritySummary">Set the priority of your client</string>
+ <string name="contact_list_preferences">Buddy list</string>
+ <string name="contact_list_preferences_sum">A set of display options for your buddy list
+ </string>
+ <string name="CLP_hide_groups">Hide groups</string>
+ <string name="CLP_hide_groups_sum">Check this option to hide groups</string>
+ <string name="CLP_hidden_contact">Hide buddies</string>
+ <string name="CLP_hidden_contact_sum">Check this option to hide unconnected buddies
+ </string>
+ <string name="settings_account_username">Username</string>
+ <string name="login_username_info_default">beem@beem-project.com</string>
+ <string name="settings_account_password">Password</string>
+ <string name="settings_account_server">Server</string>
+ <string name="settings_account_port">Port</string>
+ <string name="settings_advanced_service_behaviour">Service behaviour</string>
+ <string name="settings_advanced_sum">A set of options for advanced users</string>
+ <string name="settings_xmpp_server">Address</string>
+ <string name="comments_xmpp_server">example.com</string>
+ <string name="settings_xmpp_port">Port</string>
+ <string name="settings_xmpp_use_tls">Require SSL/TLS</string>
+ <string name="settings_reco_delay">Reconnection delay</string>
+ <string name="comments_xmpp_port">Default: 5222</string>
+ <string name="settings_proxy_sum">Settings for proxy usage</string>
+ <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="comments_proxy_port">Default: 1080</string>
+ <string name="settings_proxy_username">Username</string>
+ <string name="settings_proxy_password">Password</string>
+ <string name="away_chk_title">away_chk_title</string>
+ <string name="away_chk_sum">away_chk_sum</string>
+ <string name="away_message_title">away_message_title</string>
+ <string name="away_message_sum">away_message_sum</string>
+ <string name="away_message_hint">away_message_hint</string>
<!-- Subscription class -->
<string name="SubscriptAccept">Subscription accepted</string>
@@ -190,42 +221,10 @@
<string name="settings_tab_label_proxy">Proxy</string>
<!-- EditSettings Activity General Preferences Tabs -->
- <string name="contact_list_preferences">Buddy list</string>
- <string name="contact_list_preferences_sum">A set of display options for your buddy list
- </string>
-
- <string name="CLP_hide_groups">Hide groups</string>
- <string name="CLP_hide_groups_sum">Check this option to hide groups</string>
- <string name="CLP_hidden_contact">Hide buddies</string>
- <string name="CLP_hidden_contact_sum">Check this option to hide unconnected buddies
- </string>
-
- <!-- EditSettings Activity Account tab -->
- <string name="settings_account_username">Username</string>
- <string name="login_username_info_default">beem@beem-project.com</string>
- <string name="settings_account_password">Password</string>
- <string name="settings_account_server">Server</string>
- <string name="settings_account_port">Port</string>
- <!-- EditSettings Activity Advanced Options tab -->
- <string name="settings_advanced_service_behaviour">Service behaviour</string>
- <string name="settings_advanced_sum">A set of options for advanced users</string>
- <string name="settings_xmpp_server">Address</string>
- <string name="comments_xmpp_server">example.com</string>
- <string name="settings_xmpp_port">Port</string>
- <string name="settings_xmpp_use_tls">Require SSL/TLS</string>
- <string name="settings_reco_delay">Reconnection delay</string>
- <string name="comments_xmpp_port">Default: 5222</string>
+
- <!-- EditSettings Activity Proxy tab -->
- <string name="settings_proxy_sum">Settings for proxy usage</string>
- <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="comments_proxy_port">Default: 1080</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>
--- a/src/com/beem/project/beem/BeemService.java Mon Feb 15 23:37:25 2010 +0100
+++ b/src/com/beem/project/beem/BeemService.java Wed Feb 17 02:29:11 2010 +0100
@@ -40,7 +40,7 @@
Flavien Astraud, November 26, 2009
Head of the EIP Laboratory.
-*/
+ */
package com.beem.project.beem;
import org.jivesoftware.smack.ConnectionConfiguration;
@@ -57,6 +57,7 @@
import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
+import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
@@ -72,6 +73,7 @@
import com.beem.project.beem.service.aidl.IXmppFacade;
import com.beem.project.beem.utils.BeemBroadcastReceiver;
import com.beem.project.beem.utils.BeemConnectivity;
+import com.beem.project.beem.utils.Status;
/**
* This class is for the Beem service. The connection to the xmpp server will be made asynchronously when the service
@@ -85,7 +87,7 @@
private static final String TAG = "BeemService";
private static final int DEFAULT_XMPP_PORT = 5222;
- private static final String COMMAND_NAMESPACE = "http://jabber.org/protocol/commands";
+ //private static final String COMMAND_NAMESPACE = "http://jabber.org/protocol/commands";
private NotificationManager mNotificationManager;
private XmppConnectionAdapter mConnection;
@@ -100,7 +102,7 @@
private boolean mUseProxy;
private IXmppFacade.Stub mBind;
- private BeemBroadcastReceiver mReceiver = new BeemBroadcastReceiver();
+ private BeemServiceBroadcastReceiver mReceiver = new BeemServiceBroadcastReceiver();
/**
* Constructor.
@@ -112,7 +114,6 @@
* Initialise la configuration de la connexion.
*/
private void initConnectionConfig() {
- //java.security.Security.addProvider(new com.sun.security.sasl.Provider());
mUseProxy = mSettings.getBoolean("settings_key_proxy_use", false);
if (mUseProxy) {
String stype = mSettings.getString("settings_key_proxy_type", "HTTP");
@@ -167,6 +168,9 @@
public void onCreate() {
super.onCreate();
registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+ registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
+ registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
+
mSettings = PreferenceManager.getDefaultSharedPreferences(this);
String tmpJid = mSettings.getString("settings_key_account_username", "");
mLogin = StringUtils.parseName(tmpJid);
@@ -364,5 +368,27 @@
new AdHocCommandDataProvider.SessionExpiredError());
*/
}
+
+ private class BeemServiceBroadcastReceiver extends BeemBroadcastReceiver {
+
+ private String mOldStatus;
+ private int mOldMode;
+
+ public BeemServiceBroadcastReceiver() {
+ }
+
+ @Override
+ public void onReceive(final Context context, final Intent intent) {
+ super.onReceive(context, intent);
+ String intentAction = intent.getAction();
+ if (intentAction.equals(Intent.ACTION_SCREEN_OFF)) {
+ mOldMode = mConnection.getPreviousMode();
+ mOldStatus = mConnection.getPreviousStatus();
+ mConnection.changeStatus(Status.CONTACT_STATUS_AWAY, mSettings.getString("settings_away_message", "Away"));
+ } else if (intentAction.equals(Intent.ACTION_SCREEN_ON)) {
+ mConnection.changeStatus(mOldMode, mOldStatus);
+ }
+ }
+ }
}
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Mon Feb 15 23:37:25 2010 +0100
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Wed Feb 17 02:29:11 2010 +0100
@@ -97,12 +97,16 @@
private String mErrorMsg;
private RosterAdapter mRoster;
private int mPreviousPriority;
+ private int mPreviousMode;
+ private String mPreviousStatus;
private PrivacyListManagerAdapter mPrivacyListManager;
private final BeemService mService;
private final RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners = new RemoteCallbackList<IBeemConnectionListener>();
private final SubscribePacketListener mSubscribePacketListener = new SubscribePacketListener();
private final ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
+
+
/**
* Constructor.
@@ -270,11 +274,16 @@
if (msg != null)
m = msg;
else
- m = "";
+ m = mPreviousStatus;
pres.setStatus(m);
+ mPreviousStatus = m;
Presence.Mode mode = Status.getPresenceModeFromStatus(status);
- if (mode != null)
+ if (mode != null) {
pres.setMode(mode);
+ mPreviousMode = status;
+ } else {
+ pres.setMode(Status.getPresenceModeFromStatus(mPreviousMode));
+ }
int p = priority;
if (priority < SMACK_PRIORITY_MIN)
p = SMACK_PRIORITY_MIN;
@@ -285,25 +294,21 @@
mAdaptee.sendPacket(pres);
updateNotification(m);
}
-
+
/**
* {@inheritDoc}
*/
@Override
public void changeStatus(int status, String msg) {
- Presence pres = new Presence(Presence.Type.available);
- String m;
- if (msg != null)
- m = msg;
- else
- m = "";
- pres.setStatus(m);
- Presence.Mode mode = Status.getPresenceModeFromStatus(status);
- if (mode != null)
- pres.setMode(mode);
- pres.setPriority(mPreviousPriority);
- mAdaptee.sendPacket(pres);
- updateNotification(msg);
+ changeStatusAndPriority(status, msg, mPreviousPriority);
+ }
+
+ public String getPreviousStatus() {
+ return mPreviousStatus;
+ }
+
+ public int getPreviousMode() {
+ return mPreviousMode;
}
/**
@@ -349,14 +354,6 @@
}
/**
- * Get the context of the adapter.
- * @return The context of the adapter
- */
- public BeemService getContext() {
- return mService;
- }
-
- /**
* {@inheritDoc}
*/
@Override
--- a/src/com/beem/project/beem/utils/BeemBroadcastReceiver.java Mon Feb 15 23:37:25 2010 +0100
+++ b/src/com/beem/project/beem/utils/BeemBroadcastReceiver.java Wed Feb 17 02:29:11 2010 +0100
@@ -51,6 +51,7 @@
import android.widget.Toast;
import com.beem.project.beem.BeemService;
+import com.beem.project.beem.R;
/**
* Manage broadcast disconnect intent.
@@ -83,6 +84,7 @@
}
} else if (intentAction.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
+ Toast.makeText(context, context.getString(R.string.BeemBroadcastReceiverDisconnect), Toast.LENGTH_SHORT).show();
context.stopService(new Intent(context, BeemService.class));
}
}