diff --git a/app/src/main/java/eu/faircode/email/FixedRecyclerView.java b/app/src/main/java/eu/faircode/email/FixedRecyclerView.java index 04700914f3..38d4114fb9 100644 --- a/app/src/main/java/eu/faircode/email/FixedRecyclerView.java +++ b/app/src/main/java/eu/faircode/email/FixedRecyclerView.java @@ -75,5 +75,4 @@ public class FixedRecyclerView extends RecyclerView { return false; } } - } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index a9b72db45e..f28d91a20e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -446,6 +446,14 @@ public class FragmentMessages extends FragmentBase { rvMessage.setAdapter(adapter); + rvMessage.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull RecyclerView rv, int dx, int dy) { + int pos = (rv.getChildCount() == 0 ? 0 : rv.getChildAt(0).getTop()); + swipeRefresh.setEnabled(pull && pos >= 0); + } + }); + seekBar.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { diff --git a/app/src/main/res/drawable/fast_scroll_thumb.xml b/app/src/main/res/drawable/fast_scroll_thumb.xml new file mode 100644 index 0000000000..bfaec33123 --- /dev/null +++ b/app/src/main/res/drawable/fast_scroll_thumb.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/fast_scroll_track.xml b/app/src/main/res/drawable/fast_scroll_track.xml new file mode 100644 index 0000000000..45fb96ff69 --- /dev/null +++ b/app/src/main/res/drawable/fast_scroll_track.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index 43f273b386..aae51fec68 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -150,7 +150,14 @@ android:clipToPadding="false" android:paddingBottom="90dp" android:scrollbarStyle="outsideOverlay" + android:scrollbarThumbVertical="@drawable/fast_scroll_thumb" + android:scrollbarTrackVertical="@drawable/fast_scroll_track" android:scrollbars="vertical" + app:fastScrollEnabled="true" + app:fastScrollHorizontalThumbDrawable="@drawable/fast_scroll_thumb" + app:fastScrollHorizontalTrackDrawable="@drawable/fast_scroll_track" + app:fastScrollVerticalThumbDrawable="@drawable/fast_scroll_thumb" + app:fastScrollVerticalTrackDrawable="@drawable/fast_scroll_track" app:layout_constraintBottom_toTopOf="@+id/bottom_navigation" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"