don't mark previous conversation as read when processing pending intent. fixes #2079
This commit is contained in:
		
							parent
							
								
									bca8f11c9c
								
							
						
					
					
						commit
						1ef8d0a746
					
				| 
						 | 
					@ -120,6 +120,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
	private boolean mActivityPaused = false;
 | 
						private boolean mActivityPaused = false;
 | 
				
			||||||
	private AtomicBoolean mRedirected = new AtomicBoolean(false);
 | 
						private AtomicBoolean mRedirected = new AtomicBoolean(false);
 | 
				
			||||||
	private Pair<Integer, Intent> mPostponedActivityResult;
 | 
						private Pair<Integer, Intent> mPostponedActivityResult;
 | 
				
			||||||
 | 
						private boolean mUnprocessedNewIntent = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Conversation getSelectedConversation() {
 | 
						public Conversation getSelectedConversation() {
 | 
				
			||||||
		return this.mSelectedConversation;
 | 
							return this.mSelectedConversation;
 | 
				
			||||||
| 
						 | 
					@ -375,7 +376,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void sendReadMarkerIfNecessary(final Conversation conversation) {
 | 
						public void sendReadMarkerIfNecessary(final Conversation conversation) {
 | 
				
			||||||
		if (!mActivityPaused && conversation != null) {
 | 
							if (!mActivityPaused && !mUnprocessedNewIntent && conversation != null) {
 | 
				
			||||||
			xmppConnectionService.sendReadMarker(conversation);
 | 
								xmppConnectionService.sendReadMarker(conversation);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1087,6 +1088,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
	protected void onNewIntent(final Intent intent) {
 | 
						protected void onNewIntent(final Intent intent) {
 | 
				
			||||||
		if (intent != null && ACTION_VIEW_CONVERSATION.equals(intent.getAction())) {
 | 
							if (intent != null && ACTION_VIEW_CONVERSATION.equals(intent.getAction())) {
 | 
				
			||||||
			mOpenConversation = null;
 | 
								mOpenConversation = null;
 | 
				
			||||||
 | 
								mUnprocessedNewIntent = true;
 | 
				
			||||||
			if (xmppConnectionServiceBound) {
 | 
								if (xmppConnectionServiceBound) {
 | 
				
			||||||
				handleViewConversationIntent(intent);
 | 
									handleViewConversationIntent(intent);
 | 
				
			||||||
				intent.setAction(Intent.ACTION_MAIN);
 | 
									intent.setAction(Intent.ACTION_MAIN);
 | 
				
			||||||
| 
						 | 
					@ -1125,6 +1127,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		this.mActivityPaused = false;
 | 
							this.mActivityPaused = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!isConversationsOverviewVisable() || !isConversationsOverviewHideable()) {
 | 
							if (!isConversationsOverviewVisable() || !isConversationsOverviewHideable()) {
 | 
				
			||||||
			sendReadMarkerIfNecessary(getSelectedConversation());
 | 
								sendReadMarkerIfNecessary(getSelectedConversation());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -1289,6 +1292,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
				this.mConversationFragment.appendText(text);
 | 
									this.mConversationFragment.appendText(text);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			hideConversationsOverview();
 | 
								hideConversationsOverview();
 | 
				
			||||||
 | 
								mUnprocessedNewIntent = false;
 | 
				
			||||||
			openConversation();
 | 
								openConversation();
 | 
				
			||||||
			if (mContentView instanceof SlidingPaneLayout) {
 | 
								if (mContentView instanceof SlidingPaneLayout) {
 | 
				
			||||||
				updateActionBarTitle(true); //fixes bug where slp isn't properly closed yet
 | 
									updateActionBarTitle(true); //fixes bug where slp isn't properly closed yet
 | 
				
			||||||
| 
						 | 
					@ -1299,6 +1303,8 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
					startDownloadable(message);
 | 
										startDownloadable(message);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								mUnprocessedNewIntent = false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue