diff options
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/stack')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java | 6 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java | 30 |
2 files changed, 36 insertions, 0 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java index 897969671..5888329b0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java @@ -66,6 +66,12 @@ public class EditStackDialogFragment extends BrandedDialogFragment { return super.onCreateView(inflater, container, savedInstanceState); } + @Override + public void onDestroy() { + super.onDestroy(); + this.binding = null; + } + public static DialogFragment newInstance() { return new EditStackDialogFragment(); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index 61f58a9d4..91b8df21b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LiveData; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.List; @@ -130,6 +131,12 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte DeckApplication.readCurrentBoardColor().observe(getViewLifecycleOwner(), this::applyBrand); } + @Override + public void onDestroy() { + super.onDestroy(); + this.binding = null; + } + @Nullable @Override public CardAdapter getAdapter() { @@ -175,4 +182,27 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte }); } + /** + * Scroll to the bottom of the fragment + */ + public void scrollToBottom() { + activity.runOnUiThread(() -> { + if (adapter == null) { + DeckLog.warn("Adapter is null"); + return; + } + final var layoutManager = (LinearLayoutManager) binding.recyclerView.getLayoutManager(); + if (layoutManager == null) { + DeckLog.warn("LayoutManager is null"); + return; + } + int currentItem = layoutManager.findFirstVisibleItemPosition(); + + if (adapter.getItemCount() - currentItem < 40) { + binding.recyclerView.smoothScrollToPosition(adapter.getItemCount()); + } else { + binding.recyclerView.scrollToPosition(adapter.getItemCount() - 1); + } + }); + } }
\ No newline at end of file |