From 27e7383db67d54f327ca28c444616687277b3f90 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 30 Jun 2023 14:36:40 -0300 Subject: [PATCH] Add compose divider to CFV2. --- .../conversation/v2/ConversationFragment.kt | 16 ++++++++++++++++ .../res/layout/v2_conversation_fragment.xml | 18 ++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 419105675f..997541d35d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -1949,6 +1949,9 @@ class ConversationFragment : } private inner class ScrollListener : RecyclerView.OnScrollListener() { + + private var wasAtBottom = true + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { if (isScrolledToBottom()) { viewModel.setShowScrollButtons(false) @@ -1956,9 +1959,22 @@ class ConversationFragment : viewModel.setShowScrollButtons(true) } + presentComposeDivider() + val timestamp = MarkReadHelper.getLatestTimestamp(adapter, layoutManager) timestamp.ifPresent(markReadHelper::onViewsRevealed) } + + private fun presentComposeDivider() { + val isAtBottom = isScrolledToBottom() + if (isAtBottom && !wasAtBottom) { + ViewUtil.fadeOut(binding.composeDivider, 50, View.INVISIBLE) + } else if (wasAtBottom && !isAtBottom) { + ViewUtil.fadeIn(binding.composeDivider, 500) + } + + wasAtBottom = isAtBottom + } } private inner class DataObserver( diff --git a/app/src/main/res/layout/v2_conversation_fragment.xml b/app/src/main/res/layout/v2_conversation_fragment.xml index c30b9bd7f2..c061573938 100644 --- a/app/src/main/res/layout/v2_conversation_fragment.xml +++ b/app/src/main/res/layout/v2_conversation_fragment.xml @@ -160,10 +160,10 @@ android:id="@+id/mention_fragment_container" android:layout_width="0dp" android:layout_height="0dp" - app:layout_constraintStart_toStartOf="@id/parent_start_guideline" - app:layout_constraintTop_toBottomOf="@id/toolbar" + app:layout_constraintBottom_toTopOf="@id/conversation_bottom_panel_barrier" app:layout_constraintEnd_toEndOf="@id/parent_end_guideline" - app:layout_constraintBottom_toTopOf="@id/conversation_bottom_panel_barrier"/> + app:layout_constraintStart_toStartOf="@id/parent_start_guideline" + app:layout_constraintTop_toBottomOf="@id/toolbar" /> - + + +