--- 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;
+ }
+
}