don't mark previous conversation as read when processing pending intent. fixes #2079

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java | 8 
1 file changed, 7 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationActivity.java 🔗

@@ -120,6 +120,7 @@ public class ConversationActivity extends XmppActivity
 	private boolean mActivityPaused = false;
 	private AtomicBoolean mRedirected = new AtomicBoolean(false);
 	private Pair<Integer, Intent> mPostponedActivityResult;
+	private boolean mUnprocessedNewIntent = false;
 
 	public Conversation getSelectedConversation() {
 		return this.mSelectedConversation;
@@ -375,7 +376,7 @@ public class ConversationActivity extends XmppActivity
 	}
 
 	public void sendReadMarkerIfNecessary(final Conversation conversation) {
-		if (!mActivityPaused && conversation != null) {
+		if (!mActivityPaused && !mUnprocessedNewIntent && conversation != null) {
 			xmppConnectionService.sendReadMarker(conversation);
 		}
 	}
@@ -1087,6 +1088,7 @@ public class ConversationActivity extends XmppActivity
 	protected void onNewIntent(final Intent intent) {
 		if (intent != null && ACTION_VIEW_CONVERSATION.equals(intent.getAction())) {
 			mOpenConversation = null;
+			mUnprocessedNewIntent = true;
 			if (xmppConnectionServiceBound) {
 				handleViewConversationIntent(intent);
 				intent.setAction(Intent.ACTION_MAIN);
@@ -1125,6 +1127,7 @@ public class ConversationActivity extends XmppActivity
 		}
 		this.mActivityPaused = false;
 
+
 		if (!isConversationsOverviewVisable() || !isConversationsOverviewHideable()) {
 			sendReadMarkerIfNecessary(getSelectedConversation());
 		}
@@ -1289,6 +1292,7 @@ public class ConversationActivity extends XmppActivity
 				this.mConversationFragment.appendText(text);
 			}
 			hideConversationsOverview();
+			mUnprocessedNewIntent = false;
 			openConversation();
 			if (mContentView instanceof SlidingPaneLayout) {
 				updateActionBarTitle(true); //fixes bug where slp isn't properly closed yet
@@ -1299,6 +1303,8 @@ public class ConversationActivity extends XmppActivity
 					startDownloadable(message);
 				}
 			}
+		} else {
+			mUnprocessedNewIntent = false;
 		}
 	}