From bcd3be59ce78609e608f4a8f7a868be977fdb4bb Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 2 Jan 2015 12:04:33 +0100 Subject: put Conversations into background mode earlier --- .../conversations/ui/ConversationActivity.java | 30 ++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/ui/ConversationActivity.java') 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 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); } } @@ -737,6 +743,15 @@ 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(); @@ -744,6 +759,10 @@ public class ConversationActivity extends XmppActivity 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)); -- cgit v1.2.3