Bug resolve on the status update
authorVincent V. <marseille@beem-project.com>
Thu, 16 Aug 2012 11:52:52 +0200
changeset 949 6652d425ccca
parent 948 1b906337327d
child 950 03356904269c
Bug resolve on the status update
src/com/beem/project/beem/BeemConnection.java
src/com/beem/project/beem/ui/Login.java
src/com/beem/project/beem/utils/Status.java
--- a/src/com/beem/project/beem/BeemConnection.java	Sun Aug 12 12:18:10 2012 +0200
+++ b/src/com/beem/project/beem/BeemConnection.java	Thu Aug 16 11:52:52 2012 +0200
@@ -295,7 +295,8 @@
 	pres.setPriority(p);
 	mXMPPConnection.sendPacket(pres);
 	editSharedPreferences(BeemApplication.STATUS_KEY, status);
-	editSharedPreferences(BeemApplication.STATUS_TEXT_KEY, msg);
+	if (msg != null)
+	    editSharedPreferences(BeemApplication.STATUS_TEXT_KEY, msg);
     }
 
     public boolean mucSendMsg(String jid, String msg) {
--- a/src/com/beem/project/beem/ui/Login.java	Sun Aug 12 12:18:10 2012 +0200
+++ b/src/com/beem/project/beem/ui/Login.java	Thu Aug 16 11:52:52 2012 +0200
@@ -343,11 +343,13 @@
 
 	    if (BeemIntent.ACTION_CONNECTED.equals(action)) {
 		SharedPreferences settings = getSharedPreferences(account, MODE_PRIVATE);
-		if (text != null)
-		    text.setText(settings
-			.getString(BeemApplication.STATUS_TEXT_KEY, getString(R.string.contact_status_msg_available)));
+		int status = settings.getInt(BeemApplication.STATUS_KEY, 0);
+		if (text != null) {
+		    text.setText(settings.getString(BeemApplication.STATUS_TEXT_KEY,
+			getString(Status.getStringFromStatus(status))));
+		}
 		if (logo != null) {
-		    logo.setImageResource(Status.getIconBarFromStatus(settings.getInt(BeemApplication.STATUS_KEY, 0)));
+		    logo.setImageResource(Status.getIconBarFromStatus(status));
 		    logo.clearAnimation();
 		}
 	    } else if (BeemIntent.ACTION_DISCONNECTED.equals(action)) {
--- a/src/com/beem/project/beem/utils/Status.java	Sun Aug 12 12:18:10 2012 +0200
+++ b/src/com/beem/project/beem/utils/Status.java	Thu Aug 16 11:52:52 2012 +0200
@@ -46,6 +46,8 @@
 import org.jivesoftware.smack.packet.Presence;
 import org.jivesoftware.smack.packet.Presence.Mode;
 
+import android.app.Application;
+
 import com.beem.project.beem.R;
 
 /**
@@ -183,4 +185,34 @@
 	}
 	return icon;
     }
+    
+    /**
+     * Get icon resource from status.
+     * @param status the status
+     * @return the resource icon
+     */
+    public static int getStringFromStatus(final int status) {
+	int idString = R.string.contact_status_msg_offline;
+	switch (status) {
+	    case Status.CONTACT_STATUS_AVAILABLE:
+		idString = R.string.contact_status_msg_available;
+		break;
+	    case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
+		idString = R.string.contact_status_msg_available_chat;
+		break;
+	    case Status.CONTACT_STATUS_AWAY:
+		idString = R.string.contact_status_msg_away;
+		break;
+	    case Status.CONTACT_STATUS_BUSY:
+		idString = R.string.contact_status_msg_dnd;
+		break;
+	    case Status.CONTACT_STATUS_UNAVAILABLE:
+		idString = R.string.contact_status_msg_xa;
+		break;
+	    default:
+		idString = R.string.contact_status_msg_offline;
+	}
+	return idString;
+    }
+    
 }