--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Fri Feb 19 02:21:35 2010 +0100
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Fri Feb 19 02:26:21 2010 +0100
@@ -99,6 +99,8 @@
private String mErrorMsg;
private RosterAdapter mRoster;
private int mPreviousPriority;
+ private int mPreviousMode;
+ private String mPreviousStatus;
private PrivacyListManagerAdapter mPrivacyListManager;
private final BeemService mService;
private BeemApplication mApplication;
@@ -184,7 +186,7 @@
mService.getResources().getIdentifier(
e.getXMPPError().getCondition().replace("-", "_"), "string", "com.beem.project.beem"));
mErrorMsg = str;
- } catch(NullPointerException e2) {
+ } catch (NullPointerException e2) {
if (!"".equals(e.getMessage()))
mErrorMsg = e.getMessage();
else
@@ -277,11 +279,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;
@@ -298,19 +305,23 @@
*/
@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);
+ }
+
+ /**
+ * get the previous status.
+ * @return previous status.
+ */
+ public String getPreviousStatus() {
+ return mPreviousStatus;
+ }
+
+ /**
+ * get the previous mode.
+ * @return previous mode.
+ */
+ public int getPreviousMode() {
+ return mPreviousMode;
}
/**
@@ -356,14 +367,6 @@
}
/**
- * Get the context of the adapter.
- * @return The context of the adapter
- */
- public BeemService getContext() {
- return mService;
- }
-
- /**
* {@inheritDoc}
*/
@Override