# HG changeset patch # User Vincent V. # Date 1345110772 -7200 # Node ID 6652d425cccacb09cff7af027493f79e67654315 # Parent 1b906337327d92d16911125ebab2140bed101d03 Bug resolve on the status update diff -r 1b906337327d -r 6652d425ccca src/com/beem/project/beem/BeemConnection.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) { diff -r 1b906337327d -r 6652d425ccca src/com/beem/project/beem/ui/Login.java --- 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)) { diff -r 1b906337327d -r 6652d425ccca src/com/beem/project/beem/utils/Status.java --- 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; + } + }