# HG changeset patch
# User nikita@nikita-laptop
# Date 1266535865 -3600
# Node ID 803a4f1dc590c67dcaba8dede3570c6face0ef21
# Parent 47cd386089b31d7576a72992b61faf53420733fa
better settings integration for autoaway
diff -r 47cd386089b3 -r 803a4f1dc590 res/values-fr/strings.xml
--- a/res/values-fr/strings.xml Thu Feb 18 02:02:30 2010 +0100
+++ b/res/values-fr/strings.xml Fri Feb 19 00:31:05 2010 +0100
@@ -130,11 +130,11 @@
Default: 1080
Nom d\'utilisateur
Mot de passe
- away_chk_title
- away_chk_sum
- away_message_title
- away_message_sum
- away_message_hint
+ Activer l'absence automatique
+ Change votre status en Absent automatiquement quand l\'écran du telephone s\'éteind
+ Message d'asbence
+ Votre Message d'absence
+ Je suis absent car mon ecran est éteind
Inscription acceptée
diff -r 47cd386089b3 -r 803a4f1dc590 res/values/strings.xml
--- a/res/values/strings.xml Thu Feb 18 02:02:30 2010 +0100
+++ b/res/values/strings.xml Fri Feb 19 00:31:05 2010 +0100
@@ -130,11 +130,11 @@
Default: 1080
Username
Password
- away_chk_title
- away_chk_sum
- away_message_title
- away_message_sum
- away_message_hint
+ Enable Auto-away
+ Change status to Away when the screen is turned off
+ Away message
+ The away message that will be displayed
+ I'm away, my cellphone screen is off
Subscription accepted
diff -r 47cd386089b3 -r 803a4f1dc590 src/com/beem/project/beem/BeemService.java
--- a/src/com/beem/project/beem/BeemService.java Thu Feb 18 02:02:30 2010 +0100
+++ b/src/com/beem/project/beem/BeemService.java Fri Feb 19 00:31:05 2010 +0100
@@ -105,6 +105,7 @@
private BeemBroadcastReceiver mReceiver = new BeemBroadcastReceiver();
private BeemServiceBroadcastReceiver mOnOffReceiver = new BeemServiceBroadcastReceiver();
+ private BeemServicePreferenceListener mPreferenceListener = new BeemServicePreferenceListener();
private boolean mOnOffReceiverIsRegistered;
@@ -164,8 +165,8 @@
}
return true;
}
-
-
+
+
/**
* {@inheritDoc}
@@ -174,13 +175,13 @@
public void onCreate() {
super.onCreate();
registerReceiver(mReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
- if (mSettings.getBoolean("settings_away_chk",false)) {
+ mSettings = PreferenceManager.getDefaultSharedPreferences(this);
+ mSettings.registerOnSharedPreferenceChangeListener(mPreferenceListener);
+ if (mSettings.getBoolean("settings_away_chk", false)) {
mOnOffReceiverIsRegistered = true;
registerReceiver(mOnOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
registerReceiver(mOnOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
}
-
- mSettings = PreferenceManager.getDefaultSharedPreferences(this);
String tmpJid = mSettings.getString("settings_key_account_username", "");
mLogin = StringUtils.parseName(tmpJid);
mPassword = mSettings.getString("settings_key_account_password", "");
@@ -219,6 +220,7 @@
Log.d("Service", "onDestroy");
mNotificationManager.cancelAll();
unregisterReceiver(mReceiver);
+ mSettings.unregisterOnSharedPreferenceChangeListener(mPreferenceListener);
if (mOnOffReceiverIsRegistered)
unregisterReceiver(mOnOffReceiver);
if (mConnection.isAuthentificated() && BeemConnectivity.isConnected(this))
@@ -380,6 +382,22 @@
*/
}
+ private class BeemServicePreferenceListener implements SharedPreferences.OnSharedPreferenceChangeListener {
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ if (key.equals("settings_away_chk")) {
+ if (sharedPreferences.getBoolean("settings_away_chk", false)) {
+ mOnOffReceiverIsRegistered = true;
+ registerReceiver(mOnOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF));
+ registerReceiver(mOnOffReceiver, new IntentFilter(Intent.ACTION_SCREEN_ON));
+ } else {
+ mOnOffReceiverIsRegistered = false;
+ unregisterReceiver(mOnOffReceiver);
+ }
+ }
+ }
+ }
+
private class BeemServiceBroadcastReceiver extends BroadcastReceiver {
private String mOldStatus;