From 6bd495ea105297e6fc44779602153a775d85acbe Mon Sep 17 00:00:00 2001 From: stom79 Date: Fri, 23 Nov 2018 19:34:44 +0100 Subject: [PATCH] Fix conversation refresh --- .../mastodon/fragments/DisplayStatusFragment.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java index 4a59e9ea7..375d5cd35 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java @@ -227,12 +227,14 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { - if( statuses.size() > 0) { - if( type == RetrieveFeedsAsyncTask.Type.HOME) - MainActivity.countNewStatus = 0; - isSwipped = true; + if( type == RetrieveFeedsAsyncTask.Type.HOME) + MainActivity.countNewStatus = 0; + isSwipped = true; + if( type != RetrieveFeedsAsyncTask.Type.CONVERSATION) retrieveMissingToots(null); - } + else if( statuses.size() > 0) + retrieveMissingToots(statuses.get(0).getId()); + } }); else @@ -721,6 +723,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn int insertedConversation = 0; if(type == RetrieveFeedsAsyncTask.Type.CONVERSATION){ //Remove conversation already displayed if new messages int position = 0; + insertedConversation = statuses.size(); if( this.statuses != null) { long initialConversationId = -1; if( this.statuses.size() > 0 ) @@ -728,8 +731,6 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn for (Iterator it = this.statuses.iterator(); it.hasNext(); ) { Status status = it.next(); for (Status status1 : statuses) { - if(initialConversationId > 0 && Long.parseLong(status1.getConversationId()) > initialConversationId) - insertedConversation++; if (status.getConversationId() != null && status.getConversationId().equals(status1.getConversationId())) { statusListAdapter.notifyItemRemoved(position); it.remove();