Fix scroll to message when bubble is under toolbar.

This commit is contained in:
Cody Henthorne
2024-04-05 13:10:58 -04:00
committed by Greyson Parrelli
parent 3ea194255d
commit ba3473c61a
2 changed files with 7 additions and 2 deletions

View File

@@ -191,10 +191,10 @@ class ScrollToPositionDelegate private constructor(
if (abs(layoutManager.findFirstVisibleItemPosition() - position) < SCROLL_ANIMATION_THRESHOLD) { if (abs(layoutManager.findFirstVisibleItemPosition() - position) < SCROLL_ANIMATION_THRESHOLD) {
val child: View? = layoutManager.findViewByPosition(position) val child: View? = layoutManager.findViewByPosition(position)
if (child == null || !layoutManager.isViewPartiallyVisible(child, true, false)) { if (child == null || !layoutManager.isViewPartiallyVisible(child, true, false)) {
layoutManager.scrollToPositionWithOffset(position, recyclerView.height / 4) layoutManager.scrollToPositionWithOffset(position, recyclerView.height / 3)
} }
} else { } else {
layoutManager.scrollToPositionWithOffset(position, recyclerView.height / 4) layoutManager.scrollToPositionWithOffset(position, recyclerView.height / 3)
} }
} }
} }

View File

@@ -317,6 +317,7 @@ import org.thoughtcrime.securesms.util.hasAudio
import org.thoughtcrime.securesms.util.hasGiftBadge import org.thoughtcrime.securesms.util.hasGiftBadge
import org.thoughtcrime.securesms.util.hasNonTextSlide import org.thoughtcrime.securesms.util.hasNonTextSlide
import org.thoughtcrime.securesms.util.isValidReactionTarget import org.thoughtcrime.securesms.util.isValidReactionTarget
import org.thoughtcrime.securesms.util.padding
import org.thoughtcrime.securesms.util.savedStateViewModel import org.thoughtcrime.securesms.util.savedStateViewModel
import org.thoughtcrime.securesms.util.toMillis import org.thoughtcrime.securesms.util.toMillis
import org.thoughtcrime.securesms.util.viewModel import org.thoughtcrime.securesms.util.viewModel
@@ -602,6 +603,10 @@ class ConversationFragment :
viewModel.onChatBoundsChanged(Rect(left, top, right, bottom)) viewModel.onChatBoundsChanged(Rect(left, top, right, bottom))
} }
binding.toolbar.addOnLayoutChangeListener { _, _, _, _, bottom, _, _, _, _ ->
binding.conversationItemRecycler.padding(top = bottom)
}
binding.conversationItemRecycler.addItemDecoration(ChatColorsDrawable.ChatColorsItemDecoration) binding.conversationItemRecycler.addItemDecoration(ChatColorsDrawable.ChatColorsItemDecoration)
} }