diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-03-29 22:46:56 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-03-29 22:46:56 +0200 |
commit | 9cadc2b00dadd493fac4798d789a2f284e02965b (patch) | |
tree | e3d312c4d90b9d8e710d02a26c375efdc1111581 /src/main/java/de/pixart/messenger/ui/ConversationFragment.java | |
parent | 770d01ae66b6e0643df072a1fd310e3b3e77379a (diff) |
make read markers work
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 4e898b66d..42f0b431c 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -1811,16 +1811,16 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } } - public boolean reInit(Conversation conversation) { + public void reInit(Conversation conversation) { Log.d(Config.LOGTAG, "reInit()"); if (conversation == null) { Log.d(Config.LOGTAG, "conversation was null :("); - return false; + return; } if (this.activity == null) { Log.d(Config.LOGTAG, "activity was null"); this.conversation = conversation; - return false; + return; } setupIme(); @@ -1847,6 +1847,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke this.binding.textinput.setKeyboardListener(this); messageListAdapter.updatePreferences(); this.binding.messagesView.setAdapter(messageListAdapter); + refresh(false); + refresh(); + this.conversation.messagesLoaded.set(true); + final boolean isAtBottom; this.binding.messagesView.setOnTouchListener(new OnSwipeTouchListener(getContext()) { @Override public void onSwipeRight() { @@ -1854,8 +1858,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke activity.onBackPressed(); } }); - refresh(); - this.conversation.messagesLoaded.set(true); synchronized (this.messageList) { final Message first = conversation.getFirstUnreadMessage(); final int bottom = Math.max(0, this.messageList.size() - 1); @@ -1867,7 +1869,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke pos = i < 0 ? bottom : i; } this.binding.messagesView.setSelection(pos); - return pos == bottom; + isAtBottom = pos == bottom; + } + if (activity != null) { + activity.onConversationRead(this.conversation); } } @@ -1999,6 +2004,11 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void refresh() { + this.refresh(true); + } + + + private void refresh(boolean notifyConversationRead) { synchronized (this.messageList) { if (this.conversation != null) { conversation.populateWithMessages(ConversationFragment.this.messageList); @@ -2006,7 +2016,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke updateStatusMessages(); this.messageListAdapter.notifyDataSetChanged(); updateChatMsgHint(); - if (activity != null) { + if (notifyConversationRead && activity != null) { activity.onConversationRead(this.conversation); } updateSendButton(); |