Fix slide in animation for new messages in CFV2.
This commit is contained in:
parent
4429145cdf
commit
f9eed0f6d0
5 changed files with 22 additions and 10 deletions
|
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ dependencyResolutionManagement {
|
|||
library('androidx-constraintlayout', 'androidx.constraintlayout:constraintlayout:2.1.4')
|
||||
library('androidx-window-window', 'androidx.window', 'window').versionRef('androidx-window')
|
||||
library('androidx-window-java', 'androidx.window', 'window-java').versionRef('androidx-window')
|
||||
library('androidx-recyclerview', 'androidx.recyclerview:recyclerview:1.2.1')
|
||||
library('androidx-recyclerview', 'androidx.recyclerview:recyclerview:1.3.0')
|
||||
library('androidx-legacy-support', 'androidx.legacy:legacy-support-v13:1.0.0')
|
||||
library('androidx-legacy-preference', 'androidx.legacy:legacy-preference-v14:1.0.0')
|
||||
library('androidx-preference', 'androidx.preference:preference:1.0.0')
|
||||
|
|
|
@ -1200,6 +1200,14 @@ https://docs.gradle.org/current/userguide/dependency_verification.html
|
|||
<sha256 value="23542c8c85cc58fafe0ae8cba201e6c9e01b4c6799223340a2d6a51d7784828c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.recyclerview" name="recyclerview" version="1.3.0">
|
||||
<artifact name="recyclerview-1.3.0.aar">
|
||||
<sha256 value="d65928a00f63589a49e21925412e0f48852f89254b07b03c030d560f91effc88" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
<artifact name="recyclerview-1.3.0.module">
|
||||
<sha256 value="7fa22bf1ab1a8d1544622076e2ad8454e2bef1402b3298b5b4079ab732e38845" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="androidx.resourceinspection" name="resourceinspection-annotation" version="1.0.1">
|
||||
<artifact name="resourceinspection-annotation-1.0.1.jar">
|
||||
<sha256 value="8cff870ec6fb31db48a52f4a792335b4bf8de07e03bd37823181526433ccd5cb" origin="Generated by Gradle"/>
|
||||
|
|
Loading…
Add table
Reference in a new issue