From ab6fa5586735fa5daf004236607c58bb9deffa1f Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sun, 5 Apr 2020 12:14:53 +0200 Subject: [PATCH] add scroll to first/last entry on empty search --- .../thoughtcrime/securesms/ConversationActivity.java | 7 +++++++ .../thoughtcrime/securesms/ConversationFragment.java | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 4d0e30932..f8c779a39 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -1572,6 +1572,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity if(searchResultPosition<0) searchResultPosition = searchResult.length-1; if(searchResultPosition>=searchResult.length) searchResultPosition = 0; fragment.scrollToMsgId(searchResult[searchResultPosition]); + } else { + // no search, scroll to first/last message + if(searchNext) { + fragment.scrollToBottom(); + } else { + fragment.scrollToTop(); + } } } diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java index 7ba267815..a91d4383e 100644 --- a/src/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationFragment.java @@ -310,6 +310,16 @@ public class ConversationFragment extends Fragment } } + public void scrollToTop() { + ConversationAdapter adapter = (ConversationAdapter)list.getAdapter(); + if (adapter.getItemCount()>0) { + final int pos = adapter.getItemCount()-1; + list.post(() -> { + list.getLayoutManager().scrollToPosition(pos); + }); + } + } + public void scrollToBottom() { if (((LinearLayoutManager) list.getLayoutManager()).findFirstVisibleItemPosition() < SCROLL_ANIMATION_THRESHOLD) { list.smoothScrollToPosition(0); @@ -517,7 +527,6 @@ public class ConversationFragment extends Fragment int position = adapter.msgIdToPosition(msgId); if (position!=-1) { scrollToStartingPosition(position); - Log.i("Delta Chat", String.format(">>>>>>>>>>>>>>>>>>> %d", position)); } }