1package eu.siacs.conversations.ui;
2
3import androidx.annotation.NonNull;
4import androidx.recyclerview.widget.RecyclerView;
5import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
6
7public class ExtendedFabSizeChanger extends RecyclerView.OnScrollListener {
8
9 private final ExtendedFloatingActionButton extendedFloatingActionButton;
10
11 private ExtendedFabSizeChanger(
12 final ExtendedFloatingActionButton extendedFloatingActionButton) {
13 this.extendedFloatingActionButton = extendedFloatingActionButton;
14 }
15
16 @Override
17 public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
18 super.onScrolled(recyclerView, dx, dy);
19 final var firstVisibleItem = RecyclerViews.findFirstVisibleItemPosition(recyclerView);
20 recyclerView.post(
21 () -> {
22 if (firstVisibleItem > 0) {
23 extendedFloatingActionButton.shrink();
24 } else {
25 extendedFloatingActionButton.extend();
26 }
27 });
28 }
29
30 public static RecyclerView.OnScrollListener of(final ExtendedFloatingActionButton fab) {
31 return new ExtendedFabSizeChanger(fab);
32 }
33}