diff options
author | Daniel Gultsch <inputmice@siacs.eu> | 2015-01-02 12:04:33 +0100 |
---|---|---|
committer | Daniel Gultsch <inputmice@siacs.eu> | 2015-01-02 12:04:33 +0100 |
commit | bcd3be59ce78609e608f4a8f7a868be977fdb4bb (patch) | |
tree | 4437c8567a7c18786f8f35b76f3aff444dfe3511 /src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | |
parent | 8d2f454479632465387d8d824a56bd46aa9397e5 (diff) |
put Conversations into background mode earlier
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ConversationActivity.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java index 71074d3d..306f61eb 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java @@ -85,6 +85,8 @@ public class ConversationActivity extends XmppActivity private Toast prepareFileToast; + private boolean mActivityPaused = false; + public List<Conversation> getConversationList() { return this.conversationList; @@ -262,11 +264,15 @@ public class ConversationActivity extends XmppActivity this.updateActionBarTitle(); this.invalidateOptionsMenu(); if (xmppConnectionServiceBound) { - xmppConnectionService.getNotificationService().setOpenConversation(getSelectedConversation()); - if (!getSelectedConversation().isRead()) { - xmppConnectionService.markRead(getSelectedConversation(), true); - listView.invalidateViews(); - } + final Conversation conversation = getSelectedConversation(); + xmppConnectionService.getNotificationService().setOpenConversation(conversation); + sendReadMarkerIfNecessary(conversation); + } + } + + public void sendReadMarkerIfNecessary(final Conversation conversation) { + if (!mActivityPaused && !conversation.isRead()) { + xmppConnectionService.sendReadMarker(conversation); } } @@ -738,12 +744,25 @@ public class ConversationActivity extends XmppActivity } @Override + public void onPause() { + super.onPause(); + this.mActivityPaused = true; + if (this.xmppConnectionServiceBound) { + this.xmppConnectionService.getNotificationService().setIsInForeground(false); + } + } + + @Override public void onResume() { super.onResume(); int theme = findTheme(); if (this.mTheme != theme) { recreate(); } + this.mActivityPaused = false; + if (this.xmppConnectionServiceBound) { + this.xmppConnectionService.getNotificationService().setIsInForeground(true); + } } @Override @@ -763,6 +782,7 @@ public class ConversationActivity extends XmppActivity @Override void onBackendConnected() { + this.xmppConnectionService.getNotificationService().setIsInForeground(true); updateConversationList(); if (xmppConnectionService.getAccounts().size() == 0) { startActivity(new Intent(this, EditAccountActivity.class)); |