mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 21:15:48 +00:00
Fix slide in animation for new messages in CFV2.
This commit is contained in:
@@ -793,7 +793,7 @@ class ConversationFragment :
|
||||
scrollToNextMention()
|
||||
}
|
||||
|
||||
adapter.registerAdapterDataObserver(DataObserver(scrollToPositionDelegate))
|
||||
adapter.registerAdapterDataObserver(DataObserver())
|
||||
|
||||
val keyboardEvents = KeyboardEvents()
|
||||
container.listener = keyboardEvents
|
||||
@@ -1998,14 +1998,12 @@ class ConversationFragment :
|
||||
}
|
||||
}
|
||||
|
||||
private inner class DataObserver(
|
||||
private val scrollToPositionDelegate: ScrollToPositionDelegate
|
||||
) : RecyclerView.AdapterDataObserver() {
|
||||
private inner class DataObserver : RecyclerView.AdapterDataObserver() {
|
||||
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {
|
||||
Log.d(TAG, "onItemRangeInserted $positionStart $itemCount")
|
||||
if (positionStart == 0 && itemCount == 1 && !binding.conversationItemRecycler.canScrollVertically(1)) {
|
||||
Log.d(TAG, "Requesting scroll to bottom.")
|
||||
scrollToPositionDelegate.resetScrollPosition()
|
||||
layoutManager.scrollToPositionWithOffset(0, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,10 @@ class ConversationViewModel(
|
||||
|
||||
val pagingController = ProxyPagingController<ConversationElementKey>()
|
||||
|
||||
val nameColorsMap: Observable<Map<RecipientId, NameColor>> = recipient.flatMap { repository.getNameColorsMap(it, groupAuthorNameColorHelper) }
|
||||
val nameColorsMap: Observable<Map<RecipientId, NameColor>> = recipient
|
||||
.filter { it.isGroup }
|
||||
.flatMap { repository.getNameColorsMap(it, groupAuthorNameColorHelper) }
|
||||
.distinctUntilChanged()
|
||||
|
||||
@Volatile
|
||||
var recipientSnapshot: Recipient? = null
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.signal.core.util.StringUtil
|
||||
import org.signal.core.util.dp
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.mention.MentionAnnotation
|
||||
import org.thoughtcrime.securesms.conversation.BodyBubbleLayoutTransition
|
||||
import org.thoughtcrime.securesms.conversation.ConversationItemDisplayMode
|
||||
import org.thoughtcrime.securesms.conversation.ConversationMessage
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.Multiselect
|
||||
@@ -148,6 +149,8 @@ class V2TextOnlyViewHolder<Model : MappingModel<Model>>(
|
||||
} else {
|
||||
binding.conversationItemBody.setMentionBackgroundTint(ContextCompat.getColor(context, R.color.transparent_black_25))
|
||||
}
|
||||
|
||||
binding.conversationItemBodyWrapper.layoutTransition = BodyBubbleLayoutTransition()
|
||||
}
|
||||
|
||||
override fun bind(model: Model) {
|
||||
@@ -195,7 +198,7 @@ class V2TextOnlyViewHolder<Model : MappingModel<Model>>(
|
||||
coordinateRoot,
|
||||
binding.conversationItemBodyWrapper,
|
||||
Projection.Corners.NONE
|
||||
).translateX(binding.conversationItemBodyWrapper.translationX)
|
||||
).translateX(binding.conversationItemBodyWrapper.translationX).translateY(root.translationY)
|
||||
)
|
||||
|
||||
return projections
|
||||
@@ -211,7 +214,7 @@ class V2TextOnlyViewHolder<Model : MappingModel<Model>>(
|
||||
coordinateRoot,
|
||||
binding.conversationItemBodyWrapper,
|
||||
shapeDelegate.corners
|
||||
).translateX(binding.conversationItemBodyWrapper.translationX)
|
||||
).translateX(binding.conversationItemBodyWrapper.translationX).translateY(root.translationY)
|
||||
)
|
||||
} else if (conversationContext.hasWallpaper()) {
|
||||
projections.add(
|
||||
@@ -219,7 +222,7 @@ class V2TextOnlyViewHolder<Model : MappingModel<Model>>(
|
||||
coordinateRoot,
|
||||
binding.conversationItemFooterBackground,
|
||||
conversationItemFooterBackgroundCorners
|
||||
).translateX(binding.conversationItemFooterBackground.translationX)
|
||||
).translateX(binding.conversationItemFooterBackground.translationX).translateY(root.translationY)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user